/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.viewsupport; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.model.WorkbenchLabelProvider; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.core.workspace.ModelUtil; import org.teiid.designer.core.workspace.ModelWorkspaceException; import org.teiid.designer.ui.PluginConstants; import org.teiid.designer.ui.UiPlugin; /** * ModelLabelProvider * * @since 8.0 */ public class ModelLabelProvider extends LabelProvider implements PluginConstants.Images { private ILabelProvider workbenchProvider = new WorkbenchLabelProvider(); private boolean fullpath = false; public ModelLabelProvider() { super(); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ @Override public Image getImage(Object element) { if ( element instanceof IFile && ModelUtilities.isModelFile((IFile) element) ) { ModelResource modelResource; try { modelResource = ModelUtil.getModelResource((IFile)element, false); if ( modelResource == null ) { return workbenchProvider.getImage(element); } Image image = ModelIdentifier.getModelImage(modelResource); if( image != null ) { return image; } return UiPlugin.getDefault().getImage(MODEL); } catch (ModelWorkspaceException e) { e.printStackTrace(); } } return workbenchProvider.getImage(element); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ @Override public String getText(Object element) { if ( fullpath ) { if ( element instanceof IResource ) { return ((IResource) element).getFullPath().makeRelative().toString(); } } else { if ( element instanceof IResource ) { return ((IResource) element).getName(); } } return super.getText(element); } /** * sets the text to display the full path of the file; default is just the name. */ public void setFullpath(boolean showPath) { fullpath = showPath; } }