View Javadoc

1   /***
2    *  The contents of this file are subject to the Mozilla Public
3    *  License Version 1.1 (the "License"); you may not use this file
4    *  except in compliance with the License. You may obtain a copy of
5    *  the License at http://www.mozilla.org/MPL/
6    *
7    *  Software distributed under the License is distributed on an "AS
8    *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9    *  implied. See the License for the specific language governing
10   *  rights and limitations under the License.
11   *
12   *  The Original Code is pow2WebGui library.
13   *
14   *  The Initial Owner of the Original Code is Power Of Two S.R.L.
15   *  Portions created by Power Of Two S.R.L. are Copyright (C) Power Of Two S.R.L.
16   *  All Rights Reserved.
17   *
18   * Contributor(s):
19   */
20  
21  package com.pow2.webgui.window;
22  
23  import org.apache.velocity.VelocityContext;
24  import com.pow2.webgui.*;
25  
26  
27  /***
28   *  Abstract WindowDrawer class.
29   *  <br>
30   *  Use <code>draw</code> as the template method
31   *  that executes <code>getTemplateDescription</code>.
32   *  <br>
33   *  Concrete subclasses should provide the implementation of the method
34   *  above.
35   *
36   * @author  Luca Fossato
37   * @created  12 October 2001
38   */
39  public abstract class WindowDrawer extends WidgetDrawer
40  {
41    /***
42     * Constructor.
43     *
44     * @param widget the widget to draw
45     */
46    public WindowDrawer(Widget widget)
47    {
48      super(widget);
49    }
50  
51    /***
52     *  Gets the string representation of the Window widget.
53     *
54     * @return  the string representation of the Window widget
55     */
56    public StringBuffer draw()
57    {
58      VelocityContext context = new VelocityContext();
59      Window          win     = (Window)widget;
60  
61      context.put("title",         win.getTitle());
62      context.put("titleType",     win.getTitleType());
63      context.put("color",         win.getColor());
64      context.put("width",         win.getWidth());
65      context.put("windowContent", win.getContent());
66  
67      return getTemplateDescription(win, context);
68    }
69  
70  
71    /***
72     *  Gets the description of the Window template.
73     *
74     * @return  the description of the Window template
75     */
76    protected abstract StringBuffer getTemplateDescription(Window window, VelocityContext context);
77  }