Bug 17910 OpenRefactoringWIzardAction: is API but has protected method that us internal classes
F1 Opt to remove the class and use an internal helper class instead.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenRefactoringWizardAction.java
/*
	 * @see SelectionDispatchAction#run(IStructuredSelection)
	 */
	protected void run(IStructuredSelection selection) {
		startRefactoring();
	}
	protected void run(ITextSelection selection) {
		if (! canRun(selection)){
			MessageDialog.openInformation(getShell(), RefactoringMessages.getString("OpenRefactoringWizardAction.unavailable"), fUnavailableMessage); 
			fRefactoring= null;
			return;
		}
		startRefactoring();	
	}
		
	/**
	 * Creates a new instance of <code>Refactoring</code>.
	 * @param obj is guaranteed to be of the accepted type (passed in the constructor)
	 * However, if <code>fCanOperateOnMultiSelection</code> is set to <code>true</code>, 
	 * then obj is <code>Object[]</code> and contains elements of the accepted type (passed in the constructor) 
	 */
	protected abstract Refactoring createNewRefactoringInstance(Object obj) throws JavaModelException;	
	
	protected abstract RefactoringWizard createWizard(Refactoring refactoring);	
	
	protected abstract boolean canActivateRefactoring(Refactoring refactoring)  throws JavaModelException;
	private boolean canEnable(IStructuredSelection selection){
		if (selection.isEmpty())
			return false;