18dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye/*
28dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * Copyright (C) 2011 The Android Open Source Project
38dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye *
48dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * Licensed under the Eclipse Public License, Version 1.0 (the "License");
58dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * you may not use this file except in compliance with the License.
68dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * You may obtain a copy of the License at
78dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye *
88dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye *      http://www.eclipse.org/org/documents/epl-v10.php
98dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye *
108dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * Unless required by applicable law or agreed to in writing, software
118dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * distributed under the License is distributed on an "AS IS" BASIS,
128dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * See the License for the specific language governing permissions and
148dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * limitations under the License.
158dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye */
168dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye
178dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbyepackage com.android.ide.eclipse.adt.internal.editors.layout.refactoring;
188dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye
19e50549f54810c29bffc681e39d33158ab2a8f26eRaphaelimport com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate;
208dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye
218dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbyeimport org.eclipse.jface.action.IAction;
228dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbyeimport org.eclipse.ltk.ui.refactoring.RefactoringWizard;
238dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbyeimport org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
248dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye
258dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye/**
268dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye * Action executed when the "Wrap In" menu item is invoked.
278dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye */
288dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbyepublic class WrapInAction extends VisualRefactoringAction {
298dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye    @Override
308dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye    public void run(IAction action) {
318dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye        if ((mTextSelection != null || mTreeSelection != null) && mFile != null) {
32e50549f54810c29bffc681e39d33158ab2a8f26eRaphael            WrapInRefactoring ref = new WrapInRefactoring(mFile, mDelegate,
338dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye                    mTextSelection, mTreeSelection);
34e50549f54810c29bffc681e39d33158ab2a8f26eRaphael            RefactoringWizard wizard = new WrapInWizard(ref, mDelegate);
358dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye            RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(wizard);
368dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye            try {
378dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye                op.run(mWindow.getShell(), wizard.getDefaultPageTitle());
388dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye            } catch (InterruptedException e) {
398dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye                // Interrupted. Pass.
408dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye            }
418dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye        }
428dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye    }
438dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye
44e50549f54810c29bffc681e39d33158ab2a8f26eRaphael    public static IAction create(LayoutEditorDelegate editorDelegate) {
45e50549f54810c29bffc681e39d33158ab2a8f26eRaphael        return create("Wrap in Container...", editorDelegate, WrapInAction.class);
468dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye    }
478dc4366bbaad39d56e1c2ded4046c86a95a17666Tor Norbye}
48