1 19 20 package com.sslexplorer.applications.wizards.actions; 21 22 import java.util.ArrayList ; 23 import java.util.HashMap ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import java.util.Map ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 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 60 public class ApplicationShortcutWizardFinishAction extends AbstractFinishWizardAction { 61 final static Log log = LogFactory.getLog(ApplicationShortcutWizardFinishAction.class); 62 63 66 public ApplicationShortcutWizardFinishAction() { 67 super(); 68 } 69 70 78 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 79 return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 80 } 81 82 90 public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, 91 HttpServletResponse response) throws Exception { 92 List actionStatus = new ArrayList (); 93 AbstractWizardSequence seq = getWizardSequence(request); 94 String application = (String ) seq.getAttribute(ApplicationShortcutWizardApplicationForm.ATTR_SELECTED_APPLICATION, null); 95 String name = (String ) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_RESOURCE_NAME, null); 96 String description = (String ) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_RESOURCE_DESCRIPTION, null); 97 boolean favorite = ((Boolean ) seq.getAttribute(ApplicationShortcutWizardDetailsForm.ATTR_FAVORITE, Boolean.FALSE)) 98 .booleanValue(); 99 List parameterItems = ((List ) seq.getAttribute(ApplicationShortcutWizardAdditionalDetailsForm.ATTR_PARAMETERS, null)); 100 Map parameterMap = new HashMap (); 101 for (Iterator 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 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 139 public ActionForward exit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 140 throws Exception { 141 return cancel(mapping, form, request, response); 142 } 143 144 152 protected AbstractWizardSequence createWizardSequence(ActionMapping mapping, ActionForm form, HttpServletRequest request, 153 HttpServletResponse response) throws Exception { 154 throw new Exception ("Cannot create sequence on this page."); 155 } 156 157 } 158 | Popular Tags |