/**
  * Creates a new VariableExplorer object.
  *
  * @param owner DOCUMENT ME!
  * @param title DOCUMENT ME!
  */
 public VariableExplorer(Frame owner, String title) {
   super(owner, title, true);
   buildUI(owner);
   variableTree.setModel(Main.getInstance().getActiveEditor().getVariableModel());
   setSize(new Dimension(380, 450));
   setLocationRelativeTo(owner);
 }
  protected void done() {
    if (variableTree.isSettable()) {
      xok = OK;

      hide();
    }
  }
  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();
          }
        });
  }
 /**
  * DOCUMENT ME!
  *
  * @param var DOCUMENT ME!
  */
 public void setVariable(String var) {
   variableTree.setVariable(var);
 }
 /**
  * DOCUMENT ME!
  *
  * @return DOCUMENT ME!
  */
 public String getVariable() {
   return variableTree.getVariable();
 }