Java tutorial
/** * Copyright 2012 The Kuali Foundation Licensed under the * Educational Community License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may * obtain a copy of the License at * * http://www.osedu.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an "AS IS" * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing * permissions and limitations under the License. * * Created by bobhurt on 12/5/12 */ package org.kuali.student.common.uif.util; import org.apache.commons.lang.StringUtils; import org.kuali.rice.krad.uif.UifConstants; import org.kuali.rice.krad.util.GlobalVariables; import org.kuali.rice.krad.util.GrowlMessage; import org.kuali.student.common.uif.form.KSUifForm; import org.kuali.student.common.uif.form.KSUifMaintenanceDocumentForm; import org.springframework.beans.factory.config.TypedStringValue; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; /** * This class contains static utility methods related to Uif (KRAD) * * @author Kuali Student Team */ public class KSUifUtils { //test public static final String KS_GROWL_INFORMATION = "information"; //Map keys for params of customized breadcrumb generation of multiple views private static final String BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY = "previousControllerPath"; private static final String BREADCRUMB_PREVIOUS_VIEW_ID_KEY = "previousViewId"; private static final String BREADCRUMB_PREVIOUS_HOME_URL_KEY = "previousHomeUrl"; private static final String BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY = "previousFormHistory"; private static final String BREADCRUMB_PREVIOUS_FORMKEY_KEY = "previousFormKey"; public static void addGrowlMessageIcon(GrowlIcon growlIcon, String messageKey, String... messageParameters) { GrowlMessage growlMessage = new GrowlMessage(); growlMessage.setTitle(""); growlMessage.setMessageKey(messageKey); growlMessage.setMessageParameters(messageParameters); /* //test switch( growlIcon ) { case ERROR: growlMessage.setTheme("error"); break; case INFORMATION: growlMessage.setTheme("information"); break; case SUCCESS: growlMessage.setTheme("success"); break; case WARNING: growlMessage.setTheme("warning"); break; }*/ growlMessage.setTheme(growlIcon.name()); GlobalVariables.getMessageMap().addGrowlMessage(growlMessage); } /** * Populate the KSUifForm.previousFormsMap which holds information of the previous view where a user is * directed from in a multiple views senario. The map will be used to generate the customized breadcrumb. * * @param request - instance of HttpServletRequest * @param form - any form that extends KSUifForm * @deprecated Old breadcrumbs are no longer used since Rice 2.3 upgrade * */ public static <T extends KSUifForm> void populationPreviousFormsMap(HttpServletRequest request, T form) { /* if (request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY)!=null || request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY)!=null || request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY)!=null || request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY)!=null || request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY)!=null) { Map<String, Map<String, String>> previousFormsMap = new HashMap<String, Map<String, String>>(); Map<String, String> tempFormMap = new HashMap<String, String>(); if (request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY)!=null && !request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY, request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY)!=null && !request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_VIEW_ID_KEY, request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY)!=null && !request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_HOME_URL_KEY, request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY)); form.setHomeUrl(request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY)!=null && !request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY, request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY)!=null && !request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_FORMKEY_KEY, request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY)); } previousFormsMap.put(request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY), tempFormMap); form.setPreviousFormsMap(previousFormsMap); } */ } /** * Populate the KSUifMaintenanceDocumentForm.previousFormsMap which holds information of the previous view where a user is * directed from in a multiple views senario. The map will be used to generate the customized breadcrumb. * * @param request - instance of HttpServletRequest * @param form - any form that extends KSUifMaintenanceDocumentForm * */ public static <T extends KSUifMaintenanceDocumentForm> void populationPreviousFormsMap( HttpServletRequest request, T form) { if (request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY) != null || request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY) != null || request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY) != null || request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY) != null || request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY) != null) { Map<String, Map<String, String>> previousFormsMap = new HashMap<String, Map<String, String>>(); Map<String, String> tempFormMap = new HashMap<String, String>(); if (request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY) != null && !request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY, request.getParameter(BREADCRUMB_PREVIOUS_CONTROLLER_PATH_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY) != null && !request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_VIEW_ID_KEY, request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY) != null && !request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_HOME_URL_KEY, request.getParameter(BREADCRUMB_PREVIOUS_HOME_URL_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY) != null && !request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY, request.getParameter(BREADCRUMB_PREVIOUS_FORM_HISTORY_KEY)); } if (request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY) != null && !request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY).isEmpty()) { tempFormMap.put(BREADCRUMB_PREVIOUS_FORMKEY_KEY, request.getParameter(BREADCRUMB_PREVIOUS_FORMKEY_KEY)); } previousFormsMap.put(request.getParameter(BREADCRUMB_PREVIOUS_VIEW_ID_KEY), tempFormMap); } } /** * Checks whether the given property value is of String type, and if so whether it contains the expression * placholder(s) * * @param propertyValue - value to check for expressions * @return boolean true if the property value contains expression(s), false if it does not */ public static boolean hasExpression(Object propertyValue) { if (propertyValue != null) { // if value is string, check for el expression String strValue = getStringValue(propertyValue); if (strValue != null) { String elPlaceholder = StringUtils.substringBetween(strValue, UifConstants.EL_PLACEHOLDER_PREFIX, UifConstants.EL_PLACEHOLDER_SUFFIX); if (StringUtils.isNotBlank(elPlaceholder)) { return true; } } } return false; } /** * Determines whether the given value is of String type and if so returns the string value * * @param value - object value to check * @return String string value for object or null if object is not a string type */ protected static String getStringValue(Object value) { if (value instanceof TypedStringValue) { TypedStringValue typedStringValue = (TypedStringValue) value; return typedStringValue.getValue(); } else if (value instanceof String) { return (String) value; } return null; } public static Messenger getMessengerFromUserSession() { Messenger messenger = (Messenger) GlobalVariables.getUserSession() .retrieveObject(KSGrowlMessenger.MESSENGER_KEY); if (messenger == null) { messenger = new KSGrowlMessenger(); GlobalVariables.getUserSession().addObject(KSGrowlMessenger.MESSENGER_KEY, messenger); } return messenger; } }