001    /*
002     * Copyright 2011 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 org.kuali.kfs.module.bc.document.web.struts;
017    
018    import java.util.HashMap;
019    import java.util.Map;
020    
021    import org.kuali.kfs.module.bc.BCConstants;
022    import org.kuali.rice.kns.util.ErrorMap;
023    import org.kuali.rice.kns.util.KNSConstants;
024    import org.kuali.rice.kns.util.MessageList;
025    import org.kuali.rice.kns.web.struts.form.KualiForm;
026    
027    /**
028     * Holds properties necessary for expansion screen handling.
029     */
030    public class BudgetExpansionForm extends KualiForm {
031        private String backLocation;
032        private String returnAnchor;
033        private String returnFormKey;
034    
035        // current active budget fiscal year
036        private Integer universityFiscalYear;
037    
038        // form messages
039        private MessageList messages;
040    
041        private MessageList callBackMessages = new MessageList();
042        private ErrorMap callBackErrors = new ErrorMap();
043    
044        private Map<String, String> editingMode;
045        private Map<String, String> documentActions;
046    
047        private boolean lostSession = false;
048        private boolean mainWindow = true;
049    
050        /**
051         * Default Constructor
052         */
053        public BudgetExpansionForm() {
054            super();
055            messages = new MessageList();
056            editingMode = new HashMap<String, String>();
057            documentActions = new HashMap<String, String>();
058        }
059    
060        /**
061         * Gets the backLocation attribute.
062         * 
063         * @return Returns the backLocation.
064         */
065        public String getBackLocation() {
066            return backLocation;
067        }
068    
069        /**
070         * Sets the backLocation attribute value.
071         * 
072         * @param backLocation The backLocation to set.
073         */
074        public void setBackLocation(String backLocation) {
075            this.backLocation = backLocation;
076        }
077    
078        /**
079         * Gets the returnAnchor attribute.
080         * 
081         * @return Returns the returnAnchor.
082         */
083        public String getReturnAnchor() {
084            return returnAnchor;
085        }
086    
087        /**
088         * Sets the returnAnchor attribute value.
089         * 
090         * @param returnAnchor The returnAnchor to set.
091         */
092        public void setReturnAnchor(String returnAnchor) {
093            this.returnAnchor = returnAnchor;
094        }
095    
096        /**
097         * Gets the returnFormKey attribute.
098         * 
099         * @return Returns the returnFormKey.
100         */
101        public String getReturnFormKey() {
102            return returnFormKey;
103        }
104    
105        /**
106         * Sets the returnFormKey attribute value.
107         * 
108         * @param returnFormKey The returnFormKey to set.
109         */
110        public void setReturnFormKey(String returnFormKey) {
111            this.returnFormKey = returnFormKey;
112        }
113    
114        /**
115         * Gets the universityFiscalYear attribute.
116         * 
117         * @return Returns the universityFiscalYear.
118         */
119        public Integer getUniversityFiscalYear() {
120            return universityFiscalYear;
121        }
122    
123        /**
124         * Sets the universityFiscalYear attribute value.
125         * 
126         * @param universityFiscalYear The universityFiscalYear to set.
127         */
128        public void setUniversityFiscalYear(Integer universityFiscalYear) {
129            this.universityFiscalYear = universityFiscalYear;
130        }
131    
132        /**
133         * Gets the messages attribute.
134         * 
135         * @return Returns the messages.
136         */
137        public MessageList getMessages() {
138            return messages;
139        }
140    
141        /**
142         * Sets the messages attribute value.
143         * 
144         * @param messages The messages to set.
145         */
146        public void setMessages(MessageList messages) {
147            this.messages = messages;
148        }
149    
150        /**
151         * Adds a message to the form message list.
152         * 
153         * @param message message to add
154         */
155        public void addMessage(String message) {
156            if (this.messages == null) {
157                messages = new MessageList();
158            }
159    
160            this.messages.add(message);
161        }
162    
163        /**
164         * Gets the callBackMessages attribute.
165         * 
166         * @return Returns the callBackMessages.
167         */
168        public MessageList getCallBackMessages() {
169            return callBackMessages;
170        }
171    
172        /**
173         * Gets the callBackErrors attribute.
174         * 
175         * @return Returns the callBackErrors.
176         */
177        public ErrorMap getCallBackErrors() {
178            return callBackErrors;
179        }
180    
181        /**
182         * Gets the editingMode attribute.
183         * 
184         * @return Returns the editingMode.
185         */
186        public Map<String, String> getEditingMode() {
187            return editingMode;
188        }
189    
190        /**
191         * Sets the editingMode attribute value.
192         * 
193         * @param editingMode The editingMode to set.
194         */
195        public void setEditingMode(Map<String, String> editingMode) {
196            this.editingMode = editingMode;
197        }
198    
199        /**
200         * Gets the documentActions attribute.
201         * 
202         * @return Returns the documentActions.
203         */
204        public Map<String, String> getDocumentActions() {
205            return documentActions;
206        }
207    
208        /**
209         * Sets the documentActions attribute value.
210         * 
211         * @param documentActions The documentActions to set.
212         */
213        public void setDocumentActions(Map<String, String> documentActions) {
214            this.documentActions = documentActions;
215        }
216    
217        /**
218         * Helper method to check edit mode Map for system view only entry
219         */
220        public boolean isSystemViewOnly() {
221            return getEditingMode().containsKey(BCConstants.EditModes.SYSTEM_VIEW_ONLY);
222        }
223    
224        /**
225         * Helper method to check document actions Map for can edit entry
226         */
227        public boolean isEditAllowed() {
228            return getDocumentActions().keySet().contains(KNSConstants.KUALI_ACTION_CAN_EDIT);
229        }
230    
231        /**
232         * Gets the lostSession attribute.
233         * 
234         * @return Returns the lostSession.
235         */
236        public boolean isLostSession() {
237            return lostSession;
238        }
239    
240        /**
241         * Sets the lostSession attribute value.
242         * 
243         * @param lostSession The lostSession to set.
244         */
245        public void setLostSession(boolean lostSession) {
246            this.lostSession = lostSession;
247        }
248    
249        /**
250         * Gets the mainWindow attribute.
251         * 
252         * @return Returns the mainWindow.
253         */
254        public boolean isMainWindow() {
255            return mainWindow;
256        }
257    
258        /**
259         * Sets the mainWindow attribute value.
260         * 
261         * @param mainWindow The mainWindow to set.
262         */
263        public void setMainWindow(boolean mainWindow) {
264            this.mainWindow = mainWindow;
265        }
266    }