/*
* generated by Xtext
*/
package com.robotoworks.mechanoid.net.ui.labeling;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.xtext.serializer.ISerializer;
import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
import com.google.inject.Inject;
import com.robotoworks.mechanoid.net.generator.ModelExtensions;
import com.robotoworks.mechanoid.net.netModel.Client;
import com.robotoworks.mechanoid.net.netModel.ComplexTypeDeclaration;
import com.robotoworks.mechanoid.net.netModel.EnumMember;
import com.robotoworks.mechanoid.net.netModel.EnumTypeDeclaration;
import com.robotoworks.mechanoid.net.netModel.Header;
import com.robotoworks.mechanoid.net.netModel.HeaderBlock;
import com.robotoworks.mechanoid.net.netModel.HttpMethod;
import com.robotoworks.mechanoid.net.netModel.Member;
import com.robotoworks.mechanoid.net.netModel.Model;
import com.robotoworks.mechanoid.net.netModel.ResponseBlock;
import com.robotoworks.mechanoid.net.netModel.Type;
import com.robotoworks.mechanoid.net.netModel.TypedMember;
/**
* Provides labels for a EObjects.
*
* see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
*/
public class NetModelLabelProvider extends DefaultEObjectLabelProvider {
@Inject ISerializer serializer;
@Inject
public NetModelLabelProvider(AdapterFactoryLabelProvider delegate) {
super(delegate);
}
/*
//Labels and icons can be computed like this:
String text(MyModel ele) {
return "my "+ele.getName();
}
String image(MyModel ele) {
return "MyModel.gif";
}
*/
String image(Model ele) {
return "package.gif";
}
String image(ComplexTypeDeclaration ele) {
return "entity_obj.gif";
}
String image(EnumTypeDeclaration ele) {
return "enum_obj.gif";
}
String image(Member ele) {
return "member_obj.gif";
}
String image(EnumMember ele) {
return "member_obj.gif";
}
String image(HttpMethod ele) {
return "httpmethod_obj.gif";
}
String image(Client ele) {
return "client_obj.gif";
}
String text(Member ele) {
if(ele instanceof TypedMember) {
return ele.getName() + " : " + ModelExtensions.signature(((TypedMember)ele).getType());
}
return ele.getName();
}
String text(HttpMethod ele) {
ResponseBlock block = ModelExtensions.getResponseBlock(ele);
String name = ele.getName();
name += " " + serializer.serialize(ele.getPath()).replaceAll("([a-zA-Z0-9_\\^]+):[a-zA-Z0-9_\\^]+", "{$1}");
if(block != null && block.getType() instanceof Type) {
if(block.getType() instanceof Type) {
name += " : " + ModelExtensions.signature((Type)block.getType());
}
}
return name;
}
String text (HeaderBlock ele) {
return "headers";
}
String text (Header ele) {
return ele.getName() + " : " + ele.getValue();
}
}