package cc.warlock.rcp.stormfront.ui.menu;
import cc.warlock.core.client.WarlockClientRegistry;
import cc.warlock.core.client.IWarlockClient;
import cc.warlock.core.script.IScript;
import cc.warlock.core.stormfront.client.IStormFrontClient;
import cc.warlock.rcp.menu.SubMenuContributionItem;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.ui.actions.CompoundContributionItem;
import java.util.ArrayList;
public class ScriptMenuContributionItem extends CompoundContributionItem {
// A class to retrieve the running scripts from a client.
protected class CharacterContributionItem extends SubMenuContributionItem {
private cc.warlock.core.stormfront.client.IStormFrontClient m_Client = null;
public CharacterContributionItem(IStormFrontClient client) {
super(client.getCharacterName().get());
m_Client = client;
}
@Override
protected IContributionItem[] getContributionItems() {
// Add Menu Items
ArrayList<IContributionItem> items = new ArrayList<IContributionItem>();
for(IScript script : m_Client.getRunningScripts())
{
IContributionItem newItem = new ScriptContributionItem(script);
items.add(newItem);
}
return items.toArray(new IContributionItem[items.size()]);
}
}
public class CharacterNameAction extends Action {
public CharacterNameAction (String name) {
super(name);
}
}
@Override
protected IContributionItem[] getContributionItems() {
// Add Menu Items
ArrayList<IContributionItem> items = new ArrayList<IContributionItem>();
java.util.List<IWarlockClient> clients = WarlockClientRegistry.getActiveClients();
for(IWarlockClient client : clients) {
if (client instanceof IStormFrontClient) {
CharacterContributionItem newCharItem = new CharacterContributionItem((IStormFrontClient)client);
items.add(newCharItem);
}
}
return items.toArray(new IContributionItem[items.size()]);
}
}