/******************************************************************************* * Copyright (c) 2012 BMW Car IT 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 *******************************************************************************/ /* * generated by Xtext */ package org.jnario.spec.ui.labeling; import static org.eclipse.xtext.util.Strings.convertFromJavaString; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.xtend.core.jvmmodel.IXtendJvmAssociations; import org.eclipse.xtend.ide.labeling.XtendImages; import org.eclipse.xtend.ide.labeling.XtendLabelProvider; import org.eclipse.xtext.common.types.JvmIdentifiableElement; import org.eclipse.xtext.common.types.JvmVisibility; import org.eclipse.xtext.xbase.ui.labeling.XbaseImageAdornments; import org.jnario.ExampleTable; import org.jnario.spec.naming.ExampleNameProvider; import org.jnario.spec.spec.Example; import org.jnario.spec.spec.ExampleGroup; import org.jnario.spec.spec.TestFunction; import com.google.inject.Inject; /** * @author Sebastian Benz - Initial contribution and API */ @SuppressWarnings("restriction") public class SpecLabelProvider extends XtendLabelProvider { @Inject public SpecLabelProvider(AdapterFactoryLabelProvider delegate) { super(delegate); } @Inject private XtendImages images; @Inject private ExampleNameProvider exampleNameProvider; @Inject private XbaseImageAdornments adornments; @Inject private IXtendJvmAssociations associations; protected ImageDescriptor imageDescriptor(final Object operation) { if (operation instanceof ExampleTable) { return _imageDescriptor((ExampleTable)operation); } if (operation instanceof ExampleGroup) { return _imageDescriptor((ExampleGroup)operation); } if (operation instanceof TestFunction) { return _imageDescriptor((TestFunction)operation); } return super.imageDescriptor(operation); } protected ImageDescriptor _imageDescriptor(ExampleTable element) { return images.forField(JvmVisibility.PROTECTED, adornments.get((JvmIdentifiableElement) associations.getJvmElements(element).iterator().next())); } protected ImageDescriptor _imageDescriptor(ExampleGroup element) { return images.forClass(JvmVisibility.PUBLIC, adornments.get(associations.getInferredType(element))); } protected ImageDescriptor _imageDescriptor(TestFunction element) { return images.forOperation(JvmVisibility.PUBLIC, adornments.get(associations.getDirectlyInferredOperation(element))); } protected String text(ExampleGroup element) { return convertFromJavaString(exampleNameProvider.describe(element), true); } protected String text(Example element) { return convertFromJavaString(exampleNameProvider.describe(element), true); } protected String text(ExampleTable element) { return exampleNameProvider.toFieldName(element); } protected String text(TestFunction element) { return exampleNameProvider.toMethodName(element); } }