View Javadoc

1   //----------------------------------------------------------------------
2   // 
3   // PerfectJPattern: "Design patterns are good but components are better!" 
4   // Example.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.structural.decorator;
22  
23  /**
24   * Startup Main for the Decorator Pattern Example code
25   *
26   * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
27   * @version $Revision: 1.0 $Date: Apr 5, 2008 10:11:17 PM $
28   */
29  //CHECKSTYLE:OFF
30  public final
31  class Example
32  // CHECKSTYLE:ON
33  {
34      //------------------------------------------------------------------------
35      // public
36      //------------------------------------------------------------------------
37      public static void 
38      main(String[] anArguments)
39      {
40          //---------------------------------------------------------------
41          // Create TextView decorated by Scroll and Border decorators
42          //---------------------------------------------------------------
43          IVisualComponent myTextView = new TextView();
44          ScrollDecorator myScrollableView = new ScrollDecorator(
45              new BorderDecorator(myTextView).getComponent());
46  
47          //---------------------------------------------------------------
48          // get reference to the Decorator instance
49          //---------------------------------------------------------------
50          IScrollableComponent myScrollableDecorator = myScrollableView.
51              getComponent();
52  
53          assert myScrollableDecorator.equals(myTextView) : 
54              "Identity problems? I thought not!";
55          
56          //---------------------------------------------------------------
57          // either call additional method ...
58          //---------------------------------------------------------------
59          myScrollableDecorator.scrollTo();
60          
61          //---------------------------------------------------------------
62          // or call [optionally decorated] component methods
63          //---------------------------------------------------------------
64          myScrollableDecorator.draw();
65          myScrollableDecorator.focus();
66          myScrollableDecorator.hide();
67      }
68  }