001package arcommon.ui.component;
002
003import java.awt.BorderLayout;
004import java.awt.event.ActionEvent;
005import java.awt.event.ActionListener;
006
007import javax.swing.JButton;
008import javax.swing.JPanel;
009
010public abstract class OkCancelButtonBarJComponent extends JPanel {
011
012    private JButton okButton;
013    private JPanel extraButtonPanel;
014
015    public OkCancelButtonBarJComponent() {
016        setLayout(new BorderLayout());
017
018        JPanel buttonPanel = new JPanel();
019        add(buttonPanel, BorderLayout.EAST);
020
021        okButton = new JButton("Ok");
022        buttonPanel.add(okButton);
023        okButton.addActionListener(new ActionListener() {
024            public void actionPerformed(ActionEvent e) {
025                eventOkActionPerformed(e);
026            }
027        });
028
029        JButton button = new JButton("Cancel");
030        buttonPanel.add(button);
031        button.addActionListener(new ActionListener() {
032            public void actionPerformed(ActionEvent e) {
033                eventCancelActionPerformed(e);
034            }
035        });
036    }
037
038    public void addExtraButton(JButton button) {
039        if (extraButtonPanel == null) {
040            extraButtonPanel = new JPanel();
041            add(extraButtonPanel, BorderLayout.WEST);
042        }
043        extraButtonPanel.add(button);
044    }
045
046    public JButton getOkButton() {
047        return okButton;
048    }
049
050    public abstract void eventOkActionPerformed(ActionEvent e);
051
052    public abstract void eventCancelActionPerformed(ActionEvent e);
053
054    private static final long serialVersionUID = 7940846610964638529L;
055}