package org.drugis.common.gui; import java.awt.BorderLayout; import java.awt.Dialog; import java.awt.Frame; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JPanel; import com.jgoodies.forms.builder.ButtonBarBuilder2; @SuppressWarnings("serial") public abstract class OkCancelDialog extends JDialog { private JPanel d_userPanel; protected JButton d_okButton; protected JButton d_cancelButton; protected abstract void commit(); protected abstract void cancel(); private void construct() { setContentPane(createPanel()); pack(); } private JComponent createPanel() { JPanel panel = new JPanel(new BorderLayout()); d_okButton = createOkButton(); d_cancelButton = createCancelButton(); d_userPanel = new JPanel(new BorderLayout()); panel.add(d_userPanel, BorderLayout.CENTER); ButtonBarBuilder2 builder = new ButtonBarBuilder2(); builder.addGlue(); builder.addButton(d_okButton); builder.addButton(d_cancelButton); panel.add(builder.getPanel(), BorderLayout.SOUTH); return panel; } protected JPanel getUserPanel() { return d_userPanel; } private JButton createCancelButton() { JButton cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent arg0) { cancel(); } }); return cancelButton; } private JButton createOkButton() { JButton okButton = new JButton("OK"); okButton.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent e) { commit(); } }); return okButton; } public OkCancelDialog() { super(); construct(); } public OkCancelDialog(Frame owner) { super(owner); construct(); } public OkCancelDialog(Dialog owner) { super(owner); construct(); } public OkCancelDialog(Frame owner, boolean modal) { super(owner, modal); construct(); } public OkCancelDialog(Frame owner, String title) { super(owner, title); construct(); } public OkCancelDialog(Dialog owner, boolean modal) { super(owner, modal); construct(); } public OkCancelDialog(Dialog owner, String title) { super(owner, title); construct(); } public OkCancelDialog(Frame owner, String title, boolean modal) { super(owner, title, modal); construct(); } public OkCancelDialog(Dialog owner, String title, boolean modal) { super(owner, title, modal); construct(); } }