package com.xrosstools.xunit.editor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import com.xrosstools.xunit.BehaviorType;
import com.xrosstools.xunit.editor.model.AdapterNode;
import com.xrosstools.xunit.editor.model.BiBranchNode;
import com.xrosstools.xunit.editor.model.BranchNode;
import com.xrosstools.xunit.editor.model.ChainNode;
import com.xrosstools.xunit.editor.model.ConverterNode;
import com.xrosstools.xunit.editor.model.DecoratorNode;
import com.xrosstools.xunit.editor.model.EndPointNode;
import com.xrosstools.xunit.editor.model.LocatorNode;
import com.xrosstools.xunit.editor.model.PostValidationLoopNode;
import com.xrosstools.xunit.editor.model.PreValidationLoopNode;
import com.xrosstools.xunit.editor.model.ProcessorNode;
import com.xrosstools.xunit.editor.model.StartPointNode;
import com.xrosstools.xunit.editor.model.StructureType;
import com.xrosstools.xunit.editor.model.ValidatorNode;
public class Activator extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "com.xrosstools.xunit.editor"; //$NON-NLS-1$
public static final String HOME = "icons/";
public static final String ICO = ".ico";
public static final String JPG = ".jpg";
public static final String START_POINT = "start_point";
public static final String END_POINT = "end_point";
public static final String NODE = "jar_empty";
public static final String PROCESSOR = BehaviorType.processor.name();
public static final String CONVERTER = BehaviorType.converter.name();
public static final String VALIDATOR = BehaviorType.validator.name();//"arrow_split";
public static final String LOCATOR = BehaviorType.locator.name();//"arrow_move";
public static final String DECORATOR = StructureType.decorator.name();
public static final String ADAPTER = StructureType.adapter.name();
public static final String CHAIN = StructureType.chain.name();//"link";
public static final String BI_BRANCH = StructureType.bi_branch.name();//"node_insert_next";
public static final String BRANCH = StructureType.branch.name();//"wallpapers";
public static final String WHILE = StructureType.while_loop.name();//"stock_right_with_subpoints";
public static final String DO_WHILE = StructureType.do_while_loop.name();//"stock_left_with_subpoints";
// The shared instance
private static Activator plugin;
private static BundleContext s_context;
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
s_context = context;
}
public void stop(BundleContext context) throws Exception {
s_context = null;
plugin = null;
super.stop(context);
}
public static Activator getDefault() {
return plugin;
}
public static BundleContext getContext()
{
return s_context;
}
protected void initializeImageRegistry(ImageRegistry reg) {
put(reg, START_POINT);
put(reg, END_POINT);
put(reg, VALIDATOR);
put(reg, LOCATOR);
put(reg, NODE);
put(reg, PROCESSOR);
put(reg, CONVERTER);
put(reg, DECORATOR);
put(reg, ADAPTER);
put(reg, CHAIN);
put(reg, BI_BRANCH);
put(reg, BRANCH);
put(reg, WHILE);
put(reg, DO_WHILE);
initByClass(reg);
}
private void put(ImageRegistry reg, String id){
reg.put(id, imageDescriptorFromPlugin(PLUGIN_ID, getIconPath(id)));
}
private void put(ImageRegistry reg, Class clazz, String id){
reg.put(getName(clazz), imageDescriptorFromPlugin(PLUGIN_ID, getIconPath(id)));
}
private void initByClass(ImageRegistry reg){
// reg.put(getName(UnitNodeDiagram.class), imageDescriptorFromPlugin(PLUGIN_ID, END_POINT));
put(reg, StartPointNode.class, END_POINT);
put(reg, EndPointNode.class, END_POINT);
put(reg, ValidatorNode.class, VALIDATOR);
put(reg, LocatorNode.class, LOCATOR);
put(reg, ProcessorNode.class, PROCESSOR);
put(reg, ConverterNode.class, CONVERTER);
// put(reg, UnitNode.class, NODE);
put(reg, DecoratorNode.class, DECORATOR);
put(reg, AdapterNode.class, ADAPTER);
put(reg, ChainNode.class, CHAIN);
put(reg, BiBranchNode.class, BI_BRANCH);
put(reg, BranchNode.class, BRANCH);
put(reg, PreValidationLoopNode.class, WHILE);
put(reg, PostValidationLoopNode.class, DO_WHILE);
}
public Image getImage(Class clazz){
return this.getImageRegistry().get(getName(clazz));
}
private static String getIconPath(String iconId){
return HOME + iconId + ICO;
}
private String getName(Class clazz){
return clazz.getSimpleName();
}
}