KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > explorer > resolver > lib > ExtendedMenuDescription


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.resolver.lib;
27
28 import org.objectweb.util.explorer.core.menu.api.ItemDescription;
29 import org.objectweb.util.explorer.core.menu.api.MenuDescription;
30 import org.objectweb.util.explorer.core.menu.api.MenuElement;
31 import org.objectweb.util.explorer.core.menu.lib.BasicMenuDescription;
32
33 /**
34  * This implementation of MenuDescription take into account the semantic
35  * of the menu description attributes. It is used to compute the menu
36  * decription to display for a selected node.
37  *
38  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>,
39  * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>.
40  *
41  * @version 0.1
42  */

43 public class ExtendedMenuDescription
44      extends BasicMenuDescription
45 {
46
47     //==================================================================
48
//
49
// Internal States.
50
//
51
// ==================================================================
52

53     // ==================================================================
54
//
55
// Constructors.
56
//
57
// ==================================================================
58

59     // ==================================================================
60
//
61
// Internal method.
62
//
63
// ==================================================================
64

65     // ==================================================================
66
//
67
// Public methods.
68
//
69
// ==================================================================
70

71     /**
72      * Adds the given menu elements of the source description into the menu description
73      * by taking into account the semantic of the menu descriptions attributes.
74      * That is to say:
75      * <ul>
76      * <li>It doesn't add any menu element if the inherit-type-menu attribute
77      * of the target menu description is set to false.</li>
78      * <li>It doesn't add a menu element if the type-child-visible attribute
79      * of the given menu element is set to false (except if the isFirst boolean value is true).</li>
80      * </ul>
81      */

82     public void addMenuElements(MenuDescription source, boolean isFirst){
83         if(inheritTypeMenu_){
84             MenuElement[] menuElements = source.getMenuElements();
85             for (int i = 0; i < menuElements.length; i++) {
86                 MenuElement element = menuElements[i];
87                 if(!(element instanceof ItemDescription && !((ItemDescription)element).getTypeChildVisible() && !isFirst)){
88                     addMenuElement(element);
89                 }
90             }
91             inheritTypeMenu_ = source.getInheritTypeMenu();
92         }
93     }
94     
95     /**
96      * Adds the given menu elements of the source description into the menu description
97      * by taking into account the semantic of the menu descriptions attributes.
98      * That is to say it doesn't add any menu element if the inherit-tree-menu attribute
99      * of the target menu description is set to false. Moreover, it cleans the children menu elements
100      * list if this attribute is set to false whereas it was true.</li>
101      */

102     public void addChildrenMenuElements(MenuDescription source){
103         if(inheritTreeMenu_){
104             addMenuElements(source.getChildrenMenuElements());
105             inheritTreeMenu_ = source.getInheritTreeMenu();
106             if(!inheritTreeMenu_){
107                 childMenuElements_.clear();
108             }
109         }
110     }
111     
112 }
113
114
115
Popular Tags