KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > browser > core > panel > AssociatedPanelImpl


1 /*===========================================================================
2
3 ObjectWeb Naming Context Framework
4 Copyright (C) 2002 USTL - LIFL - GOAL
5 Contact: architecture@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): Philippe Merle.
23 Contributor(s): ______________________________________.
24
25 ===========================================================================*/

26
27 package org.objectweb.util.browser.core.panel;
28
29 import org.objectweb.util.browser.api.Entry;
30 import org.objectweb.util.browser.api.Panel;
31 import org.objectweb.util.browser.core.common.AssociatedElementImpl;
32 import org.objectweb.util.browser.core.api.AssociatedPanel;
33 import org.objectweb.util.browser.core.api.BrowserProperty;
34 import org.objectweb.util.browser.core.api.PanelFactory;
35
36 /**
37  * Implementation of AssociatedPanel API
38  *
39  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
40  * @version 0.1
41  */

42 public class AssociatedPanelImpl
43     extends AssociatedElementImpl
44     implements AssociatedPanel {
45
46     /**
47      * Constructs a AssociatedPanelImpl
48      * @param loader The propertyLoader to use to load new configuration
49      * @param tree The associated tree
50      */

51     public AssociatedPanelImpl(BrowserProperty loader) {
52         super();
53         context_ = new PanelPropertyContainer(loader);
54     }
55
56     /**
57      * Returns the menu associates to the node
58      * Equivalent to a getMenu(node,false) call
59      *
60      * @param node The node
61      * @return The associated panel or null if no context is found
62      */

63     public Panel getPanel(Object JavaDoc node) {
64         return getPanel(node, false);
65     }
66
67     /**
68      * Returns the panel associates to the node
69      *
70      * @param node The node
71      * @param disabledJavaLangObject If true, then java.lang.Object is not consider as a valid entry
72      * @return The associated panel or null if no context is found
73      */

74     public Panel getPanel(Object JavaDoc node, boolean disabledJavaLangObject) {
75         if (context_ != null) {
76             Entry entry = context_.getRecursiveProperty(node);
77             if (entry != null && !(entry.getName().toString().equals("java.lang.Object") && disabledJavaLangObject)) {
78                 PanelFactory panelFactory = (PanelFactory) entry.getValue();
79                 Panel nodeViewPanel = panelFactory.newPanel(node);
80                 return nodeViewPanel;
81             }
82         }
83         return null;
84     }
85 }
86
Popular Tags