001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata groupware may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: UploadHTMLForm.java,v $
031: * Revision 1.3 2005/04/10 20:31:58 colinmacleod
032: * Added new themes.
033: * Changed id type to String.
034: * Changed i tag to em and b tag to strong.
035: * Improved PicoContainerFactory with NanoContainer scripts.
036: *
037: * Revision 1.2 2005/04/09 17:19:46 colinmacleod
038: * Changed copyright text to GPL v2 explicitly.
039: *
040: * Revision 1.1.1.1 2005/03/10 17:52:05 colinmacleod
041: * Restructured ivata op around Hibernate/PicoContainer.
042: * Renamed ivata groupware.
043: *
044: * Revision 1.7 2004/12/23 21:01:29 colinmacleod
045: * Updated Struts to v1.2.4.
046: * Changed base classes to use ivata masks.
047: *
048: * Revision 1.6 2004/11/12 18:19:15 colinmacleod
049: * Change action and form classes to extend MaskAction, MaskForm respectively.
050: *
051: * Revision 1.5 2004/07/13 19:47:29 colinmacleod
052: * Moved project to POJOs from EJBs.
053: * Applied PicoContainer to services layer (replacing session EJBs).
054: * Applied Hibernate to persistence layer (replacing entity EJBs).
055: *
056: * Revision 1.4 2004/03/21 21:16:29 colinmacleod
057: * Shortened name to ivata op.
058: *
059: * Revision 1.3 2004/02/10 19:57:24 colinmacleod
060: * Changed email address.
061: *
062: * Revision 1.2 2004/02/01 22:07:31 colinmacleod
063: * Added full names to author tags
064: *
065: * Revision 1.1.1.1 2004/01/27 20:58:42 colinmacleod
066: * Moved ivata openportal to SourceForge..
067: *
068: * Revision 1.2 2003/10/15 14:16:53 colin
069: * fixing for XDoclet
070: *
071: * Revision 1.1 2003/07/08 06:31:33 peter
072: * added to cvs
073: * -----------------------------------------------------------------------------
074: */
075: package com.ivata.groupware.business.library.struts;
076:
077: import javax.servlet.http.HttpServletRequest;
078: import javax.servlet.http.HttpSession;
079:
080: import org.apache.struts.action.ActionErrors;
081: import org.apache.struts.action.ActionMapping;
082: import org.apache.struts.action.ActionMessage;
083: import org.apache.struts.upload.FormFile;
084:
085: import com.ivata.mask.Mask;
086: import com.ivata.mask.validation.ValidationErrors;
087: import com.ivata.mask.web.struts.DialogForm;
088:
089: /**
090: * <p>This form is used to upload a HTML file straight to pages of an editer library documentr.</p>
091: *
092: * @since 2003-07-02
093: * @author Peter Illes
094: * @version $Revision: 1.3 $
095: *
096: */
097: public class UploadHTMLForm extends DialogForm {
098: /**
099: * <p>the uploaded file</p>
100: */
101: private FormFile file;
102: /**
103: * <p>
104: * Defines the base class of all objects in the value object list.
105: * </p>
106: */
107: private Class baseClass;
108: /**
109: * <p>
110: * Mask containing all the field definitions for this list.
111: * </p>
112: */
113: private Mask mask;
114:
115: /**
116: * @see com.ivata.mask.web.struts.MaskForm#clear()
117: */
118: protected void clear() {
119: }
120:
121: /**
122: * <p>getter for the file field</p>
123: * @return the uploaded file as <code>FormFile</code>
124: */
125: public FormFile getFile() {
126: return this .file;
127: }
128:
129: /**
130: * <p>setter for the file field</p>
131: * @param file the uploaded file as <code>FormFile</code>
132: */
133: public void setFile(FormFile file) {
134: this .file = file;
135: }
136:
137: /**
138: * Validate the properties that have been set for this HTTP request,
139: * and return an <code>ActionMessages</code> object that encapsulates any
140: * validation errors that have been found. If no errors are found,
141: * return <code>null</code> or an <code>ActionMessages</code> object with
142: * no recorded error messages.
143: * <p>
144: * The default implementation performs no validation and returns
145: * <code>null</code>. Subclasses must override this method to provide
146: * any validation they wish to perform.
147: *
148: * @param mapping The mapping used to select this instance
149: * @param request The servlet request we are processing
150: */
151: public ActionErrors validate(ActionMapping mapping,
152: HttpServletRequest request) {
153: ActionErrors errors = new ActionErrors();
154:
155: if ((file == null) || (file.getFileSize() == 0)) {
156: errors.add("file", new ActionMessage("errors.nullUpload"));
157: } else if (!file.getContentType().equals("text/HTML")) {
158: errors.add("file", new ActionMessage(
159: "errors.fileContentType", "HTML"));
160: }
161:
162: return errors;
163: }
164:
165: /**
166: * @see com.ivata.mask.web.struts.MaskForm#validate
167: */
168: public ValidationErrors validate(HttpServletRequest request,
169: HttpSession session) {
170: // TODO Auto-generated method stub
171: return null;
172: }
173:
174: /**
175: * <p>
176: * Defines the base class of all objects in the value object list.
177: * </p>
178: *
179: * @return base class of all objects in the value object list.
180: */
181: public final Class getBaseClass() {
182: return baseClass;
183: }
184:
185: /**
186: * <p>
187: * Mask containing all the field definitions for this list.
188: * </p>
189: *
190: * @return mask containing all the field definitions for this list.
191: */
192: public final Mask getMask() {
193: return mask;
194: }
195: }
|