source: default/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/refactoring/autorenumber/AutoRenumberRefactoringHandler.java @ 5

Last change on this file since 5 was 5, checked in by zeiss, 14 years ago
  • Property svn:mime-type set to text/plain
File size: 2.1 KB
Line 
1package de.ugoe.cs.swe.bnftools.ui.refactoring.autorenumber;
2
3import org.eclipse.core.commands.AbstractHandler;
4import org.eclipse.core.commands.ExecutionEvent;
5import org.eclipse.core.commands.ExecutionException;
6import org.eclipse.emf.ecore.EObject;
7import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
8import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
9import org.eclipse.swt.widgets.Display;
10import org.eclipse.ui.PlatformUI;
11import org.eclipse.xtext.parsetree.NodeAdapter;
12import org.eclipse.xtext.parsetree.NodeUtil;
13import org.eclipse.xtext.ui.editor.XtextEditor;
14import org.eclipse.xtext.ui.editor.model.XtextDocument;
15
16import de.ugoe.cs.swe.bnftools.ui.refactoring.generic.GenericRefactoring;
17import de.ugoe.cs.swe.bnftools.ui.refactoring.generic.GenericRefactoringWizard;
18import de.ugoe.cs.swe.bnftools.utils.RootEObjectFinder;
19
20public class AutoRenumberRefactoringHandler extends AbstractHandler {
21
22        public Object execute(ExecutionEvent event) throws ExecutionException {
23                XtextEditor editor = (XtextEditor) PlatformUI.getWorkbench()
24                .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
25
26//TODO: better error handling           
27                if (!(editor.getDocument() instanceof XtextDocument)) {
28                        return null;
29                }
30               
31                XtextDocument doc = (XtextDocument) editor.getDocument();
32                EObject root = doc.readOnly(new RootEObjectFinder());
33                NodeAdapter rootNode = NodeUtil.getNodeAdapter(root);
34               
35                AutoRenumberRefactoringProcessor processor = new AutoRenumberRefactoringProcessor(
36                                editor, rootNode.getParserNode(), doc);
37
38                GenericRefactoring refactoring = new GenericRefactoring(processor);
39               
40                GenericRefactoringWizard wizard = new GenericRefactoringWizard(
41                                refactoring, RefactoringWizard.WIZARD_BASED_USER_INTERFACE);
42
43                RefactoringWizardOpenOperation openOperation = new RefactoringWizardOpenOperation(
44                                wizard);
45
46                try {
47                        openOperation.run(Display.getCurrent().getActiveShell(),
48                                        "Refactoring not possible!");
49                } catch (InterruptedException e1) {
50                        e1.printStackTrace();
51                }
52               
53                return null;
54        }
55
56
57}
Note: See TracBrowser for help on using the repository browser.