PatchEdit.waitDialog.show();
PatchEdit.showWaitDialog();
	protected void buildEditor(Patch patch)	{		PatchEdit.waitDialog.show();	// Because it needs some time to build up the editor frame		int OpNum, KeyNum;		JPanel microPane = new JPanel();		microPane.setLayout(new GridBagLayout());gbc.weightx=1;		for (OpNum = 0 ; OpNum < OpName.length ; OpNum++) {			gbc.gridx=6+3*OpNum;gbc.gridy=0;gbc.gridwidth=3;gbc.gridheight=1;gbc.fill=GridBagConstraints.BOTH;gbc.anchor=GridBagConstraints.CENTER;			microPane.add(new JLabel(OpName[OpNum],SwingConstants.LEFT),gbc);			for (KeyNum = 0; KeyNum < KeyGrpName.length ; KeyNum++) {				gbc.gridx=0;gbc.gridy=10+2*KeyNum;gbc.gridwidth=6;gbc.gridheight=1;gbc.fill=GridBagConstraints.BOTH;gbc.anchor=GridBagConstraints.CENTER;				microPane.add(new JLabel(KeyGrpName[KeyNum],SwingConstants.LEFT),gbc);				if ( (KeyNum+OpNum*KeyGrpName.length)%41==0) {					addWidget(microPane, new SpinnerWidget(	"",						patch,						0,						254,						-127,						new FractionalScalingModel(patch,KeyNum+OpNum*KeyGrpName.length),						new FractionalScalingSender(patch, OpNum, KeyNum)),						6+3*OpNum, 10+2*KeyNum, 1, 1, KeyNum+OpNum*KeyGrpName.length);				} else {					addWidget(microPane, new SpinnerWidget(	"",						patch,						0,						255,						0,						new FractionalScalingModel(patch,KeyNum+OpNum*KeyGrpName.length),						new FractionalScalingSender(patch, OpNum, KeyNum)),						6+3*OpNum, 10+2*KeyNum, 1, 1, KeyNum+OpNum*KeyGrpName.length);				}				gbc.gridx=6+3*OpNum+1;gbc.gridy=10+2*KeyNum;gbc.gridwidth=1;gbc.gridheight=1;				microPane.add(new JLabel(" "),gbc);			}		}		scrollPane.add(microPane,gbc);		pack();		show();		PatchEdit.waitDialog.hide();	// Okay, the editor frame is ready	}