/**
* Aptana Studio
* Copyright (c) 2005-2012 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions).
* Please see the license.html included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.aptana.deploy.ui;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import com.aptana.scripting.model.BundleElement;
import com.aptana.scripting.model.BundleEntry;
import com.aptana.scripting.model.BundleManager;
import com.aptana.scripting.model.CommandElement;
public class DeployContributionItem extends ContributionItem
{
public DeployContributionItem()
{
}
public DeployContributionItem(String id)
{
super(id);
}
@Override
public boolean isDynamic()
{
return true;
}
protected static void createDeploySubMenuItem(Menu menu, String cmd, String bundle)
{
final CommandElement command;
command = getBundleCommand(bundle, cmd);
MenuItem item = new MenuItem(menu, SWT.PUSH);
item.setText(cmd);
item.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
command.execute();
}
});
}
protected static CommandElement getBundleCommand(String bundleName, String commandName)
{
BundleEntry entry = BundleManager.getInstance().getBundleEntry(bundleName);
if (entry == null)
{
return null;
}
CommandElement command;
for (BundleElement bundle : entry.getContributingBundles())
{
command = bundle.getCommandByName(commandName);
if (command != null)
{
return command;
}
}
return null;
}
}