/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.python.pydev.refactoring.refactorer.search.copied; import org.eclipse.jface.action.Action; import org.eclipse.ltk.ui.refactoring.RefactoringWizard; import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation; import org.eclipse.swt.widgets.Shell; import com.python.pydev.refactoring.refactorer.search.PythonFileSearchResult; import com.python.pydev.ui.search.SearchMessages; public class ReplaceAction extends Action { public static class ReplaceWizard extends RefactoringWizard { public ReplaceWizard(ReplaceRefactoring refactoring) { super(refactoring, RefactoringWizard.DIALOG_BASED_USER_INTERFACE); } /* (non-Javadoc) * @see org.eclipse.ltk.ui.refactoring.RefactoringWizard#addUserInputPages() */ protected void addUserInputPages() { addPage(new ReplaceConfigurationPage((ReplaceRefactoring) getRefactoring())); } } private final PythonFileSearchResult fResult; private final Object[] fSelection; private final boolean fSkipFiltered; private final Shell fShell; /** * Creates the replace action to be * @param shell the parent shell * @param result the file search page to * @param selection the selected entries or <code>null</code> to replace all * @param skipFiltered if set to <code>true</code>, filtered matches will not be replaced */ public ReplaceAction(Shell shell, PythonFileSearchResult result, Object[] selection, boolean skipFiltered) { fShell = shell; fResult = result; fSelection = selection; fSkipFiltered = skipFiltered; } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ public void run() { try { ReplaceRefactoring refactoring = new ReplaceRefactoring(fResult, fSelection, fSkipFiltered); ReplaceWizard refactoringWizard = new ReplaceWizard(refactoring); if (fSelection == null) { refactoringWizard.setDefaultPageTitle(SearchMessages.ReplaceAction_title_all); } else { refactoringWizard.setDefaultPageTitle(SearchMessages.ReplaceAction_title_selected); } RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(refactoringWizard); op.run(fShell, SearchMessages.ReplaceAction_description_operation); } catch (InterruptedException e) { // refactoring got cancelled } } }