KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > webapp > action > core > menuItem > ListMenuItemsAction


1 /*
2  * Copyright 2004 Blandware (http://www.blandware.com)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package com.blandware.atleap.webapp.action.core.menuItem;
17
18 import com.blandware.atleap.common.Constants;
19 import com.blandware.atleap.model.core.ActionPage;
20 import com.blandware.atleap.model.core.ContentPage;
21 import com.blandware.atleap.model.core.Layout;
22 import com.blandware.atleap.model.core.Localizable;
23 import com.blandware.atleap.model.core.MenuItem;
24 import com.blandware.atleap.service.core.LookupManager;
25 import com.blandware.atleap.service.core.MenuManager;
26 import com.blandware.atleap.webapp.action.core.BaseAction;
27 import com.blandware.atleap.webapp.form.MenuItemForm;
28 import com.blandware.atleap.webapp.util.core.WebappConstants;
29 import org.apache.commons.validator.GenericValidator;
30 import org.apache.struts.action.ActionForm;
31 import org.apache.struts.action.ActionForward;
32 import org.apache.struts.action.ActionMapping;
33 import org.apache.struts.action.ActionMessage;
34 import org.apache.struts.action.ActionMessages;
35
36 import javax.servlet.http.HttpServletRequest JavaDoc;
37 import javax.servlet.http.HttpServletResponse JavaDoc;
38
39 /**
40  * <p>Forward to the page with list of menu items
41  * </p>
42  * <p><a HREF="ListMenuItemsAction.java.htm"><i>View Source</i></a></p>
43  * <p/>
44  *
45  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
46  * @version $Revision: 1.15 $ $Date: 2006/03/10 17:10:28 $
47  * @struts.action path="/core/menuItem/list"
48  * name="menuItemForm"
49  * roles="core-menuItem-list"
50  * validate="false"
51  * @struts.action-forward name="listMenuItems"
52  * path=".core.menuItem.list"
53  * @struts.action-forward name="viewLayout"
54  * path="/core/layout/view.do"
55  * redirect="true"
56  * @struts.action-forward name="viewContentPage"
57  * path="/core/contentPage/view.do"
58  * redirect="true"
59  * @struts.action-forward name="viewActionPage"
60  * path="/core/actionPage/view.do"
61  * redirect="true"
62  */

63 public final class ListMenuItemsAction extends BaseAction {
64     /**
65      * @param mapping The ActionMapping used to select this instance
66      * @param form The optional ActionForm bean for this request (if any)
67      * @param request The HTTP request we are proceeding
68      * @param response The HTTP response we are creating
69      * @return an ActionForward instance describing where and how
70      * control should be forwarded, or null if response
71      * has already been completed
72      */

73     public ActionForward execute(ActionMapping mapping, ActionForm form,
74                                  HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
75
76         Long JavaDoc ownerId = null;
77         MenuItemForm menuItemForm = (MenuItemForm) form;
78         if ( !GenericValidator.isBlankOrNull(menuItemForm.getOwnerId()) ) {
79             ownerId = Long.valueOf(menuItemForm.getOwnerId());
80         } else if ( request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY) != null ) {
81             ownerId = (Long JavaDoc) request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY);
82         } else {
83             if ( log.isWarnEnabled() ) {
84                 log.warn("Missing owner ID. Returning to index...");
85             }
86             return mapping.findForward("admin");
87         }
88
89         if ( request.getParameter("showParent") != null || request.getParameter("parentItemId") != null ) {
90             Long JavaDoc parentItemId = (Long JavaDoc) request.getSession().getAttribute(WebappConstants.MENU_ITEM_PARENT_ID_KEY);
91             if ( request.getParameter("showParent") != null ) {
92                 if ( parentItemId != null ) {
93                     MenuManager menuManager = (MenuManager) getBean(Constants.MENU_MANAGER_BEAN);
94                     MenuItem parentItem = menuManager.retrieveMenuItem(parentItemId);
95                     parentItemId = null;
96                     if ( parentItem != null ) {
97                         if ( parentItem.getParentItem() != null ) {
98                             parentItemId = parentItem.getParentItem().getId();
99                         }
100                     }
101                 }
102             } else {
103                 try {
104                     parentItemId = Long.valueOf(request.getParameter("parentItemId"));
105                 } catch ( NumberFormatException JavaDoc e ) {
106                     parentItemId = null;
107                 }
108             }
109             request.getSession().setAttribute(WebappConstants.MENU_ITEM_PARENT_ID_KEY, parentItemId);
110         }
111
112         LookupManager lookupManager = (LookupManager) getBean(Constants.LOOKUP_MANAGER_BEAN);
113         Localizable owner = lookupManager.retrieveLocalizable(ownerId);
114
115         if ( owner == null ) {
116             // owner not found - it might has been deleted
117
ActionMessages errors = new ActionMessages();
118             errors.add("ownerNotFound", new ActionMessage("core.menuItem.errors.ownerNotFound"));
119             saveErrors(request, errors);
120             return mapping.findForward("admin");
121         }
122
123         String JavaDoc key = new String JavaDoc();
124         ActionForward forward = null;
125
126         if ( owner instanceof Layout ) {
127             forward = mapping.findForward("viewLayout");
128             key = WebappConstants.LAYOUT_ID_KEY;
129         } else if ( owner instanceof ContentPage ) {
130             forward = mapping.findForward("viewContentPage");
131             key = WebappConstants.CONTENT_PAGE_ID_KEY;
132         } else if ( owner instanceof ActionPage ) {
133             forward = mapping.findForward("viewActionPage");
134             key = WebappConstants.ACTION_PAGE_ID_KEY;
135         }
136
137         request.getSession().setAttribute(key, ownerId);
138
139         // save transaction token in request
140
saveToken(request);
141
142         return forward;
143     }
144 }
Popular Tags