package cc.warlock.rcp.stormfront.ui.menu;
import java.util.ArrayList;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IContributionItem;
import cc.warlock.core.script.IScript;
import cc.warlock.rcp.menu.SubMenuContributionItem;
public class ScriptContributionItem extends SubMenuContributionItem {
IScript m_Script;
public class StopScriptAction extends Action {
IScript m_Script = null;
public StopScriptAction(IScript script) {
super("Stop");
m_Script = script;
}
@Override
public void run() {
m_Script.stop();
}
}
public class PauseScriptAction extends Action {
IScript m_Script = null;
public PauseScriptAction(IScript script) {
super("Pause");
m_Script = script;
}
@Override
public void run() {
m_Script.suspend();
}
}
public class ResumeScriptAction extends Action {
IScript m_Script = null;
public ResumeScriptAction(IScript script) {
super("Resume");
m_Script = script;
}
@Override
public void run() {
m_Script.resume();
}
}
public ScriptContributionItem(IScript script) {
super(script.getName());
m_Script = script;
}
@Override
protected IContributionItem[] getContributionItems() {
ArrayList<IContributionItem> items = new ArrayList<IContributionItem>();
IContributionItem newItem = new ActionContributionItem(new StopScriptAction(m_Script));
items.add(newItem);
if(!m_Script.isSuspended())
{
newItem = new ActionContributionItem(new PauseScriptAction(m_Script));
items.add(newItem);
}
else
{
newItem = new ActionContributionItem(new ResumeScriptAction(m_Script));
items.add(newItem);
}
return items.toArray(new IContributionItem[items.size()]);
}
}