/******************************************************************************* * Copyright (c) 2007-2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.jsf2.refactoring; import java.util.HashSet; import java.util.Set; import org.eclipse.core.expressions.EvaluationContext; import org.eclipse.core.runtime.CoreException; import org.eclipse.jdt.internal.ui.refactoring.RefactoringMessages; import org.eclipse.jdt.internal.ui.refactoring.UserInterfaceStarter; import org.eclipse.jdt.ui.refactoring.RefactoringSaveHelper; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; import org.jboss.tools.jsf.JSFModelPlugin; import org.jboss.tools.jsf.jsf2.refactoring.action.rename.IRenameDescriptor; import org.jboss.tools.jsf.jsf2.refactoring.action.rename.RenameUserInterfaceManager; import org.jboss.tools.jsf.messages.JSFUIMessages; /** * * @author yzhishko * */ @SuppressWarnings("restriction") public class RefactoringActionManager { public static final String REFACTOR_RENAME_ACTION_ID = "_refactor_rename_action_id"; //$NON-NLS-1$ private static final RefactoringActionManager instance = new RefactoringActionManager(); private RefactoringActionManager() { } public static RefactoringActionManager getManager() { return instance; } public boolean checkActionAvailable(String actionID, IDOMNode node) { return getAvailableActionIDs(node).contains(actionID); } public boolean checkActionAvailable(String actionID, EvaluationContext context) { return getAvailableActionIDs(context).contains(actionID); } public Set<String> getAvailableActionIDs(IDOMNode node) { Set<String> ids = new HashSet<String>(); return ids; } public Set<String> getAvailableActionIDs(EvaluationContext context) { Set<String> ids = new HashSet<String>(); return ids; } public void renameWithAction(IAction action, IRenameDescriptor descriptor) { Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getShell(); if (descriptor == null) { MessageDialog.openInformation(parent, RefactoringMessages.RenameAction_rename, JSFUIMessages.Refactoring_JSF_2_Isnt_Available); return; } descriptor.getRenameRefactoring().setProcessor( descriptor.getRefactoringProcessor()); UserInterfaceStarter starter = RenameUserInterfaceManager.getDefault() .getStarter(descriptor.getRenameRefactoring()); try { starter.activate(descriptor.getRenameRefactoring(), parent, RefactoringSaveHelper.SAVE_NOTHING); } catch (CoreException e) { JSFModelPlugin.getPluginLog().logError(e); } } }