-/*******************************************************************************\r
- * Copyright (c) 2012 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.modeling.ui.componentTypeEditor;\r
-\r
-import java.util.function.Supplier;\r
-\r
-import org.eclipse.jface.resource.JFaceResources;\r
-import org.eclipse.jface.resource.LocalResourceManager;\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.editors.text.TextEditor;\r
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;\r
-import org.eclipse.ui.texteditor.StatusLineContributionItem;\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.scl.ui.editor.SCLSourceViewerConfigurationNew;\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
-\r
-/**\r
- * @author Antti Villberg;\r
- * @author Hannu Niemistö\r
- */\r
-// FIXME: SCLQueryEditor should extend SCLModuleEditor\r
-public class SCLQueryEditor extends TextEditor {\r
-\r
- private boolean disposed = false;\r
-\r
- private ParametrizedRead<IResourceEditorInput, Boolean> INPUT_VALIDATOR =\r
- Combinators.compose(\r
- InputValidationCombinators.hasURI(),\r
- InputValidationCombinators.extractInputResource()\r
- );\r
-\r
- private ResourceEditorSupport support;\r
- protected LocalResourceManager resourceManager;\r
- \r
- public SCLQueryEditor() {\r
- super();\r
- //showOverviewRuler();\r
- setDocumentProvider(new SCLQueryEditorDocumentProvider(this));\r
- resourceManager = new LocalResourceManager(JFaceResources.getResources());\r
- SCLSourceViewerConfigurationNew sourceViewerConfiguration = new SCLSourceViewerConfigurationNew(resourceManager);\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
- 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
- protected IResourceEditorInput getResourceInput() {\r
- return (IResourceEditorInput) getEditorInput();\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
- updatePartName();\r
- }\r
-\r
- private void updatePartName() {\r
- setPartName(getEditorInput().getName());\r
-\r
- Session session = Simantics.peekSession();\r
- if (session != null) {\r
- Supplier<Boolean> disposedCallback = () -> disposed;\r
- session.asyncRequest(\r
- new TitleWithParentNameRequest(getResourceInput()),\r
- new TitleUpdater(getSite().getShell().getDisplay(), this::setPartName, disposedCallback));\r
- session.asyncRequest(\r
- 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
- resourceManager.dispose();\r
- }\r
-\r
+/*******************************************************************************
+ * Copyright (c) 2012 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.modeling.ui.componentTypeEditor;
+
+import java.util.function.Supplier;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.resource.LocalResourceManager;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+import org.eclipse.ui.texteditor.StatusLineContributionItem;
+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.scl.ui.editor.SCLSourceViewerConfigurationNew;
+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;
+
+
+/**
+ * @author Antti Villberg;
+ * @author Hannu Niemistö
+ */
+// FIXME: SCLQueryEditor should extend SCLModuleEditor
+public class SCLQueryEditor extends TextEditor {
+
+ private boolean disposed = false;
+
+ private ParametrizedRead<IResourceEditorInput, Boolean> INPUT_VALIDATOR =
+ Combinators.compose(
+ InputValidationCombinators.hasURI(),
+ InputValidationCombinators.extractInputResource()
+ );
+
+ private ResourceEditorSupport support;
+ protected LocalResourceManager resourceManager;
+
+ public SCLQueryEditor() {
+ super();
+ //showOverviewRuler();
+ setDocumentProvider(new SCLQueryEditorDocumentProvider(this));
+ resourceManager = new LocalResourceManager(JFaceResources.getResources());
+ SCLSourceViewerConfigurationNew sourceViewerConfiguration = new SCLSourceViewerConfigurationNew(resourceManager);
+ setSourceViewerConfiguration(sourceViewerConfiguration);
+ }
+
+ @Override
+ public boolean isTabsToSpacesConversionEnabled() {
+ return true;
+ }
+
+ @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);
+ StatusLineContributionItem statusLineContribution = new StatusLineContributionItem(
+ ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION,
+ true, 14);
+ setStatusField(statusLineContribution,
+ ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION);
+ getEditorSite().getActionBars().getStatusLineManager().add(statusLineContribution);
+ getEditorSite().getActionBars().updateActionBars();
+ updatePartName();
+ }
+
+ private void updatePartName() {
+ setPartName(getEditorInput().getName());
+
+ Session session = Simantics.peekSession();
+ if (session != null) {
+ Supplier<Boolean> disposedCallback = () -> disposed;
+ 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();
+ resourceManager.dispose();
+ }
+
}
\ No newline at end of file