| /******************************************************************************* |
| * 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); |
| } |
| } |