private void createUI(final Component parent, final Container container) { comboBoxes = new JComboBox[] {new JComboBox()}; textArea = new TextToggle().createBufferedTextArea("beanshell", "/modes/java.xml"); JToolBar bar = new JToolBar(); container.add(bar, BorderLayout.NORTH); final RolloverButton btn = createButton( bar, ACCEPT_BUTTON_KEY, new ActionListener() { public void actionPerformed(ActionEvent e) { save(getItem(), false); Window window = SwingUtilities.getWindowAncestor(container); if (window != null) window.dispose(); } }); comboBoxes[0].addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent ev) { if (ev.getStateChange() == ItemEvent.SELECTED) { String function = getFunction(); if (select(function) != null) setFunction(function); else setDirty(true); } else if (ev.getStateChange() == ItemEvent.DESELECTED) { String item = stringValueOf(ev.getItem()); save(item, false); } } }); comboBoxes[0].setEditable(true); comboEdit(0).setHorizontalAlignment(JTextField.CENTER); bar.add(comboBoxes[0]); comboEdit(0) .addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { btn.doClick(); } } }); installAddRemove(bar, "function"); installUpdate(bar); final RolloverButton test = new RolloverButton(); test.setText("Test"); test.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { testThis(parent, container, comboEdit(0).getText()); } }); test.setEnabled(findAllIn(selector, Pattern.compile("/")).length < 2); bar.add(test); textArea.setOnTextChanged( new Job<JComponent>() { public void perform(JComponent t, Object[] params) throws Exception { setDirty(true); } }); container.add(textArea.getUIComponent(), BorderLayout.CENTER); mess = new JLabel(); mess.setHorizontalAlignment(JTextField.CENTER); container.add(mess, BorderLayout.SOUTH); updateModel(true, false, false); }