package org.erlide.wrangler.refactoring.ui.menu;
import java.util.HashMap;
import java.util.List;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;
import org.erlide.wrangler.refactoring.backend.UserRefactoringInfo;
import org.erlide.wrangler.refactoring.backend.UserRefactoringsManager;
/**
* Menu contribution - committed refactoring menu items (those from the
* repository)
*
* @author Aleksandra Lipiec <aleksandra.lipiec@erlang-solutions.com>
* @version %I%, %G%
*/
public class UserRefacContribution extends CompoundContributionItem {
public UserRefacContribution() {
super();
}
public UserRefacContribution(final String id) {
super(id);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected IContributionItem[] getContributionItems() {
final List<UserRefactoringInfo> refacs = UserRefactoringsManager.getInstance()
.getElementary();
final IContributionItem[] items = new IContributionItem[refacs.size()];
int i = 0;
for (final UserRefactoringInfo info : refacs) {
final CommandContributionItemParameter param = new CommandContributionItemParameter(
PlatformUI.getWorkbench(), info.getCallback(),
"org.erlide.wrangler.refactoring.gen_refac",
CommandContributionItem.STYLE_PUSH);
param.label = info.getLabel();
param.parameters = new HashMap();
param.parameters.put("org.erlide.wrangler.refactoring.gen_refac.callback",
info.getCallback());
param.parameters.put("org.erlide.wrangler.refactoring.gen_refac.name",
info.getLabel());
items[i] = new CommandContributionItem(param);
i++;
}
return items;
}
}