blob: 2fa9c638e1de37054a0660b80a9ae1102316107c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005-2007 Orangevolt (www.orangevolt.com)
* 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:
* Orangevolt (www.orangevolt.com) - XSLT support
* Jesper Steen Moller - refactored Orangevolt XSLT support into WST
*
*******************************************************************************/
package org.eclipse.wst.xml.xpath.ui.views;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.Entity;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
public class DOMNodeLabelProvider extends LabelProvider
{
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
*/
public String getText(Object element)
{
if( element instanceof Document)
{
return element.toString();
}
else if( element instanceof Element)
{
StringBuffer sb = new StringBuffer( ((Element)element).getTagName());
NamedNodeMap attrs = ((Element)element).getAttributes();
if( attrs.getLength()>0)
{
sb.append( "("); //$NON-NLS-1$
for (int i = 0; i < attrs.getLength(); i++)
{
Attr attr = (Attr)attrs.item( i);
sb.append( '@').append( attr.getName()).append( "=\"").append( attr.getValue()).append( '\"'); //$NON-NLS-1$
if( i<attrs.getLength()-1)
{
sb.append( ' ');
}
}
sb.append( ")"); //$NON-NLS-1$
}
return sb.toString();
}
else if( element instanceof Comment)
{
return element.toString();
}
else if( element instanceof Attr)
{
Attr attr = (Attr)element;
return "@" + attr.getName() + "=\"" + attr.getValue() + "\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
else if( element instanceof CDATASection)
{
return element.toString();
}
else if( element instanceof Entity)
{
return element.toString();
}
else if( element instanceof ProcessingInstruction)
{
return element.toString();
}
else if( element instanceof DocumentType)
{
return element.toString();
}
else if( element instanceof Text)
{
return ((Text)element).getData();
}
else
return element.toString();
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
*/
public Image getImage(Object element)
{
if( element instanceof Document)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
}
else if( element instanceof Element)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_ELEMENT);
}
else if( element instanceof Comment)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_COMMENT);
}
else if( element instanceof CDATASection)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_CDATASECTION);
}
else if( element instanceof Entity)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_ENTITY);
}
else if( element instanceof ProcessingInstruction)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_PROCESSINGINSTRUCTION);
}
else if( element instanceof DocumentType)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_DOCTYPE);
}
else if( element instanceof Attr)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
}
else if( element instanceof Text)
{
return XMLEditorPluginImageHelper.getInstance().getImage( XMLEditorPluginImages.IMG_OBJ_TXTEXT);
}
else
return super.getImage(element);
}
}