/** * Copyright (c) 2011-2012 Eclipse contributors 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 */ package org.eclipse.emf.ecore.xcore.ui.labeling; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameProvider; import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.xbase.XBlockExpression; import org.eclipse.xtext.xbase.ui.labeling.XbaseLabelProvider; import com.google.inject.Inject; /** * Provides labels for a EObjects. * * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider */ public class XcoreLabelProvider extends XbaseLabelProvider { @Inject private IQualifiedNameProvider nameProvider; @Inject private IQualifiedNameConverter nameConverter; @Inject public XcoreLabelProvider(AdapterFactoryLabelProvider delegate) { super(delegate); } @Override protected EStructuralFeature getLabelFeature(EClass eClass) { // Force to use of the item providers. // return null; } @Override public String getText(Object element) { String result = super.getText(element); if (result == null && element instanceof EObject) { QualifiedName name = nameProvider.getFullyQualifiedName((EObject)element); if (name != null) { return nameConverter.toString(name); } else { return getDefaultText(); } } return result; } @Override protected Object doGetText(Object element) { return super.doGetText(element); } String text(XBlockExpression xBlockExpression) { String role = xBlockExpression.eContainmentFeature().getName(); return role.substring(0, role.length() - 4) + " {}"; } /* //Labels and icons can be computed like this: String text(MyModel ele) { return "my "+ele.getName(); } String image(MyModel ele) { return "MyModel.gif"; } */ }