KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > applications > wizards > actions > ApplicationShortcutWizardFinishAction


1 /*
2  * SSL-Explorer
3  *
4  * Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */

19             
20 package com.sslexplorer.applications.wizards.actions;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.HashMap JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.List JavaDoc;
26 import java.util.Map JavaDoc;
27
28 import javax.servlet.http.HttpServletRequest JavaDoc;
29 import javax.servlet.http.HttpServletResponse JavaDoc;
30
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.apache.struts.action.ActionForm;
34 import org.apache.struts.action.ActionForward;
35 import org.apache.struts.action.ActionMapping;
36
37 import com.sslexplorer.applications.ApplicationShortcut;
38 import com.sslexplorer.applications.ApplicationShortcutChangeEvent;
39 import com.sslexplorer.applications.ApplicationShortcutDatabaseFactory;
40 import com.sslexplorer.applications.ApplicationShortcutEventConstants;
41 import com.sslexplorer.applications.wizards.forms.ApplicationShortcutWizardAdditionalDetailsForm;
42 import com.sslexplorer.applications.wizards.forms.ApplicationShortcutWizardApplicationForm;
43 import com.sslexplorer.applications.wizards.forms.ApplicationShortcutWizardDetailsForm;
44 import com.sslexplorer.core.CoreEvent;
45 import com.sslexplorer.core.CoreServlet;
46 import com.sslexplorer.extensions.ShortcutParameterItem;
47 import com.sslexplorer.security.SessionInfo;
48 import com.sslexplorer.wizard.AbstractWizardSequence;
49 import com.sslexplorer.wizard.WizardActionStatus;
50 import com.sslexplorer.wizard.actions.AbstractFinishWizardAction;
51 import com.sslexplorer.wizard.forms.AbstractWizardFinishForm;
52
53 /**
54  * Implementation of
55  * {@link com.sslexplorer.wizard.actions.AbstractFinishWizardAction} that allows
56  * an adminstrator to finish the <i>Application Shortcut</i> creation wizard.
57  *
58  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
59  */

60 public class ApplicationShortcutWizardFinishAction extends AbstractFinishWizardAction {
61     final static Log log = LogFactory.getLog(ApplicationShortcutWizardFinishAction.class);
62
63     /**
64      * Constructor.
65      */

66     public ApplicationShortcutWizardFinishAction() {
67         super();
68     }
69
70     /*
71      * (non-Javadoc)
72      *
73      * @see com.sslexplorer.core.actions.CoreAction#getNavigationContext(org.apache.struts.action.ActionMapping,
74      * org.apache.struts.action.ActionForm,
75      * javax.servlet.http.HttpServletRequest,
76      * javax.servlet.http.HttpServletResponse)
77      */

78     public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
79         return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT;
80     }
81
82     /*
83      * (non-Javadoc)
84      *
85      * @see org.apache.struts.actions.DispatchAction#unspecified(org.apache.struts.action.ActionMapping,
86      * org.apache.struts.action.ActionForm,
87      * javax.servlet.http.HttpServletRequest,
88      * javax.servlet.http.HttpServletResponse)
89      */

90     public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
91                                      HttpServletResponse JavaDoc response) throws Exception JavaDoc {
92         List JavaDoc actionStatus = new ArrayList JavaDoc();
93         AbstractWizardSequence seq = getWizardSequence(request);
94         String JavaDoc application = (String JavaDoc) seq.getAttribute(ApplicationShortcutWizardApplicationForm.ATTR_SELECTED_APPLICATION, null);
95         String JavaDoc name = (String JavaDoc) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_RESOURCE_NAME, null);
96         String JavaDoc description = (String JavaDoc) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_RESOURCE_DESCRIPTION, null);
97         boolean favorite = ((Boolean JavaDoc) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_FAVORITE, Boolean.FALSE))
98                         .booleanValue();
99         List JavaDoc parameterItems = ((List JavaDoc) seq.getAttribute(ApplicationShortcutWizardAdditionalDetailsForm.ATTR_PARAMETERS, null));
100         Map JavaDoc parameterMap = new HashMap JavaDoc();
101         for (Iterator JavaDoc i = parameterItems.iterator(); i.hasNext();) {
102             ShortcutParameterItem pi = (ShortcutParameterItem) i.next();
103             parameterMap.put(pi.getName(), pi.getPropertyValue().toString());
104         }
105         ApplicationShortcut shortcut = null;
106         try {
107             int shortcutId = ApplicationShortcutDatabaseFactory.getInstance().createApplicationShortcut(application, name, description,
108                             parameterMap, getSessionInfo(request).getRealmId());
109             shortcut = ApplicationShortcutDatabaseFactory.getInstance().getShortcut(shortcutId);
110             actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_OK,
111                             "applicationShortcutWizard.applicationShortcutFinish.status.applicationShortcutCreated"));
112             CoreServlet.getServlet().fireCoreEvent(
113                 new ApplicationShortcutChangeEvent(this, ApplicationShortcutEventConstants.CREATE_APPLICATION_SHORTCUT, shortcut,
114                                 getSessionInfo(request), CoreEvent.STATE_SUCCESSFUL));
115         } catch (Exception JavaDoc e) {
116             log.error("Failed to create application shortcut.", e);
117             actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_WITH_ERRORS,
118                             "applicationShortcutWizard.applicationShortcutFinish.status.failedToCreateApplicationShortcut", e
119                                             .getMessage()));
120             CoreServlet.getServlet().fireCoreEvent(
121                 new ApplicationShortcutChangeEvent(this, ApplicationShortcutEventConstants.CREATE_APPLICATION_SHORTCUT, getSessionInfo(request), e));
122         }
123         if (shortcut != null) {
124             actionStatus.add(attachToPoliciesAndAddToFavorites("applicationShortcutWizard.applicationShortcutFinish", seq,
125                 shortcut, favorite, request));
126         }
127         ((AbstractWizardFinishForm) form).setActionStatus(actionStatus);
128         return super.unspecified(mapping, form, request, response);
129     }
130
131     /*
132      * (non-Javadoc)
133      *
134      * @see com.sslexplorer.wizard.actions.AbstractFinishWizardAction#exit(org.apache.struts.action.ActionMapping,
135      * org.apache.struts.action.ActionForm,
136      * javax.servlet.http.HttpServletRequest,
137      * javax.servlet.http.HttpServletResponse)
138      */

139     public ActionForward exit(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
140                     throws Exception JavaDoc {
141         return cancel(mapping, form, request, response);
142     }
143
144     /*
145      * (non-Javadoc)
146      *
147      * @see com.sslexplorer.wizard.actions.AbstractWizardAction#createWizardSequence(org.apache.struts.action.ActionMapping,
148      * org.apache.struts.action.ActionForm,
149      * javax.servlet.http.HttpServletRequest,
150      * javax.servlet.http.HttpServletResponse)
151      */

152     protected AbstractWizardSequence createWizardSequence(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
153                                                           HttpServletResponse JavaDoc response) throws Exception JavaDoc {
154         throw new Exception JavaDoc("Cannot create sequence on this page.");
155     }
156
157 }
158
Popular Tags