/******************************************************************************* * 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.feature.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.feature.feature.Background; import org.jnario.feature.feature.Feature; import org.jnario.feature.feature.Scenario; import org.jnario.feature.feature.Step; import org.jnario.feature.naming.StepNameProvider; import com.google.inject.Inject; /** * @author Birgit Engelmann - Initial contribution and API */ public class FeatureLabelProvider extends XtendLabelProvider { @Inject public FeatureLabelProvider(AdapterFactoryLabelProvider delegate) { super(delegate); } @Inject private XtendImages images; @Inject private StepNameProvider stepNameProvider; @Inject private XbaseImageAdornments adornments; @Inject private IXtendJvmAssociations associations; protected ImageDescriptor imageDescriptor(final Object operation) { if (operation instanceof Background) { return _imageDescriptor((Background)operation); } if (operation instanceof ExampleTable) { return _imageDescriptor((ExampleTable)operation); } if (operation instanceof Step) { return _imageDescriptor((Step)operation); } if (operation instanceof Scenario) { return _imageDescriptor((Scenario)operation); } if (operation instanceof Feature) { return _imageDescriptor((Feature)operation); } return super.imageDescriptor(operation); } public ImageDescriptor _imageDescriptor(Background element) { return images.forClass(JvmVisibility.PUBLIC, adornments.get(associations.getInferredType(element))); } public ImageDescriptor _imageDescriptor(ExampleTable element) { return images.forField(JvmVisibility.PROTECTED, adornments.get((JvmIdentifiableElement) associations.getJvmElements(element).iterator().next())); } public ImageDescriptor _imageDescriptor(Step element) { return images.forOperation(JvmVisibility.PUBLIC, adornments.get(associations.getDirectlyInferredOperation(element))); } public ImageDescriptor _imageDescriptor(Scenario element) { return images.forClass(JvmVisibility.PUBLIC, adornments.get(associations.getInferredType(element))); } public ImageDescriptor _imageDescriptor(Feature element) { return images.forClass(JvmVisibility.PUBLIC, adornments.get(associations.getInferredType(element))); } public String text(Background element) { return element.getName().trim(); } public String text(Step element) { return convertFromJavaString(stepNameProvider.describe(element), true); } public String text(Scenario element) { return element.getName().trim(); } public String text(Feature element) { return "Feature: " + element.getName().trim(); } }