]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLModuleEditor2.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor2 / SCLModuleEditor2.java
diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLModuleEditor2.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLModuleEditor2.java
new file mode 100644 (file)
index 0000000..d07c256
--- /dev/null
@@ -0,0 +1,78 @@
+package org.simantics.scl.ui.editor2;\r
+\r
+import org.eclipse.jface.resource.JFaceResources;\r
+import org.eclipse.jface.resource.LocalResourceManager;\r
+import org.eclipse.jface.resource.ResourceManager;\r
+import org.eclipse.jface.text.IDocument;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IEditorSite;\r
+import org.eclipse.ui.PartInitException;\r
+import org.eclipse.ui.contexts.IContextService;\r
+import org.eclipse.ui.editors.text.TextEditor;\r
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;\r
+import org.eclipse.ui.texteditor.StatusLineContributionItem;\r
+import org.simantics.scl.ui.editor.SCLSourceViewerConfigurationNew;\r
+import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;\r
+\r
+public class SCLModuleEditor2 extends TextEditor {\r
+    private boolean disposed = false;\r
+    ResourceManager resourceManager;\r
+\r
+    public SCLModuleEditor2() {\r
+        super();\r
+        resourceManager = new LocalResourceManager(JFaceResources.getResources());\r
+        SCLSourceViewerConfigurationNew sourceViewerConfiguration = new SCLSourceViewerConfigurationNew(resourceManager);\r
+        setDocumentProvider(new SCLModuleEditor2DocumentProvider(sourceViewerConfiguration));\r
+        setSourceViewerConfiguration(sourceViewerConfiguration);\r
+    }\r
+    \r
+    @Override\r
+    public boolean isTabsToSpacesConversionEnabled() {\r
+        return true;\r
+    }\r
+    \r
+    @Override\r
+    public void init(IEditorSite site, IEditorInput input)\r
+            throws PartInitException {\r
+        super.init(site, input);\r
+    }\r
+\r
+    @Override\r
+    public void createPartControl(Composite parent) {\r
+        super.createPartControl(parent);\r
+        StatusLineContributionItem statusLineContribution = new StatusLineContributionItem(\r
+                ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION,\r
+                true, 14);\r
+        setStatusField(statusLineContribution,\r
+                ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION);\r
+        getEditorSite().getActionBars().getStatusLineManager().add(statusLineContribution);\r
+        getEditorSite().getActionBars().updateActionBars();\r
+        getEditorSite().getService(IContextService.class).activateContext("org.simantics.scl.ui.editor");\r
+        updatePartName();\r
+    }\r
+\r
+    protected void updatePartName() {\r
+        setPartName(getEditorInput().getName());\r
+    }\r
+    \r
+    @Override\r
+    public void dispose() {\r
+        disposed = true;\r
+        super.dispose();\r
+        resourceManager.dispose();\r
+    }\r
+\r
+    public boolean isDisposed() {\r
+        return disposed;\r
+    }\r
+    \r
+    public SCLTextEditorEnvironment getSCLTextEditorEnvironment() {\r
+        return ((SCLSourceViewerConfigurationNew)getSourceViewerConfiguration())\r
+                .getSclTextEditorEnvironment();\r
+    }\r
+\r
+    public IDocument getDocument() {\r
+        return getSourceViewer().getDocument();\r
+    }\r
+}\r