-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.ITextOperationTarget;\r
-import org.eclipse.jface.text.ITextSelection;\r
-import org.eclipse.jface.text.ITextViewer;\r
-import org.eclipse.jface.text.ITextViewerExtension;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.texteditor.ITextEditor;\r
-\r
-abstract class TextEditorExecution implements Execution {\r
- protected IWorkbenchWindow window;\r
- protected ITextEditor textEditor;\r
- protected ITextViewer textViewer;\r
- protected Cursor cursor;\r
- protected IDocument doc;\r
- \r
- @Override\r
- public boolean init(IWorkbenchWindow window) {\r
- this.window = window;\r
-\r
- IEditorPart editor = window.getActivePage().getActiveEditor();\r
- if (editor instanceof ITextEditor) {\r
- textEditor = (ITextEditor) editor;\r
- } else {\r
- textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);\r
- }\r
- if(textEditor == null) {\r
- return false;\r
- }\r
- \r
- doc = textEditor.getDocumentProvider().getDocument(\r
- textEditor.getEditorInput());\r
-\r
- ITextOperationTarget target =\r
- (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);\r
- if(!(target instanceof ITextViewer)) {\r
- return false;\r
- }\r
- textViewer = (ITextViewer) target;\r
- \r
- cursor = new Cursor(textEditor, textViewer);\r
- \r
- return true;\r
- }\r
- \r
- protected ITextSelection getSelection(boolean fallbackToMark) {\r
- ITextSelection selection =\r
- (ITextSelection) textEditor.getSelectionProvider().getSelection();\r
- \r
- if(!fallbackToMark && selection.getLength() != 0) {\r
- return selection;\r
- }\r
- \r
- IEditorPart editor = window.getActivePage().getActiveEditor();\r
- ITextOperationTarget target =\r
- (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);\r
- \r
- if(!(target instanceof ITextViewerExtension)) {\r
- return selection;\r
- }\r
- \r
- ITextViewerExtension viewerEx = (ITextViewerExtension) target;\r
- \r
- int mark = viewerEx.getMark();\r
- \r
- if(mark == -1) {\r
- return selection;\r
- }\r
- \r
- int current = selection.getOffset();\r
- \r
- int start = (mark < current) ? mark : current;\r
- textViewer.setSelectedRange(start, Math.abs(mark - current));\r
- \r
- return (ITextSelection) textEditor.getSelectionProvider().getSelection();\r
- }\r
-\r
- protected final int getTabStop() {\r
- return textViewer.getTextWidget().getTabs();\r
- }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextOperationTarget;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.ITextViewerExtension;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+abstract class TextEditorExecution implements Execution {
+ protected IWorkbenchWindow window;
+ protected ITextEditor textEditor;
+ protected ITextViewer textViewer;
+ protected Cursor cursor;
+ protected IDocument doc;
+
+ @Override
+ public boolean init(IWorkbenchWindow window) {
+ this.window = window;
+
+ IEditorPart editor = window.getActivePage().getActiveEditor();
+ if (editor instanceof ITextEditor) {
+ textEditor = (ITextEditor) editor;
+ } else {
+ textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
+ }
+ if(textEditor == null) {
+ return false;
+ }
+
+ doc = textEditor.getDocumentProvider().getDocument(
+ textEditor.getEditorInput());
+
+ ITextOperationTarget target =
+ (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);
+ if(!(target instanceof ITextViewer)) {
+ return false;
+ }
+ textViewer = (ITextViewer) target;
+
+ cursor = new Cursor(textEditor, textViewer);
+
+ return true;
+ }
+
+ protected ITextSelection getSelection(boolean fallbackToMark) {
+ ITextSelection selection =
+ (ITextSelection) textEditor.getSelectionProvider().getSelection();
+
+ if(!fallbackToMark && selection.getLength() != 0) {
+ return selection;
+ }
+
+ IEditorPart editor = window.getActivePage().getActiveEditor();
+ ITextOperationTarget target =
+ (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);
+
+ if(!(target instanceof ITextViewerExtension)) {
+ return selection;
+ }
+
+ ITextViewerExtension viewerEx = (ITextViewerExtension) target;
+
+ int mark = viewerEx.getMark();
+
+ if(mark == -1) {
+ return selection;
+ }
+
+ int current = selection.getOffset();
+
+ int start = (mark < current) ? mark : current;
+ textViewer.setSelectedRange(start, Math.abs(mark - current));
+
+ return (ITextSelection) textEditor.getSelectionProvider().getSelection();
+ }
+
+ protected final int getTabStop() {
+ return textViewer.getTextWidget().getTabs();
+ }
+}