001: /*
002: * ====================================================================
003: * JAFFA - Java Application Framework For All
004: *
005: * Copyright (C) 2002 JAFFA Development Group
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation; either
010: * version 2.1 of the License, or (at your option) any later version.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this library; if not, write to the Free Software
019: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: *
021: * Redistribution and use of this software and associated documentation ("Software"),
022: * with or without modification, are permitted provided that the following conditions are met:
023: * 1. Redistributions of source code must retain copyright statements and notices.
024: * Redistributions must also contain a copy of this document.
025: * 2. Redistributions in binary form must reproduce the above copyright notice,
026: * this list of conditions and the following disclaimer in the documentation
027: * and/or other materials provided with the distribution.
028: * 3. The name "JAFFA" must not be used to endorse or promote products derived from
029: * this Software without prior written permission. For written permission,
030: * please contact mail to: jaffagroup@yahoo.com.
031: * 4. Products derived from this Software may not be called "JAFFA" nor may "JAFFA"
032: * appear in their names without prior written permission.
033: * 5. Due credit should be given to the JAFFA Project (http://jaffa.sourceforge.net).
034: *
035: * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
036: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
037: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
038: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
039: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
040: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
041: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
042: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
043: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
044: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
045: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
046: * SUCH DAMAGE.
047: * ====================================================================
048: */
049:
050: package org.jaffa.components.maint;
051:
052: import java.util.*;
053: import org.apache.log4j.Logger;
054: import org.jaffa.presentation.portlet.FormBase;
055: import javax.servlet.http.HttpServletRequest;
056:
057: /** This is the base class for all Maintenance Component FormBeans.
058: *
059: * @author GautamJ
060: */
061: public class MaintForm extends FormBase {
062:
063: private static final Logger log = Logger.getLogger(MaintForm.class);
064:
065: /** Constant for the parameter currentScreenCounter.*/
066: public static final String PARAMETER_CURRENT_SCREEN_COUNTER = "currentScreenCounter";
067:
068: /** Is this update mode, if so the key is display only, else this is create mode and the key is editable.
069: * @return true if record is being updated, false if created.
070: */
071: public boolean isUpdateMode() {
072: return ((MaintComponent2) getComponent()).isUpdateMode();
073: }
074:
075: /** Getter for property currentScreenCounter.
076: * @return Value of property currentScreenCounter.
077: */
078: public int getCurrentScreenCounter() {
079: return ((MaintComponent2) getComponent())
080: .getCurrentScreenCounter();
081: }
082:
083: /** Setter for property currentScreenCounter.
084: * @param currentScreenCounter New value of property currentScreenCounter.
085: */
086: public void setCurrentScreenCounter(int currentScreenCounter) {
087: ((MaintComponent2) getComponent())
088: .setCurrentScreenCounter(currentScreenCounter);
089: }
090:
091: /** Returns a true if a field has been marked as 'DisplayOnly'.
092: * @param fieldName The field to be checked.
093: * @return a true if a field has been marked as 'DisplayOnly'
094: */
095: public boolean isDisplayOnlyField(String fieldName) {
096: return ((MaintComponent2) getComponent())
097: .isDisplayOnlyField(fieldName);
098: }
099:
100: /** Returns true if Clear is allowed in the current screen.
101: * @return true if Clear is allowed in the current screen.
102: */
103: public boolean isClearActionAvailable() {
104: return ((MaintComponent2) getComponent()).isCreateMode();
105: }
106:
107: /** Returns true if Save is allowed in the current screen.
108: * @return true if Save is allowed in the current screen.
109: */
110: public boolean isSaveActionAvailable() {
111: // Save action is not allowed in the following cases
112: // 1- If refreshData is set to true
113: // 2- If the SaveAction is not allowed in a screen in create-mode
114: MaintComponent2 comp = (MaintComponent2) getComponent();
115: return comp.isRefreshData()
116: || (comp.isCreateMode() && !comp
117: .determineCurrentScreen()
118: .isSaveActionAvailableInCreateMode()) ? false
119: : true;
120: }
121:
122: /** Returns true if Delete is allowed in the current screen.
123: * @return true if Delete is allowed in the current screen.
124: */
125: public boolean isDeleteActionAvailable() {
126: MaintComponent2 comp = (MaintComponent2) getComponent();
127: return comp.isUpdateMode() && !comp.isRefreshData() ? true
128: : false;
129: }
130:
131: /** Returns true if Refresh is allowed in the current screen.
132: * @return true if Refresh is allowed in the current screen.
133: */
134: public boolean isRefreshActionAvailable() {
135: MaintComponent2 comp = (MaintComponent2) getComponent();
136: return comp.isUpdateMode() && comp.isRefreshData() ? true
137: : false;
138: }
139:
140: /** Returns true if there is a Next screen after the current screen.
141: * @return true if there is a Next screen after the current screen.
142: */
143: public boolean isNextActionAvailable() {
144: return ((MaintComponent2) getComponent()).determineNextScreen() != null ? true
145: : false;
146: }
147:
148: /** Returns true if there is a Previous screen before the current screen.
149: * @return true if there is a Previous screen before the current screen.
150: */
151: public boolean isPreviousActionAvailable() {
152: return ((MaintComponent2) getComponent())
153: .determinePreviousScreen() != null ? true : false;
154: }
155:
156: /** This method should be invoked to ensure a valid state of the FormBean. It will validate the data in the models and set the corresponding properties.
157: * Errors will be raised in the FormBean, if any validation fails.
158: * @param request The request stream
159: * @return A true indicates validations went through successfully.
160: */
161: public boolean doValidate(HttpServletRequest request) {
162: return true;
163: }
164:
165: }
|