001: /*
002: * Created on Mar 2, 2005
003: */
004: package com.sun.portal.wireless.htmlconversion.processors;
005:
006: import java.util.HashMap;
007:
008: import org.w3c.dom.Element;
009:
010: import com.sun.portal.wireless.htmlconversion.ParserState;
011:
012: /**
013: * Tag processor for AmlChoice tag
014: *
015: * @author ashwin.mathew@sun.com
016: */
017: public class AmlChoiceTagProcessor extends BaseTagProcessor {
018:
019: public static final String AML_CHOICE = "AmlChoice";
020:
021: // Attributes for AmlChoice
022: public static final String ATTR_NAME = "name";
023: public static final String ATTR_MODE = "mode";
024: public static final String ATTR_VIEW = "view";
025: public static final String ATTR_VALUE = "value";
026:
027: // Values for the mode attribute
028: public static final String VAL_MODE_SINGLE = "single";
029: public static final String VAL_MODE_MULTIPLE = "multiple";
030:
031: // Values for the view attribute
032: public static final String VAL_VIEW_SHOW = "show";
033: public static final String VAL_VIEW_HIDDEN = "hidden";
034: public static final String VAL_VIEW_NONE = "none";
035:
036: // Attributes for the HTML select tag
037: public static final String SELECT_ATTR_NAME = "name";
038: public static final String SELECT_ATTR_MULTIPLE = "multiple";
039: public static final String SELECT_ATTR_DISABLED = "disabled";
040:
041: private static final String[] supportedTags = { "select" };
042:
043: /* (non-Javadoc)
044: * @see com.sun.portal.wireless.htmlconversion.TagProcessor#getAmlTag()
045: */
046: public String getAmlTag() {
047: return AML_CHOICE;
048: }
049:
050: /* (non-Javadoc)
051: * @see com.sun.portal.wireless.htmlconversion.TagProcessor#getSupportedTags()
052: */
053: public String[] getSupportedTags() {
054: return supportedTags;
055: }
056:
057: /* (non-Javadoc)
058: * @see com.sun.portal.wireless.htmlconversion.TagProcessor#canHaveChildren(com.sun.portal.wireless.htmlconversion.ParserState)
059: */
060: public boolean canHaveChildren(ParserState state) {
061: return true;
062: }
063:
064: /* (non-Javadoc)
065: * @see com.sun.portal.wireless.htmlconversion.TagProcessor#startTag(java.lang.String, java.util.HashMap, com.sun.portal.wireless.htmlconversion.ParserState)
066: */
067: public Element startTag(String tagName, HashMap attributes,
068: ParserState state) {
069: Element amlChoice = state.newElement(AML_CHOICE);
070:
071: String name = (String) attributes.get(SELECT_ATTR_NAME);
072: boolean isMultiple = attributes.keySet().contains(
073: SELECT_ATTR_MULTIPLE);
074: boolean isHidden = attributes.keySet().contains(
075: SELECT_ATTR_DISABLED);
076:
077: return createAmlChoice(name, isMultiple, isHidden, state);
078: }
079:
080: /**
081: * Creates a new AmlChoice element.
082: *
083: * @param name
084: * @param isMultiple
085: * @param isHidden
086: * @param state
087: * @return
088: */
089: public static Element createAmlChoice(String name,
090: boolean isMultiple, boolean isHidden, ParserState state) {
091: Element amlChoice = state.newElement(AML_CHOICE);
092:
093: amlChoice.setAttribute(ATTR_NAME, name);
094:
095: if (isMultiple) {
096: amlChoice.setAttribute(ATTR_MODE, VAL_MODE_MULTIPLE);
097: }
098:
099: if (isHidden) {
100: amlChoice.setAttribute(ATTR_VIEW, VAL_VIEW_HIDDEN);
101: }
102:
103: return amlChoice;
104: }
105:
106: }
|