/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.tools.search.internal.ui.text; import com.google.dart.tools.search.internal.ui.SearchMessages; 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; public class ReplaceAction extends Action { public static class ReplaceWizard extends RefactoringWizard { public ReplaceWizard(ReplaceRefactoring refactoring) { super(refactoring, RefactoringWizard.DIALOG_BASED_USER_INTERFACE); } @Override protected void addUserInputPages() { addPage(new ReplaceConfigurationPage((ReplaceRefactoring) getRefactoring())); } } private final FileSearchResult fResult; private final Object[] fSelection; private final Shell fShell; /** * Creates the replace action. * * @param shell the parent shell * @param result the file search page to * @param selection the selected entries or <code>null</code> to replace all */ public ReplaceAction(Shell shell, FileSearchResult result, Object[] selection) { fShell = shell; fResult = result; fSelection = selection; } @Override public void run() { try { ReplaceRefactoring refactoring = new ReplaceRefactoring(fResult, fSelection); 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 } } }