KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > app > DerivedMutableStyle


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package nextapp.echo2.app;
31
32 /**
33  * A <code>MutableStyle</code> which will retrieve properties from a
34  * "parent" style when they are not set locally.
35  */

36 public class DerivedMutableStyle extends MutableStyle {
37     
38     private Style parentStyle;
39     
40     /**
41      * Default constructor.
42      */

43     public DerivedMutableStyle() {
44         super();
45     }
46     
47     /**
48      * Creates a new <code>DerivedMutableStyle</code>.
49      *
50      * @param parentStyle the style from which to retrieve properties
51      * when they are not set within this style
52      */

53     public DerivedMutableStyle(Style parentStyle) {
54         this.parentStyle = parentStyle;
55     }
56     
57     /**
58      * Returns the parent style.
59      *
60      * @return the parent style
61      */

62     public Style getParentStyle() {
63         return parentStyle;
64     }
65     
66     /**
67      * @see nextapp.echo2.app.Style#getIndexedProperty(java.lang.String, int)
68      */

69     public Object JavaDoc getIndexedProperty(String JavaDoc propertyName, int propertyIndex) {
70         if (super.isIndexedPropertySet(propertyName, propertyIndex)) {
71             return super.getIndexedProperty(propertyName, propertyIndex);
72         } else if (parentStyle != null) {
73             return parentStyle.getIndexedProperty(propertyName, propertyIndex);
74         } else {
75             return null;
76         }
77     }
78
79     /**
80      * @see nextapp.echo2.app.Style#getProperty(java.lang.String)
81      */

82     public Object JavaDoc getProperty(String JavaDoc propertyName) {
83         if (super.isPropertySet(propertyName)) {
84             return super.getProperty(propertyName);
85         } else if (parentStyle != null) {
86             return parentStyle.getProperty(propertyName);
87         } else {
88             return null;
89         }
90     }
91     
92     /**
93      * @see nextapp.echo2.app.Style#isIndexedPropertySet(java.lang.String, int)
94      */

95     public boolean isIndexedPropertySet(String JavaDoc propertyName, int propertyIndex) {
96         return super.isIndexedPropertySet(propertyName, propertyIndex)
97                 || (parentStyle != null && parentStyle.isIndexedPropertySet(propertyName, propertyIndex));
98     }
99     
100     /**
101      * @see nextapp.echo2.app.Style#isPropertySet(java.lang.String)
102      */

103     public boolean isPropertySet(String JavaDoc propertyName) {
104         return super.isPropertySet(propertyName) || (parentStyle != null && parentStyle.isPropertySet(propertyName));
105     }
106     
107     /**
108      * Sets the parent style, from which properties will be retrieved if they
109      * are not found in this style.
110      *
111      * @param parentStyle the parent style
112      */

113     public void setParentStyle(Style parentStyle) {
114         this.parentStyle = parentStyle;
115     }
116 }
117
Popular Tags