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 }