001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata masks 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: FieldWriter.java,v $
031: * Revision 1.5 2005/04/09 18:04:17 colinmacleod
032: * Changed copyright text to GPL v2 explicitly.
033: *
034: * Revision 1.4 2005/01/19 12:51:03 colinmacleod
035: * Changed Id --> Name.
036: *
037: * Revision 1.3 2005/01/07 08:08:24 colinmacleod
038: * Moved up a version number.
039: * Changed copyright notices to 2005.
040: * Updated the documentation:
041: * - started working on multiproject:site docu.
042: * - changed the logo.
043: * Added checkstyle and fixed LOADS of style issues.
044: * Added separate thirdparty subproject.
045: * Added struts (in web), util and webgui (in webtheme) from ivata op.
046: *
047: * Revision 1.2 2004/11/11 13:44:04 colinmacleod
048: * Added HTMLFormatter.
049: *
050: * Revision 1.1.1.1 2004/05/16 20:40:32 colinmacleod
051: * Ready for 0.1 release
052: * -----------------------------------------------------------------------------
053: */
054: package com.ivata.mask.web.field;
055:
056: import javax.servlet.jsp.PageContext;
057: import com.ivata.mask.valueobject.ValueObject;
058:
059: /**
060: * <p>
061: * Each field writer is responsble for writing out a single field value, given
062: * the value object.
063: * </p>
064: *
065: * @since ivata masks 0.4 (2004-05-14)
066: * @author Colin MacLeod
067: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
068: * @version $Revision: 1.5 $
069: */
070: public interface FieldWriter {
071: /**
072: * Clear an attribute on the field tag. It will no longer appear at all.
073: *
074: * @param name name of the attribute to clear.
075: */
076: void removeAttribute(String name);
077:
078: /**
079: * Set an attribute on the field tag.
080: *
081: * @param name name of the attribute to set.
082: * @param value new value to set the attribute to.
083: */
084: void setAttribute(String name, String value);
085:
086: /**
087: * <p>
088: * Write out the appropriate field value, for the value object provided.
089: * </p>
090: *
091: * @param pageContext
092: * current tag page context to write with.
093: * @param valueObject
094: * value object whose field value should be displayed.
095: * @param displayOnly
096: * if <code>true</code>, only the field value should be shown,
097: * otherwise an input field is displayed.
098: * @return appropriate representation of the field value in
099: * <code>HTML</code>.
100: */
101: String write(PageContext pageContext, ValueObject valueObject,
102: boolean displayOnly);
103: }
|