package org.eclipse.xtext.example.fowlerdsl.diagram.properties; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.eef.runtime.ui.utils.EEFLabelProvider; import org.eclipse.jface.viewers.IStructuredSelection; public class FowlerDslLabelProvider extends EEFLabelProvider { public String getText(Object element) { String text = null; Object semanticObject = unwrap(element); if (semanticObject != null) { text = super.getText(semanticObject); } else { text = super.getText(element); } return text; } private Object unwrap(Object element) { Object resolvedObject = null; if (element instanceof IStructuredSelection) { resolvedObject = ((IStructuredSelection) element).getFirstElement(); } if (element instanceof IAdaptable) { EObject eObject = (EObject) ((IAdaptable) element) .getAdapter(EObject.class); if (eObject != null) { return eObject; } } if (resolvedObject != null) { return FowlerDslPropertiesEditionPartFormUtils .resolveSemanticObject(resolvedObject, new FowlerDslElementFilter()); } return element; } }