]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.scl.ui.editor2;\r
2 \r
3 import org.eclipse.jface.resource.JFaceResources;\r
4 import org.eclipse.jface.resource.LocalResourceManager;\r
5 import org.eclipse.jface.resource.ResourceManager;\r
6 import org.eclipse.jface.text.IDocument;\r
7 import org.eclipse.swt.widgets.Composite;\r
8 import org.eclipse.ui.IEditorInput;\r
9 import org.eclipse.ui.IEditorSite;\r
10 import org.eclipse.ui.PartInitException;\r
11 import org.eclipse.ui.contexts.IContextService;\r
12 import org.eclipse.ui.editors.text.TextEditor;\r
13 import org.eclipse.ui.texteditor.ITextEditorActionConstants;\r
14 import org.eclipse.ui.texteditor.StatusLineContributionItem;\r
15 import org.simantics.scl.ui.editor.SCLSourceViewerConfigurationNew;\r
16 import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;\r
17 \r
18 public class SCLModuleEditor2 extends TextEditor {\r
19     private boolean disposed = false;\r
20     ResourceManager resourceManager;\r
21 \r
22     public SCLModuleEditor2() {\r
23         super();\r
24         resourceManager = new LocalResourceManager(JFaceResources.getResources());\r
25         SCLSourceViewerConfigurationNew sourceViewerConfiguration = new SCLSourceViewerConfigurationNew(resourceManager);\r
26         setDocumentProvider(new SCLModuleEditor2DocumentProvider(sourceViewerConfiguration));\r
27         setSourceViewerConfiguration(sourceViewerConfiguration);\r
28     }\r
29     \r
30     @Override\r
31     public boolean isTabsToSpacesConversionEnabled() {\r
32         return true;\r
33     }\r
34     \r
35     @Override\r
36     public void init(IEditorSite site, IEditorInput input)\r
37             throws PartInitException {\r
38         super.init(site, input);\r
39     }\r
40 \r
41     @Override\r
42     public void createPartControl(Composite parent) {\r
43         super.createPartControl(parent);\r
44         StatusLineContributionItem statusLineContribution = new StatusLineContributionItem(\r
45                 ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION,\r
46                 true, 14);\r
47         setStatusField(statusLineContribution,\r
48                 ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION);\r
49         getEditorSite().getActionBars().getStatusLineManager().add(statusLineContribution);\r
50         getEditorSite().getActionBars().updateActionBars();\r
51         getEditorSite().getService(IContextService.class).activateContext("org.simantics.scl.ui.editor");\r
52         updatePartName();\r
53     }\r
54 \r
55     protected void updatePartName() {\r
56         setPartName(getEditorInput().getName());\r
57     }\r
58     \r
59     @Override\r
60     public void dispose() {\r
61         disposed = true;\r
62         super.dispose();\r
63         resourceManager.dispose();\r
64     }\r
65 \r
66     public boolean isDisposed() {\r
67         return disposed;\r
68     }\r
69     \r
70     public SCLTextEditorEnvironment getSCLTextEditorEnvironment() {\r
71         return ((SCLSourceViewerConfigurationNew)getSourceViewerConfiguration())\r
72                 .getSclTextEditorEnvironment();\r
73     }\r
74 \r
75     public IDocument getDocument() {\r
76         return getSourceViewer().getDocument();\r
77     }\r
78 }\r