addWidget(cmnPane,new PatchNameWidget("Performance Name (30 Char.)", patch, ((Driver) patch.getDriver()).getPatchNameSize()),0,0,9,1,1);
addWidget(cmnPane,new PatchNameWidget("Performance Name (30 Char.)", patch),0,0,9,1,1);
	protected void buildEditor (Patch patch)	{		/*		 *   Performance Parameter - Common settings		 */		JPanel cmnPane= new JPanel();		cmnPane.setLayout(new GridBagLayout());gbc.weightx=0;gbc.anchor=GridBagConstraints.EAST;		addWidget(cmnPane,new PatchNameWidget("Performance Name (30 Char.)", patch, ((Driver) patch.getDriver()).getPatchNameSize()),0,0,9,1,1);				if (!isDX7(patch)) {		    addWidget(cmnPane,new ComboBoxWidget("Key Assign Mode",patch,new ParamModel(patch,6+60),new PerformanceSender(patch,30),KeyAssignName),0,1,3,1,2);		    addWidget(cmnPane,new ComboBoxWidget("Voice Memory Select Flag",patch,new ParamModel(patch,6+61),new PerformanceSender(patch,31),VoiceSelectName),3,1,3,1,3);				    if (isDX1(patch) || isDX5(patch) ) {		        addWidget(cmnPane,new ComboBoxWidget("Dual Mode Detune",patch,new ParamModel(patch,6+62),new PerformanceSender(patch,32),DualModeDetuneName),0,2,3,1,4);		        addWidget(cmnPane,new ComboBoxWidget("Split Point",patch,new ParamModel(patch,6+63),new PerformanceSender(patch,33),SplitPointName),3,2,3,1,5);		    }		}				addWidget(cmnPane,new ComboBoxWidget("Corresponding Voice?",patch,new ParamModel(patch,6+0),null,VoiceNumberName),0,3,3,1,6);		gbc.gridx=3;gbc.gridy=3;gbc.gridwidth=6;gbc.gridheight=1;gbc.anchor=GridBagConstraints.EAST;		cmnPane.add(new JLabel("(Attention! This is an undocumented parameter!)"),gbc);				gbc.gridx=0;gbc.gridy=0;gbc.gridwidth=3;gbc.gridheight=1;		cmnPane.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.RAISED),"Common",TitledBorder.CENTER,TitledBorder.CENTER));		scrollPane.add(cmnPane,gbc);		/*		 *   Voice A+B Parameter		 */		JTabbedPane voicePane=new JTabbedPane();		for (int i=0; i<=1; i++) {		    JPanel panel = new JPanel();		    panel.setLayout(new GridBagLayout());		    if ( i == 0 ) {		        voicePane.addTab("Voice A",panel);		    } else {		        voicePane.addTab("Voice B",panel);		    }		    		    gbc.gridx=0;gbc.gridy=0;gbc.gridwidth=1;gbc.gridheight=1;gbc.weightx=1; panel.add(new JLabel(" "),gbc);		    if (isDX1(patch) || isDX5(patch) ) {		        addWidget(panel,new ComboBoxWidget("Source Select",patch,new ParamModel(patch,6+(i*30)+1),new PerformanceSender(patch,1),SourceSelectName),3,0,6,1,10);		        addWidget(panel,new ComboBoxWidget("Performance Key Shift",patch,new ParamModel(patch,6+(i*30)+29),new PerformanceSender(patch,29),PerformanceKeyShiftName),9,0,6,1,13);		    }		    gbc.gridx=0;gbc.gridy=1;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    addWidget(panel,new ComboBoxWidget("Key Mode Assign",patch,new ParamModel(patch,6+(i*30)+2),new PerformanceSender(patch,2),PolyMonoName),3,1,6,1,12);		    if (!isDX7(patch)) {		        addWidget(panel,new ScrollBarWidget("Output Attenuator",patch,0,7,0,new ParamModel(patch,6+(i*30)+26),new PerformanceSender(patch,26)),9,1,6,1,11);		    }		    gbc.gridx=0;gbc.gridy=2;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=3;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("Pitch Bend: "),gbc);		    addWidget(panel,new ComboBoxWidget("Range",patch,new ParamModel(patch,6+(i*30)+3),new PerformanceSender(patch,3),PitchBendRangeName),3,3,6,1,14);		    addWidget(panel,new ComboBoxWidget("Step",patch,new ParamModel(patch,6+(i*30)+4),new PerformanceSender(patch,4),PitchBendStepName),9,3,6,1,15);		    gbc.gridx=0;gbc.gridy=4;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=5;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("Portamento: "),gbc);		    addWidget(panel,new ComboBoxWidget("Portamento/Glissando",patch,new ParamModel(patch,6+(i*30)+6),new PerformanceSender(patch,6),PortGlissName),3,5,6,1,16);		    if (isDX1(patch) || isDX5(patch) ) {		        addWidget(panel,new ComboBoxWidget("Portamento Pedal and Knop Assign (*)",patch,new ParamModel(patch,6+(i*30)+8),new PerformanceSender(patch,8),OnOffName),9,5,6,1,17);		    }		    addWidget(panel,new ComboBoxWidget("Mode (Poly/Mono)",patch,new ParamModel(patch,6+(i*30)+7),new PerformanceSender(patch,7),PortModeName),3,6,6,1,18);		    addWidget(panel,new ScrollBarWidget("Time",patch,0,99,0,new ParamModel(patch,6+(i*30)+5),new PerformanceSender(patch,5)),9,6,6,1,19);		    gbc.gridx=0;gbc.gridy=8;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=9;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("Modulation Wheel: "),gbc);		    addWidget(panel,new ComboBoxWidget("Assign",patch,new ParamModel(patch,6+(i*30)+10),new PerformanceSender(patch,10),AssignName),3,9,6,1,20);		    addWidget(panel,new ScrollBarWidget("Sensitivity",patch,0,15,0,new ParamModel(patch,6+(i*30)+9),new PerformanceSender(patch,9)),9,9,6,1,21);		    gbc.gridx=0;gbc.gridy=10;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=11;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("Foot Controller: "),gbc);		    addWidget(panel,new ComboBoxWidget("Assign",patch,new ParamModel(patch,6+(i*30)+12),new PerformanceSender(patch,12),AssignName),3,11,6,1,22);		    addWidget(panel,new ScrollBarWidget("Sensitivity",patch,0,15,0,new ParamModel(patch,6+(i*30)+11),new PerformanceSender(patch,11)),9,11,6,1,23);		    gbc.gridx=0;gbc.gridy=12;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=13;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("After Touch: "),gbc);		    addWidget(panel,new ComboBoxWidget("Assign",patch,new ParamModel(patch,6+(i*30)+14),new PerformanceSender(patch,14),AssignName),3,13,6,1,24);		    addWidget(panel,new ScrollBarWidget("Sensitivity",patch,0,15,0,new ParamModel(patch,6+(i*30)+13),new PerformanceSender(patch,13)),9,13,6,1,25);		    gbc.gridx=0;gbc.gridy=14;gbc.gridwidth=1;gbc.gridheight=1; panel.add(new JLabel(" "),gbc);		    gbc.gridx=0;gbc.gridy=15;gbc.gridwidth=3;gbc.gridheight=1; panel.add(new JLabel("Breath Controller: "),gbc);		    addWidget(panel,new ComboBoxWidget("Assign",patch,new ParamModel(patch,6+(i*30)+16),new PerformanceSender(patch,16),AssignName),3,15,6,1,26);		    addWidget(panel,new ScrollBarWidget("Sensitivity",patch,0,15,0,new ParamModel(patch,6+(i*30)+15),new PerformanceSender(patch,15)),9,15,6,1,27);		    if (isDX7(patch)) {			i=1;		    }		}				gbc.gridx=0;gbc.gridy=10;gbc.gridwidth=3;gbc.gridheight=13;		scrollPane.add(voicePane,gbc);		pack();		show();	}