content: /*******************************************************************************
   * Copyright (c) 2000, 2007 IBM Corporation and others.
   * All rights reserved. This program and the accompanying materials
   * are 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:
   *     IBM Corporation - initial API and implementation
   *******************************************************************************/
  package ts.eclipse.ide.jsdt.internal.ui.refactoring;
  
  import org.eclipse.core.runtime.CoreException;
  import org.eclipse.ltk.core.refactoring.Refactoring;
  import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
  import org.eclipse.swt.widgets.Shell;
  
  import ts.eclipse.ide.jsdt.internal.ui.refactoring.actions.RefactoringStarter;
  
  /**
   * Opens the user interface for a given refactoring.
   */
  public class UserInterfaceStarter {
  	
  	private RefactoringWizard fWizard;
  	
  	/**
  	 * Initializes this user interface starter with the given
  	 * wizard.
  	 * 
  	 * @param wizard the refactoring wizard to use
  	 */
  	public void initialize(RefactoringWizard wizard) {
  		fWizard= wizard;		
  	}
  	
  	/**
  	 * Actually activates the user interface. This default implementation
  	 * assumes that the configuration element passed to <code>initialize
  	 * </code> has an attribute wizard denoting the wizard class to be
  	 * used for the given refactoring.
  	 * <p>
  	 * Subclasses may override to open a different user interface
  	 * 
  	 * @param refactoring the refactoring for which the user interface
  	 *  should be opened
  	 * @param parent the parent shell to be used
  	 * @param saveMode a save mode from {@link RefactoringSaveHelper}
  	 * @return <code>true</code> iff the refactoring was executed,
  	 *  <code>false</code> otherwise
  	 * 
  	 * @exception CoreException if the user interface can't be activated
  	 */
  	public boolean activate(Refactoring refactoring, Shell parent, int saveMode) throws CoreException {
  		String title= fWizard.getDefaultPageTitle();
  		if (title == null)
  			title= ""; //$NON-NLS-1$
  		return new RefactoringStarter().activate(refactoring, fWizard, parent, title, saveMode);
  	}
  }
  