--- /dev/null
+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