blob: 99fa2a9d8dc1afb91ff29c158d3824b5393a1f40 [file] [log] [blame]
/*******************************************************************************
* 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$
}
}