001    /**
002     * Copyright 2005-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package edu.sampleu.demo.kitchensink;
017    
018    import javax.servlet.http.HttpServletRequest;
019    import javax.servlet.http.HttpServletResponse;
020    
021    import org.kuali.rice.krad.datadictionary.validation.ViewAttributeValueReader;
022    import org.kuali.rice.krad.service.DictionaryValidationService;
023    import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
024    import org.kuali.rice.krad.uif.UifParameters;
025    import org.kuali.rice.krad.util.GlobalVariables;
026    import org.kuali.rice.krad.web.controller.UifControllerBase;
027    import org.kuali.rice.krad.web.form.UifFormBase;
028    import org.springframework.stereotype.Controller;
029    import org.springframework.validation.BindingResult;
030    import org.springframework.web.bind.annotation.ModelAttribute;
031    import org.springframework.web.bind.annotation.RequestMapping;
032    import org.springframework.web.bind.annotation.RequestMethod;
033    import org.springframework.web.servlet.ModelAndView;
034    
035    /**
036     * Controller for the Test UI Page
037     *
038     * @author Kuali Rice Team (rice.collab@kuali.org)
039     */
040    @Controller
041    @RequestMapping(value = "/uicomponents")
042    public class UifComponentsTestController extends UifControllerBase {
043    
044    
045    
046        /**
047         * @see org.kuali.rice.krad.web.controller.UifControllerBase#createInitialForm(javax.servlet.http.HttpServletRequest)
048         */
049        @Override
050        protected UifComponentsTestForm createInitialForm(HttpServletRequest request) {
051            return new UifComponentsTestForm();
052        }
053    
054        @Override
055        @RequestMapping(params = "methodToCall=start")
056        public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
057                HttpServletRequest request, HttpServletResponse response) {
058            UifComponentsTestForm uiTestForm = (UifComponentsTestForm) form;
059    
060            return super.start(uiTestForm, result, request, response);
061        }
062    
063        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=save")
064        public ModelAndView save(@ModelAttribute("KualiForm") UifComponentsTestForm uiTestForm, BindingResult result,
065                HttpServletRequest request, HttpServletResponse response) {
066            KRADServiceLocatorWeb.getViewValidationService().validateView(uiTestForm);
067            return getUIFModelAndView(uiTestForm);
068        }
069    
070    
071        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=close")
072        public ModelAndView close(@ModelAttribute("KualiForm") UifComponentsTestForm uiTestForm, BindingResult result,
073                HttpServletRequest request, HttpServletResponse response) {
074    
075            return getUIFModelAndView(uiTestForm, "UifCompView-Page1");
076        }
077    
078        /**
079         * Handles menu navigation between view pages
080         */
081        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=navigate")
082        public ModelAndView navigate(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
083                HttpServletRequest request, HttpServletResponse response) {
084            String pageId = form.getActionParamaterValue(UifParameters.NAVIGATE_TO_PAGE_ID);
085    
086            if (pageId.equals("UifCompView-Page8")) {
087                GlobalVariables.getMessageMap().putError("gField1", "serverTestError");
088                GlobalVariables.getMessageMap().putError("gField1", "serverTestError2");
089                GlobalVariables.getMessageMap().putError("gField2", "serverTestError");
090                GlobalVariables.getMessageMap().putError("gField3", "serverTestError");
091                GlobalVariables.getMessageMap().putWarning("gField1", "serverTestWarning");
092                GlobalVariables.getMessageMap().putWarning("gField2", "serverTestWarning");
093                GlobalVariables.getMessageMap().putInfo("gField2", "serverTestInfo");
094                GlobalVariables.getMessageMap().putInfo("gField3", "serverTestInfo");
095            }
096            // only refreshing page
097            form.setRenderFullView(false);
098    
099            return getUIFModelAndView(form, pageId);
100        }
101    
102        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=refreshProgGroup")
103        public ModelAndView refreshProgGroup(@ModelAttribute("KualiForm") UifComponentsTestForm uiTestForm,
104                BindingResult result, HttpServletRequest request, HttpServletResponse response) {
105    
106            return updateComponent(uiTestForm, result, request, response);
107        }
108    
109        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=refreshWithServerMessages")
110        public ModelAndView refreshWithServerMessages(@ModelAttribute("KualiForm") UifComponentsTestForm uiTestForm,
111                BindingResult result, HttpServletRequest request, HttpServletResponse response) {
112            GlobalVariables.getMessageMap().putError("field45", "serverTestError");
113            GlobalVariables.getMessageMap().putWarning("field45", "serverTestWarning");
114            GlobalVariables.getMessageMap().putInfo("field45", "serverTestInfo");
115            return updateComponent(uiTestForm, result, request, response);
116        }
117    
118        @RequestMapping(method = RequestMethod.POST, params = "methodToCall=genCollectionServerMessages")
119        public ModelAndView genCollectionServerMessages(@ModelAttribute("KualiForm") UifComponentsTestForm uiTestForm,
120                BindingResult result, HttpServletRequest request, HttpServletResponse response) throws Exception {
121            GlobalVariables.getMessageMap().putError("list2[0].field1", "serverTestError");
122            GlobalVariables.getMessageMap().putWarning("list2[0].field1", "serverTestWarning");
123            GlobalVariables.getMessageMap().putInfo("list2[0].field1", "serverTestInfo");
124    
125            GlobalVariables.getMessageMap().putError("list3[0].field1", "serverTestError");
126            GlobalVariables.getMessageMap().putWarning("list3[0].field1", "serverTestWarning");
127            GlobalVariables.getMessageMap().putInfo("list3[0].field1", "serverTestInfo");
128    
129            GlobalVariables.getMessageMap().putError("list5[0].subList[0].field1", "serverTestError");
130            GlobalVariables.getMessageMap().putWarning("list5[0].subList[0].field1", "serverTestWarning");
131            GlobalVariables.getMessageMap().putInfo("list5[0].subList[0].field1", "serverTestInfo");
132            return refresh(uiTestForm, result, request, response);
133        }
134    }