/** displays the dialog if TRUE */ public void setVisible(boolean b) { if (b) m_ReturnValue = JOptionPane.CANCEL_OPTION; super.setVisible(b); // free up memory if (b) m_Viewer.clear(); }
/** builds the dialog and all its components */ protected void createDialog() { JPanel panel; JPanel panel2; final SqlViewerDialog dialog; dialog = this; setLayout(new BorderLayout()); // sql panel m_Viewer = new SqlViewer(m_Parent); add(m_Viewer, BorderLayout.CENTER); panel2 = new JPanel(new BorderLayout()); add(panel2, BorderLayout.SOUTH); // Buttons panel = new JPanel(); panel.setLayout(new FlowLayout()); panel2.add(panel, BorderLayout.EAST); m_ButtonOK.setMnemonic('O'); panel.add(m_ButtonOK); m_ButtonOK.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { m_ReturnValue = JOptionPane.OK_OPTION; // remove listener, otherwise does the disposal of resultspanel // change the query again! m_Viewer.removeResultChangedListener(dialog); m_Viewer.saveSize(); dialog.dispose(); } }); m_ButtonCancel.setMnemonic('C'); panel.add(m_ButtonCancel); m_ButtonCancel.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { m_ReturnValue = JOptionPane.CANCEL_OPTION; // remove listener, otherwise does the disposal of resultspanel // change the query again! m_Viewer.removeResultChangedListener(dialog); m_Viewer.saveSize(); dialog.dispose(); } }); addWindowListener( new WindowAdapter() { /** Invoked when a window is in the process of being closed. */ public void windowClosing(WindowEvent e) { m_Viewer.saveSize(); } }); // current Query panel = new JPanel(new FlowLayout()); panel2.add(panel, BorderLayout.CENTER); panel.add(m_LabelQuery); pack(); getRootPane().setDefaultButton(m_ButtonOK); setResizable(true); // listener m_Viewer.addResultChangedListener(this); }