addWidget(perfPane,new PatchNameWidget("Name (20 Char.)", patch, ((Driver) patch.getDriver()).getPatchNameSize()), 0, 1,6, 1, 0);
addWidget(perfPane,new PatchNameWidget("Name (20 Char.)", patch), 0, 1,6, 1, 0);
	protected void buildEditor(Patch patch)	{		JPanel perfPane=new JPanel();		perfPane.setLayout(new GridBagLayout());gbc.weightx=0;		gbc.gridx=0;gbc.gridy= 0;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		addWidget(perfPane,new PatchNameWidget("Name (20 Char.)", patch, ((Driver) patch.getDriver()).getPatchNameSize()), 0, 1,6, 1, 0);		gbc.gridx=0;gbc.gridy= 2;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy= 3;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Voice Channel offset"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch,  0),new PerformanceSender(	0),VoiChOfsName), 0, 4,2,1, 10);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch,  1),new PerformanceSender(	1),VoiChOfsName), 2, 4,2,1, 11);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch,  2),new PerformanceSender(	2),VoiChOfsName), 4, 4,2,1, 12);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch,  3),new PerformanceSender(	3),VoiChOfsName), 6, 4,2,1, 13);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch,  4),new PerformanceSender(	4),VoiChOfsName), 0, 5,2,1, 14);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch,  5),new PerformanceSender(	5),VoiChOfsName), 2, 5,2,1, 15);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch,  6),new PerformanceSender(	6),VoiChOfsName), 4, 5,2,1, 16);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch,  7),new PerformanceSender(	7),VoiChOfsName), 6, 5,2,1, 17);		gbc.gridx=0;gbc.gridy= 6;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy= 7;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("MIDI Receive Channel"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch,  8),new PerformanceSender(	8),MIDIRcvChName), 0, 8,2,1, 20);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch,  9),new PerformanceSender(	9),MIDIRcvChName), 2, 8,2,1, 21);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 10),new PerformanceSender( 10),MIDIRcvChName), 4, 8,2,1, 22);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 11),new PerformanceSender( 11),MIDIRcvChName), 6, 8,2,1, 23);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 12),new PerformanceSender( 12),MIDIRcvChName), 0, 9,2,1, 24);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 13),new PerformanceSender( 13),MIDIRcvChName), 2, 9,2,1, 25);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 14),new PerformanceSender( 14),MIDIRcvChName), 4, 9,2,1, 26);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 15),new PerformanceSender( 15),MIDIRcvChName), 6, 9,2,1, 27);		gbc.gridx=0;gbc.gridy=10;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=11;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Voice number"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 16),new Performance2Sender( 16),VoiceNoName), 0,12,2,1, 30);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 17),new Performance2Sender( 17),VoiceNoName), 2,12,2,1, 31);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 18),new Performance2Sender( 18),VoiceNoName), 4,12,2,1, 32);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 19),new Performance2Sender( 19),VoiceNoName), 6,12,2,1, 33);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 20),new Performance2Sender( 20),VoiceNoName), 0,13,2,1, 34);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 21),new Performance2Sender( 21),VoiceNoName), 2,13,2,1, 35);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 22),new Performance2Sender( 22),VoiceNoName), 4,13,2,1, 36);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 23),new Performance2Sender( 23),VoiceNoName), 6,13,2,1, 37);		gbc.gridx=0;gbc.gridy=14;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=15;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Detune"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 24),new PerformanceSender( 24),DetuneName), 0,16,2,1, 40);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 25),new PerformanceSender( 25),DetuneName), 2,16,2,1, 41);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 26),new PerformanceSender( 26),DetuneName), 4,16,2,1, 42);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 27),new PerformanceSender( 27),DetuneName), 6,16,2,1, 43);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 28),new PerformanceSender( 28),DetuneName), 0,17,2,1, 44);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 29),new PerformanceSender( 29),DetuneName), 2,17,2,1, 45);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 30),new PerformanceSender( 30),DetuneName), 4,17,2,1, 46);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 31),new PerformanceSender( 31),DetuneName), 6,17,2,1, 47);		gbc.gridx=0;gbc.gridy=18;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=19;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Output Volume"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 32),new PerformanceSender( 32),OutVolName), 0,20,2,1, 50);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 33),new PerformanceSender( 33),OutVolName), 2,20,2,1, 51);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 34),new PerformanceSender( 34),OutVolName), 4,20,2,1, 52);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 35),new PerformanceSender( 35),OutVolName), 6,20,2,1, 53);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 36),new PerformanceSender( 36),OutVolName), 0,21,2,1, 54);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 37),new PerformanceSender( 37),OutVolName), 2,21,2,1, 55);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 38),new PerformanceSender( 38),OutVolName), 4,21,2,1, 56);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 39),new PerformanceSender( 39),OutVolName), 6,21,2,1, 57);		gbc.gridx=0;gbc.gridy=22;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=23;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Output Assign"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 40),new PerformanceSender( 40),OutAssignName), 0,24,2,1, 60);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 41),new PerformanceSender( 41),OutAssignName), 2,24,2,1, 61);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 42),new PerformanceSender( 42),OutAssignName), 4,24,2,1, 62);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 43),new PerformanceSender( 43),OutAssignName), 6,24,2,1, 63);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 44),new PerformanceSender( 44),OutAssignName), 0,25,2,1, 64);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 45),new PerformanceSender( 45),OutAssignName), 2,25,2,1, 65);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 46),new PerformanceSender( 46),OutAssignName), 4,25,2,1, 66);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 47),new PerformanceSender( 47),OutAssignName), 6,25,2,1, 67);		gbc.gridx=0;gbc.gridy=26;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=27;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Note limit low"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 48),new PerformanceSender( 48),NoteLimitName), 0,28,2,1, 70);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 49),new PerformanceSender( 49),NoteLimitName), 2,28,2,1, 71);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 50),new PerformanceSender( 50),NoteLimitName), 4,28,2,1, 72);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 51),new PerformanceSender( 51),NoteLimitName), 6,28,2,1, 73);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 52),new PerformanceSender( 52),NoteLimitName), 0,29,2,1, 74);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 53),new PerformanceSender( 53),NoteLimitName), 2,29,2,1, 75);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 54),new PerformanceSender( 54),NoteLimitName), 4,29,2,1, 76);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 55),new PerformanceSender( 55),NoteLimitName), 6,29,2,1, 77);		gbc.gridx=0;gbc.gridy=30;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=31;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Note limit high"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 56),new PerformanceSender( 56),NoteLimitName), 0,32,2,1, 80);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 57),new PerformanceSender( 57),NoteLimitName), 2,32,2,1, 81);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 58),new PerformanceSender( 58),NoteLimitName), 4,32,2,1, 82);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 59),new PerformanceSender( 59),NoteLimitName), 6,32,2,1, 83);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 60),new PerformanceSender( 60),NoteLimitName), 0,33,2,1, 84);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 61),new PerformanceSender( 61),NoteLimitName), 2,33,2,1, 85);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 62),new PerformanceSender( 62),NoteLimitName), 4,33,2,1, 86);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 63),new PerformanceSender( 63),NoteLimitName), 6,33,2,1, 87);		gbc.gridx=0;gbc.gridy=34;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=35;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Note shift"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 64),new PerformanceSender( 64),NoteShiftName), 0,36,2,1, 90);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 65),new PerformanceSender( 65),NoteShiftName), 2,36,2,1, 91);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 66),new PerformanceSender( 66),NoteShiftName), 4,36,2,1, 92);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 67),new PerformanceSender( 67),NoteShiftName), 6,36,2,1, 93);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 68),new PerformanceSender( 68),NoteShiftName), 0,37,2,1, 94);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 69),new PerformanceSender( 69),NoteShiftName), 2,37,2,1, 95);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 70),new PerformanceSender( 70),NoteShiftName), 4,37,2,1, 96);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 71),new PerformanceSender( 71),NoteShiftName), 6,37,2,1, 97);		gbc.gridx=0;gbc.gridy=38;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=39;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("EG forced damp"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 72),new PerformanceSender( 72),OnOffName), 0,40,2,1,100);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 73),new PerformanceSender( 73),OnOffName), 2,40,2,1,101);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 74),new PerformanceSender( 74),OnOffName), 4,40,2,1,102);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 75),new PerformanceSender( 75),OnOffName), 6,40,2,1,103);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 76),new PerformanceSender( 76),OnOffName), 0,41,2,1,104);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 77),new PerformanceSender( 77),OnOffName), 2,41,2,1,105);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 78),new PerformanceSender( 78),OnOffName), 4,41,2,1,106);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 79),new PerformanceSender( 79),OnOffName), 6,41,2,1,107);		gbc.gridx=0;gbc.gridy=42;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=43;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Key assign group"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 80),new PerformanceSender( 80),AlternateAssignName), 0,44,2,1,110);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 81),new PerformanceSender( 81),AlternateAssignName), 2,44,2,1,111);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 82),new PerformanceSender( 82),AlternateAssignName), 4,44,2,1,112);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 83),new PerformanceSender( 83),AlternateAssignName), 6,44,2,1,113);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 84),new PerformanceSender( 84),AlternateAssignName), 0,45,2,1,114);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 85),new PerformanceSender( 85),AlternateAssignName), 2,45,2,1,115);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 86),new PerformanceSender( 86),AlternateAssignName), 4,45,2,1,116);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 87),new PerformanceSender( 87),AlternateAssignName), 6,45,2,1,117); 		gbc.gridx=0;gbc.gridy=46;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=47;gbc.gridwidth=3;gbc.gridheight=1;perfPane.add(new JLabel("Micro tuning table (*)"),gbc);		addWidget(perfPane,new ComboBoxWidget("1",patch,new PerformanceModel(patch, 88),new Performance2Sender( 88),MicroTuningName), 0,48,2,1,120);		addWidget(perfPane,new ComboBoxWidget("2",patch,new PerformanceModel(patch, 89),new Performance2Sender( 89),MicroTuningName), 2,48,2,1,121);		addWidget(perfPane,new ComboBoxWidget("3",patch,new PerformanceModel(patch, 90),new Performance2Sender( 90),MicroTuningName), 4,48,2,1,122);		addWidget(perfPane,new ComboBoxWidget("4",patch,new PerformanceModel(patch, 91),new Performance2Sender( 91),MicroTuningName), 6,48,2,1,123);		addWidget(perfPane,new ComboBoxWidget("5",patch,new PerformanceModel(patch, 92),new Performance2Sender( 92),MicroTuningName), 0,49,2,1,124);		addWidget(perfPane,new ComboBoxWidget("6",patch,new PerformanceModel(patch, 93),new Performance2Sender( 93),MicroTuningName), 2,49,2,1,125);		addWidget(perfPane,new ComboBoxWidget("7",patch,new PerformanceModel(patch, 94),new Performance2Sender( 94),MicroTuningName), 4,49,2,1,126);		addWidget(perfPane,new ComboBoxWidget("8",patch,new PerformanceModel(patch, 95),new Performance2Sender( 95),MicroTuningName), 6,49,2,1,127);		gbc.gridx=0;gbc.gridy=50;gbc.gridwidth=1;gbc.gridheight=1;perfPane.add(new JLabel(" "),gbc);		gbc.gridx=0;gbc.gridy=51;gbc.gridwidth=6;gbc.gridheight=1;		perfPane.add(new JLabel("(*) Micro Tuning assignment probably faulty!"),gbc);		gbc.gridx=0;gbc.gridy=1;gbc.gridwidth=1;gbc.gridheight=1;		scrollPane.add(perfPane,gbc);		pack();		show();	}