]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Merge "Expose History REST API implementation to other plug-ins"
authorMarko Luukkainen <marko.luukkainen@semantum.fi>
Fri, 14 Sep 2018 10:43:53 +0000 (10:43 +0000)
committerGerrit Code Review <gerrit2@simantics>
Fri, 14 Sep 2018 10:43:53 +0000 (10:43 +0000)
bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StructuredProperty.java [new file with mode: 0644]
bundles/org.simantics.layer0/graph/Layer0.pgraph
bundles/org.simantics.layer0/graph/Layer0Literals.pgraph
bundles/org.simantics.modeling/src/org/simantics/modeling/SCLTypeUtils.java
bundles/org.simantics.scl.db/scl/Simantics/Variables.scl
bundles/org.simantics.ui/src/org/simantics/ui/workbench/ResourceEditorPart.java

diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StructuredProperty.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StructuredProperty.java
new file mode 100644 (file)
index 0000000..fa6469c
--- /dev/null
@@ -0,0 +1,10 @@
+package org.simantics.db.layer0.variable;
+
+/**
+ * Java interface for StructuredProperty SCL value type.
+ * 
+ * @author Tuukka Lehtonen
+ * @since 1.36.0
+ */
+public interface StructuredProperty {
+}
\ No newline at end of file
index 5fe74ec0175fd9e358bd724dc2e36f47672c2fdb..225a4f17ee79c075da4c75164749dec77de459dc 100644 (file)
@@ -22,6 +22,7 @@ L0.Entity : L0.Type
     >-- L0.identifier <R L0.HasProperty : L0.FunctionalRelation
         L0.HasLabel "Identifier"
         --> L0.GUID
+        ==> "GUID"
     >-- L0.typeURI <R L0.HasProperty : L0.FunctionalRelation
         L0.HasLabel "Type URI"
         --> L0.String
@@ -42,7 +43,7 @@ L0.Entity : L0.Type
     @L0.assert L0.Entity.methods
       _ : L0.Value
     
-L0.Entity.methods --> L0.Value <R L0.HasProperty : L0.FunctionalRelation
+L0.Entity.methods ==> "StructuredProperty" <R L0.HasProperty : L0.FunctionalRelation
   L0.domainProperties L0.Functions.methodsPropertyDomainProperties
   
 L0.Entity.method <R L0.HasProperty : L0.FunctionalRelation
index 329cfa12dc7576c302420de57bd1586b1517466f..08f6f27a819de56191fa197ace79976618b194db 100644 (file)
@@ -103,7 +103,7 @@ L0.Literal.FloatValidator <T L0.Value
 L0.Literal.DoubleValidator <T L0.Value
 
 L0.GUID <T L0.Literal
-    @L0.assert L0.HasValueType "(Long,Long)"
+    @L0.assert L0.HasValueType "GUID"
     @L0.assert L0.HasDataType ${ mostSigBits : Long, leastSigBits : Long }
     
 L0.TypeWithIdentifier <T L0.Entity
index 9632090e3acf342255dce3dc151ea9558479efc0..d0a777caa8ffbdf061c1f64b003ae24f2d4d3608 100644 (file)
@@ -60,6 +60,9 @@ public class SCLTypeUtils {
         TYPE_MAP.put("ByteArray", Types.BYTE_ARRAY);
         
         add((TCon)Types.RESOURCE);
+        add(Types.con("Simantics/GUID", "GUID")); // L0.GUID
+        add(Types.con("Simantics/Variables", "StructuredProperty")); // L0.methods
+        add(Types.con("Simantics/Variables", "ValueAccessor")); // L0.ValueAccessor
         add(Types.con("Simantics/Variables", "VariableMap"));
     }
     
index 12d06b76b0c5fff84d9af479cb33e7eb8d888366..43be6defbb6ee486957572caff2abe9d0a93f226 100644 (file)
@@ -96,6 +96,9 @@ importJava "org.simantics.db.layer0.function.All" where
 importJava "org.simantics.db.layer0.variable.VariableMap" where
     data VariableMap
 
+importJava "org.simantics.db.layer0.variable.StructuredProperty" where
+    data StructuredProperty
+
 importJava "org.simantics.db.layer0.variable.ResourceCollectionVariableMap" where
     @JavaName "<init>"
     createVariableMap :: [Resource] -> VariableMap
index 1cd72de635c2349fa3fec31241b25c76a55be0c7..ca06a5d7b5d538c9091fb8b71d7f45d26ad906d3 100644 (file)
@@ -20,7 +20,10 @@ import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchPartSite;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.internal.PartSite;
+import org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor;
 import org.eclipse.ui.part.EditorPart;
 import org.simantics.Simantics;
 import org.simantics.db.Resource;
@@ -98,11 +101,25 @@ public abstract class ResourceEditorPart extends EditorPart implements IResource
      * @param partName
      */
     protected void safeSetPartName(String partName) {
-        if (!disposed) {
+        if (!disposed && checkCompatibilityPartNotBeingDisposed()) { // this is to fix bug https://gitlab.simantics.org/simantics/platform/issues/117
             setPartName(partName);
         }
     }
 
+    @SuppressWarnings("restriction")
+    private boolean checkCompatibilityPartNotBeingDisposed() {
+        IWorkbenchPartSite site = getSite();
+        if (site instanceof PartSite) {
+            PartSite partSite = (PartSite) getSite();
+            Object object = partSite.getModel().getObject();
+            if (object instanceof CompatibilityEditor) {
+                CompatibilityEditor editor = (CompatibilityEditor) object;
+                return !editor.isBeingDisposed();
+            }
+        }
+        return true;
+    }
+
     /**
      * Safely sets title tooltip for parts whose IEditorInput is not yet disposed (e.g.
      * removed from database)