--- /dev/null
+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
>-- 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
@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
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
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"));
}
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
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;
* @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)