/*
* Copyright (C) 2004 The Concord Consortium, Inc.,
* 10 Concord Crossing, Concord, MA 01742
*
* Web Site: http://www.concord.org
* Email: info@concord.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* END LICENSE */
/*
* Last modification information:
* $Revision: 1.1 $
* $Date: 2011-02-18 13:39:31 $
* $Author: moll $
*
* Licence Information
* Copyright 2004 The Concord Consortium
*/
package org.concord.swing;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.AbstractButton;
import javax.swing.Icon;
/**
* SelectableAction
* This is an action that can be selected.
* This can be used in combination with the SelectableToggleButton
* (who listens to this action to select and deselect itself)
*
* Date created: Mar 5, 2005
*
* @author imoncada<p>
*
*/
public class SelectableAction extends AbstractAction
{
protected boolean selected;
protected boolean multipleSelection;
/**
*
*/
public SelectableAction()
{
super();
}
/**
* @param name
*/
public SelectableAction(String name)
{
super(name);
}
/**
* @param name
* @param icon
*/
public SelectableAction(String name, Icon icon)
{
this(name, icon, false);
}
public SelectableAction(String name, Icon icon, boolean multipleSelection)
{
super(name, icon);
setMultipleSelection(multipleSelection);
}
/**
* @return Returns the selected.
*/
public boolean isSelected()
{
return selected;
}
public boolean isMultipleSelection() {
return multipleSelection;
}
public void setMultipleSelection(boolean multipleSelection) {
this.multipleSelection = multipleSelection;
}
/**
* @param selected The selected to set.
*/
public void setSelected(boolean selected)
{
boolean oldSelected = this.selected;
this.selected = selected;
firePropertyChange("selected", new Boolean(oldSelected), new Boolean(selected));
}
/**
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e)
{
if (e.getSource() instanceof AbstractButton){
setSelected(((AbstractButton)e.getSource()).isSelected());
}
}
}