blob: c7b1120c7eb82763ab7b36198ebdf747eef10647 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 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.wsdl.ui.internal.xsd;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
import org.eclipse.wst.xsd.ui.internal.provider.XSDAdapterFactoryLabelProvider;
import org.eclipse.xsd.XSDSchema;
/**
* This version of the XSDLabelProvider is a modified version of the one in XSDEditor.
* This provider only needs to handle nodes in the XML Schema namespace.
* Other XML nodes (including comments, PIs etc) get handled by the 'main' provider.
*/
public class XSDLabelProvider extends LabelProvider
{
XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider;
private static final Class ILabelProviderClass = ILabelProvider.class;
/**
* Constructor for XSDLabelProvider.
*/
public XSDLabelProvider(XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider)
{
super();
this.adapterFactoryLabelProvider = adapterFactoryLabelProvider;
}
/*
* @see ILabelProvider#getImage(Object)
*/
public Image getImage(Object element)
{
if (element instanceof XSDSchemaExtensibilityElement)
{
element = ((XSDSchemaExtensibilityElement)element).getSchema().getElement();
}
return adapterFactoryLabelProvider.getImage(element);
}
/*
* @see ILabelProvider#getText(Object)
*/
public String getText(Object element)
{
// override text for xsd schema
if (element instanceof XSDSchema)
{
return ((XSDSchema)element).getTargetNamespace();
}
else
{
// We don't call "adapterFactoryLabelProvider.getText(element)" because it will return a object.toString() if
// there is no labelProvider.... but we don't want to display this 'garbage' info to the user.
AdapterFactory adapterFactory = adapterFactoryLabelProvider.getAdapterFactory();
ILabelProvider labelProvider = (ILabelProvider)adapterFactory.adapt(element, ILabelProviderClass);
String text = "";
if (labelProvider != null) {
text = labelProvider.getText(element);
}
return text;
}
}
}