/******************************************************************************* * 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.core.dom; import java.util.ArrayList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.eclipse.jst.jsf.core.internal.tld.CMUtil; import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants; /** * @author mengbo * @version 1.5 */ public class JSFDOMUtil { /** * @param parentEle * @param name * @return the facet element or null if not found */ public static Element findFacet(Element parentEle, String name) { NodeList childnodes = parentEle.getChildNodes(); for (int i=0, size=childnodes.getLength(); i<size; i++) { Node node = childnodes.item(i); if (node.getNodeType() == Node.ELEMENT_NODE && JSFDOMUtil.isFacet((Element)node)) { Element ele = (Element) node; if (name.equals(ele.getAttribute("name"))) //$NON-NLS-1$ { return ele; } } } return null; } /** * @param node * @return true if node is a JSF column */ public static boolean isHColumn(Node node) { if (node instanceof Element) { Element ele = (Element) node; if ("column".equalsIgnoreCase(ele.getLocalName()) && ITLDConstants.URI_JSF_HTML.equals(CMUtil.getElementNamespaceURI(ele))) //$NON-NLS-1$ { return true; } } return false; } /** * @param panelGridEle * @return the list of UI component children */ public static List getUIComponentChildren(Element panelGridEle) { // XXX: temp implementation. Later may move this out to be shared. // currently just returning all children Element. Need to filter out things like non JSF UI component List list = new ArrayList(); NodeList childnodes = panelGridEle.getChildNodes(); for (int i=0, size=childnodes.getLength(); i<size; i++) { Node node = childnodes.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { if (JSFDOMUtil.isFacet((Element) node)) { continue; } list.add(node); } } return list; } /** * @param ele * @return true if ele is a facet */ public static boolean isFacet(Element ele) { // XXX: here we are not checking namespace! for error tolerant. return "facet".equals(ele.getLocalName()); //$NON-NLS-1$ } /** * @param ele * @return true if the local name of ele is "param" */ public static boolean isUIParameter(Element ele) { return "param".equals(ele.getLocalName()); //$NON-NLS-1$ } }