/*
* generated by Xtext
*/
package at.bestsolution.efxclipse.tooling.fxgraph.ui.labeling;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.graphics.Image;
import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.BindValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ComponentDefinition;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ControllerHandledValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.CopyValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.Define;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.Element;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.Import;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.IncludeValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ListValueElement;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ListValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.LocationValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.MapValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.PackageDeclaration;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.Property;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ReferenceValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ResourceValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.Script;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.ScriptHandlerHandledValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.SimpleValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.fXGraph.StaticCallValueProperty;
import at.bestsolution.efxclipse.tooling.fxgraph.ui.util.JDTHelper;
import at.bestsolution.efxclipse.tooling.ui.util.IconKeys;
import com.google.inject.Inject;
/**
* Provides labels for a EObjects.
*
* see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
*/
public class FXGraphLabelProvider extends DefaultEObjectLabelProvider {
@Inject
public FXGraphLabelProvider(AdapterFactoryLabelProvider delegate) {
super(delegate);
}
String text(IncludeValueProperty element) {
return element.getSource().getName();
}
Image image(IncludeValueProperty element) {
return IconKeys.getIcon(IconKeys.INCLUDE_KEY);
}
Image image(StaticCallValueProperty element) {
return IconKeys.getIcon(IconKeys.STAT_METHOD_PUBLIC_KEY);
}
String text(PackageDeclaration element) {
return element.getName();
}
Image image(PackageDeclaration element) {
return IconKeys.getIcon(IconKeys.PACKAGE_KEY);
}
String text(Import element) {
return element.getImportedNamespace();
}
Image image(Import element) {
return IconKeys.getIcon(IconKeys.IMPORT_KEY);
}
String text(ComponentDefinition def) {
return def.getName() + def.getController() == null ? "" : " (" + def.getController().getSimpleName() + ")";
}
Image image(ComponentDefinition def) {
return IconKeys.getIcon(IconKeys.COMPONENT_KEY);
}
String text(Element element) {
return element.getType() != null ? element.getType().getSimpleName() : "<unknown>";
}
Image image(Element element) {
return IconKeys.getIcon(IconKeys.CLASS_KEY);
}
Image image(Define element) {
return IconKeys.getIcon(IconKeys.DEFINES_KEY);
}
Image image(Script script) {
return IconKeys.getIcon(IconKeys.SCRIPTS_KEY);
}
Image image(Property element) {
if( element.getValue() instanceof Element ) {
return IconKeys.getIcon(IconKeys.FIELD_KEY);
} else if( element.getValue() instanceof IncludeValueProperty ) {
return IconKeys.getIcon(IconKeys.INCLUDE_KEY);
} else if( element.getValue() instanceof ReferenceValueProperty ) {
return IconKeys.getIcon(IconKeys.REFERENCE_KEY);
} else if( element.getValue() instanceof ListValueProperty ) {
return IconKeys.getIcon(IconKeys.LIST_KEY);
} else if( element.getValue() instanceof MapValueProperty ) {
return IconKeys.getIcon(IconKeys.MAP_KEY);
} else if( element.getValue() instanceof BindValueProperty ) {
return IconKeys.getIcon(IconKeys.BINDING_KEY);
} else if( element.getValue() instanceof ControllerHandledValueProperty ) {
return IconKeys.getIcon(IconKeys.EVENT_KEY);
} else if( element.getValue() instanceof CopyValueProperty ) {
return IconKeys.getIcon(IconKeys.COPY_KEY);
} else if( element.getValue() instanceof LocationValueProperty ) {
return IconKeys.getIcon(IconKeys.LOCATION_KEY);
} else if( element.getValue() instanceof ResourceValueProperty ) {
return IconKeys.getIcon(IconKeys.EXTERNALIZED_STRING_KEY);
} else if( element.getValue() instanceof ScriptHandlerHandledValueProperty ) {
return IconKeys.getIcon(IconKeys.EVENT_KEY);
} else if( element.getValue() instanceof SimpleValueProperty ) {
return IconKeys.getIcon(IconKeys.FIELD_KEY);
}
System.err.println("Unknown for: " + element.getValue());
return null;
}
/*
//Labels and icons can be computed like this:
String text(MyModel ele) {
return "my "+ele.getName();
}
String image(MyModel ele) {
return "MyModel.gif";
}
*/
}