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 for generating menu items for user's own refactorings
*
* @author Aleksandra Lipiec <aleksandra.lipiec@erlang-solutions.com>
* @version %I%, %G%
*/
public class UserMyRefacContribution extends CompoundContributionItem {
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected IContributionItem[] getContributionItems() {
final List<UserRefactoringInfo> refacs = UserRefactoringsManager.getInstance()
.getMyElementary();
if (refacs.size() == 0) {
final CommandContributionItemParameter param = new CommandContributionItemParameter(
PlatformUI.getWorkbench(), null,
"org.erlide.wrangler.refactoring.empty",
CommandContributionItem.STYLE_PUSH);
param.label = "<Empty>";
final CommandContributionItem item = new CommandContributionItem(param);
return new IContributionItem[] { item };
}
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;
}
}