blob: c872a6444fd2b04b1ae00bf05be560a2ad43ed30 [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);
}
}
}