KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > browser > core > popup > AssociatedMenuImpl


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.popup;
28
29 import org.objectweb.util.browser.api.Entry;
30 import org.objectweb.util.browser.api.MenuItemTreeView;
31 import org.objectweb.util.browser.core.common.AssociatedElementImpl;
32 import org.objectweb.util.browser.core.common.DynamicTree;
33 import org.objectweb.util.browser.core.api.AssociatedMenu;
34 import org.objectweb.util.browser.core.api.BrowserProperty;
35 import org.objectweb.util.browser.core.api.MenuFactory;
36
37 /**
38  * Implementation of AssociatedMenu API without any cache
39  *
40  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
41  * @version 0.1
42  */

43 public class AssociatedMenuImpl
44      extends AssociatedElementImpl
45   implements AssociatedMenu {
46
47     /** The tree */
48     protected DynamicTree tree_ = null;
49
50     /**
51      * Constructs a AssociatedMenuImpl and initializes cache
52      */

53     public AssociatedMenuImpl(BrowserProperty loader, DynamicTree tree) {
54         super();
55         context_ = new MenuPropertyContainer(loader);
56         tree_ = tree;
57     }
58
59     /**
60      * Returns the menu associates to the node
61      * Equivalent to a getIcon(node,false) call
62      *
63      * @param node The node
64      * @return The associated menu or null if no context is found
65      */

66     public AdvancedJPopupMenu getMenu(Object JavaDoc node, MenuItemTreeView treeView) {
67         return getMenu(node, false, treeView);
68     }
69
70     /**
71      * Returns the menu associates to the node
72      *
73      * @param node The node
74      * @param disabledJavaLangObject If true, then java.lang.Object is not consider as a valid entry
75      * @return The associated menu or null if no context is found
76      */

77     public AdvancedJPopupMenu getMenu(Object JavaDoc node, boolean disabledJavaLangObject, MenuItemTreeView treeView) {
78         if (context_ != null) {
79             Entry entry = context_.getRecursiveProperty(node);
80             if (entry != null && !(entry.getName().toString().equals("java.lang.Object") && disabledJavaLangObject)) {
81                 MenuFactory menuFactory = (MenuFactory) entry.getValue();
82                 return menuFactory.newMenu(node, tree_, treeView);
83             }
84         }
85         return null;
86     }
87
88     /**
89      * Returns the menu for childrens of the given node at the tree level
90      * @param parent The object containing the parent menu
91      * @param node The node on which applying the actions
92      * @return The associated menu or null if no context is found
93      */

94     public AdvancedJPopupMenu getParentMenu(Object JavaDoc parent) {
95         if (context_ != null) {
96             Entry parentFactoryEntry = context_.getRecursiveProperty(parent);
97             if (parentFactoryEntry != null) {
98                 MenuFactory parentFactory = (MenuFactory) parentFactoryEntry.getValue();
99                 return parentFactory.newParentMenu(tree_);
100             }
101         }
102         return null;
103     }
104 }
105
Popular Tags