-package org.simantics.help.ui;\r
-\r
-import java.util.function.Supplier;\r
-\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.simantics.Simantics;\r
-import org.simantics.db.Session;\r
-import org.simantics.db.common.request.ParametrizedRead;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.request.combinations.Combinators;\r
-import org.simantics.ui.workbench.IResourceEditorInput;\r
-import org.simantics.ui.workbench.ResourceEditorSupport;\r
-import org.simantics.ui.workbench.TitleUpdater;\r
-import org.simantics.ui.workbench.TitleWithParentNameRequest;\r
-import org.simantics.ui.workbench.ToolTipRequest;\r
-import org.simantics.ui.workbench.editor.input.InputValidationCombinators;\r
-\r
-import winterwell.markdown.editors.MarkdownEditor;\r
-\r
-public class HelpFileEditor extends MarkdownEditor {\r
-\r
- private static final String EDITOR_ID = "org.simantics.help.ui.HelpFileEditor";\r
-\r
- private boolean disposed;\r
-\r
- private static final ParametrizedRead<IResourceEditorInput, Boolean> INPUT_VALIDATOR = \r
- Combinators.compose(InputValidationCombinators.hasURI(), InputValidationCombinators.extractInputResource());\r
-\r
- private ResourceEditorSupport support;\r
-\r
- public HelpFileEditor() {\r
- super();\r
- setDocumentProvider(new HelpFileDocumentProvider());\r
- }\r
-\r
- @Override\r
- public void init(IEditorSite site, IEditorInput input) throws PartInitException {\r
- super.init(site, input);\r
-\r
- support = new ResourceEditorSupport(this, INPUT_VALIDATOR);\r
- support.activateValidation();\r
- try {\r
- getResourceInput().init(null);\r
- } catch (DatabaseException e) {\r
- throw new PartInitException("Failed to initialize " + input, e);\r
- }\r
-\r
- }\r
-\r
- protected IResourceEditorInput getResourceInput() {\r
- return (IResourceEditorInput) getEditorInput();\r
- }\r
-\r
- @Override\r
- public void createPartControl(Composite parent) {\r
- super.createPartControl(parent);\r
- updatePartName();\r
- }\r
-\r
- protected void updatePartName() {\r
- setPartName(getEditorInput().getName());\r
-\r
- Session session = Simantics.peekSession();\r
- if (session != null) {\r
- Supplier<Boolean> disposedCallback = this::isDisposed;\r
- session.asyncRequest(new TitleWithParentNameRequest(getResourceInput()),\r
- new TitleUpdater(getSite().getShell().getDisplay(), this::setPartName, disposedCallback));\r
- session.asyncRequest(new ToolTipRequest(getSite().getId(), getResourceInput()),\r
- new TitleUpdater(getSite().getShell().getDisplay(), this::setTitleToolTip, disposedCallback));\r
- }\r
- }\r
-\r
- @Override\r
- public void dispose() {\r
- disposed = true;\r
- if (support != null) {\r
- support.dispose();\r
- support = null;\r
- }\r
- super.dispose();\r
- }\r
-\r
- public boolean isDisposed() {\r
- return disposed;\r
- }\r
-\r
- public static String getEditorId() {\r
- return EDITOR_ID;\r
- }\r
-}\r
+package org.simantics.help.ui;
+
+import java.util.function.Supplier;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.simantics.Simantics;
+import org.simantics.db.Session;
+import org.simantics.db.common.request.ParametrizedRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.request.combinations.Combinators;
+import org.simantics.ui.workbench.IResourceEditorInput;
+import org.simantics.ui.workbench.ResourceEditorSupport;
+import org.simantics.ui.workbench.TitleUpdater;
+import org.simantics.ui.workbench.TitleWithParentNameRequest;
+import org.simantics.ui.workbench.ToolTipRequest;
+import org.simantics.ui.workbench.editor.input.InputValidationCombinators;
+
+import winterwell.markdown.editors.MarkdownEditor;
+
+public class HelpFileEditor extends MarkdownEditor {
+
+ private static final String EDITOR_ID = "org.simantics.help.ui.HelpFileEditor";
+
+ private boolean disposed;
+
+ private static final ParametrizedRead<IResourceEditorInput, Boolean> INPUT_VALIDATOR =
+ Combinators.compose(InputValidationCombinators.hasURI(), InputValidationCombinators.extractInputResource());
+
+ private ResourceEditorSupport support;
+
+ public HelpFileEditor() {
+ super();
+ setDocumentProvider(new HelpFileDocumentProvider());
+ }
+
+ @Override
+ public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+ super.init(site, input);
+
+ support = new ResourceEditorSupport(this, INPUT_VALIDATOR);
+ support.activateValidation();
+ try {
+ getResourceInput().init(null);
+ } catch (DatabaseException e) {
+ throw new PartInitException("Failed to initialize " + input, e);
+ }
+
+ }
+
+ protected IResourceEditorInput getResourceInput() {
+ return (IResourceEditorInput) getEditorInput();
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ updatePartName();
+ }
+
+ protected void updatePartName() {
+ setPartName(getEditorInput().getName());
+
+ Session session = Simantics.peekSession();
+ if (session != null) {
+ Supplier<Boolean> disposedCallback = this::isDisposed;
+ session.asyncRequest(new TitleWithParentNameRequest(getResourceInput()),
+ new TitleUpdater(getSite().getShell().getDisplay(), this::setPartName, disposedCallback));
+ session.asyncRequest(new ToolTipRequest(getSite().getId(), getResourceInput()),
+ new TitleUpdater(getSite().getShell().getDisplay(), this::setTitleToolTip, disposedCallback));
+ }
+ }
+
+ @Override
+ public void dispose() {
+ disposed = true;
+ if (support != null) {
+ support.dispose();
+ support = null;
+ }
+ super.dispose();
+ }
+
+ public boolean isDisposed() {
+ return disposed;
+ }
+
+ public static String getEditorId() {
+ return EDITOR_ID;
+ }
+}