1 /* 2 3 dsh-identify Lightweight components for identifiable beans. 4 Copyright (c) 2003-2019 held jointly by the individual authors. 5 6 This library is free software; you can redistribute it and/or modify it 7 under the terms of the GNU Lesser General Public License as published 8 by the Free Software Foundation; either version 3 of the License, or (at 9 your option) any later version. 10 11 This library is distributed in the hope that it will be useful, but WITHOUT 12 ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 14 License for more details. 15 16 You should have received a copy of the GNU Lesser General Public License 17 along with this library; if not, write to the Free Software Foundation, 18 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 19 20 > http://www.fsf.org/licensing/licenses/lgpl.html 21 > http://www.opensource.org/licenses/lgpl-license.php 22 23 */ 24 package org.dishevelled.identify; 25 26 import javax.swing.AbstractAction; 27 28 import org.dishevelled.iconbundle.IconBundle; 29 30 /** 31 * Abstract identifiable action. 32 * 33 * @author Michael Heuer 34 */ 35 public abstract class IdentifiableAction 36 extends AbstractAction 37 implements Identifiable 38 { 39 /** Icon bundle. */ 40 private IconBundle iconBundle; 41 42 43 /** 44 * Create a new abstract identifiable action with the specified name 45 * and icon bundle. 46 * 47 * @param name name for this identifiable action 48 * @param iconBundle icon bundle for this identifiable action, must 49 * not be null 50 */ 51 protected IdentifiableAction(final String name, final IconBundle iconBundle) 52 { 53 super(name); 54 putValue(SHORT_DESCRIPTION, name); 55 setIconBundle(iconBundle); 56 } 57 58 59 /** 60 * Set the icon bundle for this identifiable action to <code>iconBundle</code>. 61 * 62 * <p>This is a bound property.</p> 63 * 64 * @param iconBundle icon bundle for this identifiable action, must not be null 65 */ 66 public final void setIconBundle(final IconBundle iconBundle) 67 { 68 if (iconBundle == null) 69 { 70 throw new IllegalArgumentException("iconBundle must not be null"); 71 } 72 IconBundle oldIconBundle = this.iconBundle; 73 this.iconBundle = iconBundle; 74 firePropertyChange("iconBundle", oldIconBundle, this.iconBundle); 75 } 76 77 @Override 78 public final String getName() 79 { 80 return (String) getValue(NAME); 81 } 82 83 @Override 84 public final IconBundle getIconBundle() 85 { 86 return iconBundle; 87 } 88 }