addWidget(cmnPane,new PatchNameWidget(patch,"Performance Name (30 Char.)"),0,0,7,1,1);
addWidget(cmnPane,new PatchNameWidget("Performance Name (30 Char.)", patch),0,0,7,1,1);
  public YamahaDX7PerformanceEditor(Patch patch)  {    super ("Yamaha DX7 \"Performance\" Editor",patch);       /*     *   Performance Parameter - Common settings     */    JPanel cmnPane= new JPanel();    cmnPane.setLayout(new GridBagLayout());gbc.weightx=0;    addWidget(cmnPane,new PatchNameWidget(patch,"Performance Name (30 Char.)"),0,0,7,1,1);    addWidget(cmnPane,new ComboBoxWidget("Corresponding Voice Number?",patch,new ParamModel(patch,6+0),null,VoiceNumberName),0,2,3,1,3);    gbc.gridx=4;gbc.gridy=2;gbc.gridwidth=3;gbc.gridheight=1;gbc.anchor=gbc.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 Parameter (only voice A accessible)     */    JPanel voicePane = new JPanel();    voicePane.setLayout(new GridBagLayout());    gbc.gridx=0;gbc.gridy=1;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Key Mode: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Assign"              ,patch,new ParamModel(patch,6+2),new PerformanceSender(patch,64),PolyMonoName),3,1,6,1,10);    gbc.gridx=0;gbc.gridy=2;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=3;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Pitch Bend: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Range"               ,patch,new ParamModel(patch,6+3),new PerformanceSender(patch,65),PitchBendRangeName),3,3,6,1,11);    addWidget(voicePane,new ComboBoxWidget("Step"                ,patch,new ParamModel(patch,6+4),new PerformanceSender(patch,66),PitchBendStepName),9,3,6,1,12);    gbc.gridx=0;gbc.gridy=4;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=5;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Portamento: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Portamento/Glissando",patch,new ParamModel(patch,6+6),new PerformanceSender(patch,68),PortGlissName),3,5,6,1,13);    addWidget(voicePane,new ComboBoxWidget("Mode (Poly/Mono)"    ,patch,new ParamModel(patch,6+7),new PerformanceSender(patch,67),PortModeName),3,6,6,1,14);    addWidget(voicePane,new ScrollBarWidget("Time"               ,patch,0,99,0,new ParamModel(patch,6+5),new PerformanceSender(patch,69)),9,6,6,1,20);    gbc.gridx=0;gbc.gridy=7;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=8;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Modulation Wheel: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Assign"              ,patch,new ParamModel(patch,6+10),new PerformanceSender(patch,71),AssignName),3,8,6,1,15);    addWidget(voicePane,new ScrollBarWidget("Sensitivity"        ,patch,0,15,0,new ParamModel(patch,6+9),new PerformanceSender(patch,70)),9,8,6,1,21);    gbc.gridx=0;gbc.gridy=9;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=10;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Foot Controller: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Assign"              ,patch,new ParamModel(patch,6+12),new PerformanceSender(patch,73),AssignName),3,10,6,1,16);    addWidget(voicePane,new ScrollBarWidget("Sensitivity"        ,patch,0,15,0,new ParamModel(patch,6+11),new PerformanceSender(patch,72)),9,10,6,1,22);    gbc.gridx=0;gbc.gridy=11;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=12;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("After Touch: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Assign"              ,patch,new ParamModel(patch,6+14),new PerformanceSender(patch,77),AssignName),3,12,6,1,17);    addWidget(voicePane,new ScrollBarWidget("Sensitivity"        ,patch,0,15,0,new ParamModel(patch,6+13),new PerformanceSender(patch,76)),9,12,6,1,23);    gbc.gridx=0;gbc.gridy=13;gbc.gridwidth=1;gbc.gridheight=1; voicePane.add(new JLabel(" "),gbc);    gbc.gridx=0;gbc.gridy=14;gbc.gridwidth=3;gbc.gridheight=1; voicePane.add(new JLabel("Breath Controller: "),gbc);    addWidget(voicePane,new ComboBoxWidget("Assign"              ,patch,new ParamModel(patch,6+16),new PerformanceSender(patch,75),AssignName),3,14,6,1,18);    addWidget(voicePane,new ScrollBarWidget("Sensitivity"        ,patch,0,15,0,new ParamModel(patch,6+15),new PerformanceSender(patch,74)),9,14,6,1,24);    gbc.gridx=0;gbc.gridy=1;gbc.gridwidth=3;gbc.gridheight=1;    voicePane.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.RAISED),"Voice",TitledBorder.CENTER,TitledBorder.CENTER));    scrollPane.add(voicePane,gbc);    pack();    show();  }