1 //----------------------------------------------------------------------
2 //
3 // PerfectJPattern: "Design patterns are good but components are better!"
4 // Button.java Copyright (c) 2009 Giovanni Azua Garcia
5 // bravegag@hotmail.com
6 //
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License
9 // as published by the Free Software Foundation; either version 3
10 // of the License, or (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, see <http://www.gnu.org/licenses/>.
19 //
20 //----------------------------------------------------------------------
21 package org.perfectjpattern.core.behavioral.chainofresponsibility;
22
23 import org.slf4j.*;
24
25 /**
26 * Button widget
27 *
28 * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
29 * @version $Revision: 1.0 $Date: Apr 19, 2008 12:25:06 PM $
30 */
31 public
32 class Button
33 extends AbstractWidget
34 {
35 //------------------------------------------------------------------------
36 // public
37 //------------------------------------------------------------------------
38 public
39 Button(String aName)
40 {
41 theName = aName;
42 }
43
44 //------------------------------------------------------------------------
45 /**
46 * {@inheritDoc}
47 */
48 @Override
49 protected boolean
50 canHandleHelp()
51 {
52 return true;
53 }
54
55 //------------------------------------------------------------------------
56 /**
57 * {@inheritDoc}
58 */
59 @Override
60 protected boolean
61 canHandlePrint()
62 {
63 return false;
64 }
65
66 //------------------------------------------------------------------------
67 /**
68 * {@inheritDoc}
69 */
70 @Override
71 protected void
72 handleHelp()
73 {
74 theLogger.debug(theName + " button is displaying Help callout ...");
75 }
76
77 //------------------------------------------------------------------------
78 /**
79 * {@inheritDoc}
80 */
81 @Override
82 protected void
83 handlePrint()
84 {
85 throw new IllegalStateException("The Print request can not be handled");
86 }
87
88 //------------------------------------------------------------------------
89 protected static void
90 setLogger(Logger aLogger)
91 {
92 theLogger = aLogger;
93 }
94
95 //------------------------------------------------------------------------
96 // members
97 //------------------------------------------------------------------------
98 private final String theName;
99
100 /**
101 * Provides logging facilities for this class instance
102 */
103 private static Logger theLogger = LoggerFactory.getLogger(Button.class);
104 }