package org.mindswap.swoop.utils.ui; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import javax.swing.JButton; import javax.swing.JPanel; /** * Provides an add, add & close, and cancel button bar. * @author ronwalf * */ public class AddCloseBar extends JPanel implements ActionListener { final public static String CLOSE = "CLOSE"; final public static String ADD = "ADD"; final public static String ADDCLOSE = "ADD&CLOSE"; private Collection listeners; private JButton applyBtn, addBtn, cancelBtn; private Font tahoma = new Font("Tahoma", Font.PLAIN, 11); public AddCloseBar() { super(); listeners = new HashSet(); applyBtn = new JButton("Add"); applyBtn.setFont(tahoma); applyBtn.addActionListener(this); applyBtn.setActionCommand(ADD); addBtn = new JButton("Add & Close"); addBtn.setFont(tahoma); addBtn.addActionListener(this); addBtn.setActionCommand(ADDCLOSE); cancelBtn = new JButton("Cancel"); cancelBtn.setFont(tahoma); cancelBtn.addActionListener(this); cancelBtn.setActionCommand(CLOSE); setLayout(new GridLayout(1,3)); add(applyBtn); add(addBtn); add(cancelBtn); } public void addActionListener(ActionListener listener) { listeners.add(listener); } public void actionPerformed(ActionEvent e) { ActionEvent newEvent = new ActionEvent(this, e.getID(), e.getActionCommand()); for (Iterator iter = listeners.iterator(); iter.hasNext();) { ActionListener listener = (ActionListener) iter.next(); listener.actionPerformed(newEvent); } } }