/******************************************************************************* * Copyright (c) 2006 Sybase, Inc. and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http:// www.eclipse.org/legal/epl-v10.html * * Contributors: * Sybase, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.jst.pagedesigner.jsf.ui.converter.jsfhtml; import java.util.ArrayList; import java.util.List; import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; import org.eclipse.jst.pagedesigner.converter.AbstractTagConverter; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * This class is supposed to be common parent class for the different selectMany tags. * * @author mengbo * @version 1.5 * @deprecated Use DTTagConverter meta-data instead */ public abstract class SelectTagConverter extends AbstractTagConverter { /** * @param host */ public SelectTagConverter(Element host) { super(host); } /** * Return a list of SelectItem * * @param parent * @return the select item list for parent */ protected List getSelectItems(Element parent) { List result = new ArrayList(); NodeList nl = parent.getChildNodes(); for (int i = 0, size = nl.getLength(); i < size; i++) { Node child = nl.item(i); if (child instanceof Element) { Element ele = (Element) child; String tagname = ele.getLocalName(); if (IJSFConstants.TAG_SELECTITEM.equalsIgnoreCase(tagname)) { SelectItemModel item = new SelectItemModel(); item.setDescription(ele.getAttribute(IJSFConstants.ATTR_ITEMDESCRIPTION)); item.setLabel(ele.getAttribute(IJSFConstants.ATTR_ITEMLABEL)); item.setItemValue(ele.getAttribute(IJSFConstants.ATTR_ITEMVALUE)); item.setValue(ele.getAttribute(IJSFConstants.ATTR_VALUE)); item.setId(ele.getAttribute(IJSFConstants.ATTR_ID)); item.setDisabled("true".equalsIgnoreCase(ele.getAttribute(IJSFConstants.ATTR_ITEMDISABLED))); //$NON-NLS-1$ result.add(item); } else if (IJSFConstants.TAG_SELECTITEMS.equalsIgnoreCase(tagname)) { // as selectItems can only be resolved at run time, so we just emulate // as if it map to two selectitem String value = ele.getAttribute(IJSFConstants.ATTR_VALUE); if (value == null || value.length() == 0) { value = IJSFConstants.ATTR_VALUE; } SelectItemModel item1 = new SelectItemModel(); item1.setValue(value + "_1"); //$NON-NLS-1$ item1.setId(ele.getAttribute(IJSFConstants.ATTR_ID)); result.add(item1); SelectItemModel item2 = new SelectItemModel(); item2.setValue(value + "_2"); //$NON-NLS-1$ item2.setId(ele.getAttribute(IJSFConstants.ATTR_ID)); result.add(item2); } } } return result; } /** * @param parent * @return the select item model for parent */ public SelectItemModel getDefault(Element parent) { SelectItemModel item = new SelectItemModel(); if (parent.getLocalName().equals(IJSFConstants.TAG_SELECTONERADIO)) { item.setLabel("radio"); //$NON-NLS-1$ } else if (parent.getLocalName().equals(IJSFConstants.TAG_SELECTMANYCHECKBOX)) { item.setLabel("checkBox"); //$NON-NLS-1$ } else { item.setLabel(parent.getLocalName()); } return item; } /* * (non-Javadoc) * * @see org.eclipse.jst.pagedesigner.converter.ITagConverter#isMultiLevel() */ public boolean isMultiLevel() { return true; } /* * (non-Javadoc) * * @see org.eclipse.jst.pagedesigner.converter.ITagConverter#isWidget() */ public boolean isWidget() { return true; } }