private void buildUI(Frame owner) { JPanel wrapper = new JPanel(new GridLayout()); wrapper.add(variableTree); variableTree.setOwner(owner); variableTree.setDoubleClickAction( new ActionListener() { public void actionPerformed(ActionEvent e) { done(); } }); variableTree.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { okCommand.setEnabled(variableTree.isSettable()); } }); JButton newCommand = new JButton(variableTree.getAddAction()); JButton editCommand = new JButton(variableTree.getEditAction()); JButton deleteCommand = new JButton(variableTree.getDeleteAction()); okCommand = new JButton(App.messages.getString("res.3")); okCommand.setEnabled(false); JButton cancelCommand = new JButton(App.messages.getString("res.4")); JButton applyNull = new JButton(App.messages.getString("res.287")); applyNull.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { nullApply(); } }); newCommand.setPreferredSize(new Dimension(75, 25)); editCommand.setPreferredSize(newCommand.getPreferredSize()); deleteCommand.setPreferredSize(newCommand.getPreferredSize()); okCommand.setPreferredSize(newCommand.getPreferredSize()); cancelCommand.setPreferredSize(newCommand.getPreferredSize()); applyNull.setPreferredSize(newCommand.getPreferredSize()); okCommand.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { done(); } }); cancelCommand.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { hide(); } }); JPanel commandPanel = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = GridBagConstraints.REMAINDER; Component strut = Box.createVerticalStrut(150); commandPanel.add(strut, gbc); gbc.insets = new Insets(2, 20, 2, 20); commandPanel.add(newCommand, gbc); commandPanel.add(editCommand, gbc); commandPanel.add(deleteCommand, gbc); gbc.insets = new Insets(20, 20, 2, 20); commandPanel.add(okCommand, gbc); gbc.insets = new Insets(2, 20, 2, 20); commandPanel.add(applyNull, gbc); commandPanel.add(cancelCommand, gbc); wrapper.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 0)); getContentPane().add(wrapper, BorderLayout.CENTER); getContentPane().add(commandPanel, BorderLayout.EAST); this.addWindowListener( new WindowAdapter() { public void windowOpened(WindowEvent e) { variableTree.scrollSelectedRowToVisible(); } }); }