KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > component > menubar > MenuItemBase


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.faces.component.menubar;
35
36 import com.icesoft.faces.component.ext.HtmlCommandLink;
37
38 import javax.faces.component.NamingContainer;
39 import javax.faces.component.UICommand;
40 import javax.faces.component.UIComponent;
41 import javax.faces.context.FacesContext;
42 import javax.faces.event.AbortProcessingException;
43 import javax.faces.event.FacesEvent;
44 import java.util.List JavaDoc;
45
46
47 /**
48  *
49  */

50 public abstract class MenuItemBase extends UICommand
51         implements NamingContainer {
52
53     protected static String JavaDoc DEFAULT_CSS_IMAGE_DIR = "";
54
55     public MenuItemBase() {
56     }
57
58     /* (non-Javadoc)
59      * @see javax.faces.component.UIComponent#processDecodes(javax.faces.context.FacesContext)
60      */

61     public void processDecodes(FacesContext context) {
62         if (context == null) {
63             throw new NullPointerException JavaDoc("context");
64         }
65         if (!isRendered()) {
66             return;
67         }
68
69         decodeRecursive(this, context);
70         try {
71             decode(context);
72         } catch (RuntimeException JavaDoc e) {
73             context.renderResponse();
74             throw e;
75         }
76     }
77
78     /**
79      * @param component
80      * @param context
81      */

82     private void decodeRecursive(UIComponent component, FacesContext context) {
83         if (component instanceof MenuItems) {
84             List JavaDoc list = (List JavaDoc) ((MenuItems) component).getValue();
85
86             for (int j = 0; j < list.size(); j++) {
87                 MenuItem item = (MenuItem) list.get(j);
88                 item.processDecodes(context);
89                 decodeRecursiveItems(item, context);
90             }
91
92         }
93
94         for (int i = 0; i < component.getChildCount(); i++) {
95             UIComponent next = (UIComponent) component.getChildren().get(i);
96             if (next instanceof HtmlCommandLink) {
97                 next.processDecodes(context);
98             }
99             decodeRecursive(next, context);
100         }
101     }
102
103     /**
104      * @param component
105      * @param context
106      */

107     private void decodeRecursiveItems(UIComponent component,
108                                       FacesContext context) {
109         for (int i = 0; i < component.getChildCount(); i++) {
110             UIComponent next = (UIComponent) component.getChildren().get(i);
111
112             next.processDecodes(context);
113
114             decodeRecursiveItems(next, context);
115         }
116     }
117
118     /* (non-Javadoc)
119      * @see javax.faces.component.UIComponent#queueEvent(javax.faces.event.FacesEvent)
120      */

121     public void queueEvent(FacesEvent event) {
122         super.queueEvent(event);
123     }
124
125     /* (non-Javadoc)
126      * @see javax.faces.component.UIComponent#broadcast(javax.faces.event.FacesEvent)
127      */

128     public void broadcast(FacesEvent event) throws AbortProcessingException {
129         super.broadcast(event);
130         return;
131
132     }
133
134
135 }
136
Popular Tags