X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.help.ui%2Fsrc%2Forg%2Fsimantics%2Fhelp%2Fui%2FHelpFileEditor.java;h=1626a1b590ed7e8ef6f277bd590d1d2913270214;hp=2b5eacadea90d02060628a9bdfd1c81dd612b920;hb=47269fe0acb894f346810417d950a1ab59cdc0ea;hpb=80950353e90c09d866b9748a0ad3ddd726d6f3b4 diff --git a/bundles/org.simantics.help.ui/src/org/simantics/help/ui/HelpFileEditor.java b/bundles/org.simantics.help.ui/src/org/simantics/help/ui/HelpFileEditor.java index 2b5eacade..1626a1b59 100644 --- a/bundles/org.simantics.help.ui/src/org/simantics/help/ui/HelpFileEditor.java +++ b/bundles/org.simantics.help.ui/src/org/simantics/help/ui/HelpFileEditor.java @@ -1,93 +1,93 @@ -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 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 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; - } -} +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"; //$NON-NLS-1$ + + private boolean disposed; + + private static final ParametrizedRead 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); //$NON-NLS-1$ + } + + } + + 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 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; + } +}