KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > explorer > property > lib > PanelProperty


1 /*====================================================================
2
3 Objectweb Explorer Framework
4 Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL
5 Contact: openccm@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library 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 GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Jerome Moroy, Philippe Merle.
23 Contributor(s): ______________________________________.
24
25 ====================================================================*/

26 package org.objectweb.util.explorer.property.lib;
27
28 import org.objectweb.util.explorer.core.common.api.Description;
29 import org.objectweb.util.explorer.core.panel.api.CompositePanelDescription;
30 import org.objectweb.util.explorer.core.panel.api.PanelDescription;
31 import org.objectweb.util.explorer.core.panel.lib.BasicCompositePanelDescription;
32
33 /**
34  *
35  *
36  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>,
37  * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>.
38  *
39  * @version 0.1
40  */

41 public class PanelProperty
42      extends AbstractProperty
43 {
44
45     //==================================================================
46
//
47
// Internal States.
48
//
49
// ==================================================================
50

51     // ==================================================================
52
//
53
// Constructors.
54
//
55
// ==================================================================
56

57     // ==================================================================
58
//
59
// Internal methods.
60
//
61
// ==================================================================
62

63     /**
64      * Adds the given source panel into the given target panel if and only if
65      * the target panel is a composite panel. Else, it creates a composite panel
66      * and adds both the source and the target into this composite.
67      */

68     protected PanelDescription mergePanelDescription(PanelDescription source, PanelDescription target){
69         if(target instanceof CompositePanelDescription){
70             ((CompositePanelDescription)target).addPanelDescription(source);
71             if(source.inheritTypePanel()){
72                 ((CompositePanelDescription)target).setInheritTypePanel(true);
73             }
74         } else {
75             CompositePanelDescription composite = new BasicCompositePanelDescription();
76             composite.addPanelDescription(target);
77             composite.addPanelDescription(source);
78             composite.setInheritTypePanel(source.inheritTypePanel()||target.inheritTypePanel());
79             target=composite;
80         }
81         return target;
82     }
83     
84     // ==================================================================
85
//
86
// Public methods for PropertyFeeder interface.
87
//
88
// ==================================================================
89

90     /* (non-Javadoc)
91      * @see org.objectweb.util.explorer.property.api.PropertyFeeder#feed(java.lang.String, java.lang.Object, org.objectweb.util.explorer.core.common.api.Description)
92      */

93     public void feed(String JavaDoc propertyType, Object JavaDoc key, Description value) {
94         if(value!=null && value instanceof PanelDescription){
95             //if(properties_.containsKey(key)){
96
// value = mergePanelDescription((PanelDescription)value, (PanelDescription)(Description)properties_.get(key));
97
//}
98
properties_.put(key,value);
99         }
100     }
101
102     // ==================================================================
103
//
104
// Public methods for PropertyProvider interface.
105
//
106
// ==================================================================
107

108     /* (non-Javadoc)
109      * @see org.objectweb.util.explorer.property.api.PropertyProvider#getPropertyDescription(java.lang.String, java.lang.Object)
110      */

111     public Description getPropertyDescription(String JavaDoc propertyType, Object JavaDoc key) {
112         return (Description)properties_.get(key);
113     }
114
115 }
116
117
118
Popular Tags