blob: d1735482056cf465aa99ed22bdb62e9aea01cbc3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2007 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeCustomizationRegistry;
import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
public class DOMExtensionTreeLabelProvider extends LabelProvider
{
protected static final Image DEFAULT_ELEMENT_ICON = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); //$NON-NLS-1$
protected static final Image DEFAULT_ATTR_ICON = XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); //$NON-NLS-1$
public DOMExtensionTreeLabelProvider()
{
}
public Image getImage(Object element)
{
NodeCustomizationRegistry registry = XSDEditorPlugin.getDefault().getNodeCustomizationRegistry();
if (element instanceof Element)
{
Element domElement = (Element) element;
String namespace = domElement.getNamespaceURI();
if (namespace != null)
{
ILabelProvider lp = registry.getLabelProvider(namespace);
if (lp != null)
{
Image img = lp.getImage(domElement);
if (img != null)
return img;
}
}
return DEFAULT_ELEMENT_ICON;
}
if (element instanceof Attr)
return DEFAULT_ATTR_ICON;
return null;
}
public String getText(Object input)
{
if (input instanceof Element)
{
Element domElement = (Element) input;
String textVal = "";
if (domElement.hasChildNodes())
{
Node node = domElement.getChildNodes().item(0);
if (node instanceof Text)
{
Text textNode = (Text) node;
try
{
if (!textNode.getNodeValue().contains("\n"))
textVal = " [" + textNode.getNodeValue() + "]";
}
catch (DOMException e)
{
textVal = "";
}
}
}
return domElement.getLocalName() + textVal;
}
if ( input instanceof Attr){
return ((Attr) input).getLocalName();
}
return ""; //$NON-NLS-1$
}
}