From c859696796101970d99eb48011961a2b02fc4d2a Mon Sep 17 00:00:00 2001 From: niemisto Date: Mon, 15 Aug 2011 12:48:20 +0000 Subject: [PATCH] git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@21738 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 65484 -> 65598 bytes .../graph/Sysdyn.pgraph | 24 ++++++++++-------- .../graph/WorkModel.pgraph | 7 ++--- .../org/simantics/sysdyn/SysdynResource.java | 6 +++++ .../ConsumeUnnecessaryEntersAction.java | 6 +++-- .../browser/actions/NewModuleTypeAction.java | 8 +++--- .../browser/contributions/InputLabeler.java | 6 +++-- .../ui/browser/contributions/Model.java | 2 +- .../browser/contributions/ModuleLabeler.java | 6 +++-- .../contributions/VariableLabeler.java | 6 +++-- .../OpenDiagramFromConfigurationAdapter.java | 9 ++++--- .../ui/editor/SysdynCreationInstruction.java | 6 +++-- .../sysdyn/ui/editor/SysdynEditorInput.java | 5 +++- .../ui/handlers/ImportModelHandler.java | 7 ++--- .../ui/handlers/NewModuleNodeHandler.java | 8 +++--- .../DefaultRealizationVirtualGraph.java | 2 +- .../sysdyn/ui/project/DefaultVariable.java | 8 +++--- .../sysdyn/ui/project/SysdynProject.java | 10 +++++--- .../ui/wizards/WizardModelsImportPage.java | 10 +++++--- .../sysdyn/adapter/ChildVariable.java | 5 ++-- .../simantics/sysdyn/adapter/RunVariable.java | 4 ++- .../sysdyn/mdlImport/mdlElements/Model.java | 10 +++++--- .../sysdyn/representation/Variable.java | 2 +- 23 files changed, 99 insertions(+), 58 deletions(-) diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 50737066d533b6ca417e6051edf380abf017d515..f9a83dc7cdb6e5cbba3696e0f7c55b67a900823a 100644 GIT binary patch literal 65598 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 literal 65484 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 +L0X = G2D = STR = DIA = @@ -57,7 +58,7 @@ SYSDYN.HasSolver +L0X = G2D = STR = DIA = @@ -198,7 +199,7 @@ WorkModelConfigurationDiagram : SYSDYN.ConfigurationDiagram { @@ -23,12 +24,13 @@ public class InputLabeler extends LabelerContributor{ @Override public String getLabel(ReadGraph graph, InputNode var) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); Resource varres = var.data; StringBuilder sb = new StringBuilder(); for(Resource r : graph.getObjects(varres, l0.HasName)) sb.append(graph.getValue(r)); - if(graph.isInstanceOf(varres, l0.Realization)) { - varres = graph.getPossibleObject(varres, l0.Represents); + if(graph.isInstanceOf(varres, L0X.Realization)) { + varres = graph.getPossibleObject(varres, L0X.Represents); if(varres == null) return sb.toString(); } sb.append(" : "); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/Model.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/Model.java index 2c89a4b2..0ff58411 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/Model.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/Model.java @@ -37,7 +37,7 @@ public class Model extends ViewpointContributor { ArrayList> result = new ArrayList>(); Layer0 l0 = Layer0.getInstance(graph); - Resource baseRealization = graph.syncRequest(new PossibleObject(model.data, l0.HasBaseRealization)); + Resource baseRealization = graph.syncRequest(new PossibleObject(model.data, L0X.HasBaseRealization)); if (baseRealization != null) { try { String URI = graph.getURI(baseRealization); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/ModuleLabeler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/ModuleLabeler.java index 41e82c00..6c268098 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/ModuleLabeler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/ModuleLabeler.java @@ -16,6 +16,7 @@ import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; import org.simantics.sysdyn.ui.browser.nodes.ModuleNode; public class ModuleLabeler extends LabelerContributor{ @@ -23,12 +24,13 @@ public class ModuleLabeler extends LabelerContributor{ @Override public String getLabel(ReadGraph graph, ModuleNode module) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); Resource resource = module.data; StringBuilder sb = new StringBuilder(); for(Resource r : graph.getObjects(resource, l0.HasName)) sb.append(graph.getValue(r)); - if(graph.isInstanceOf(resource, l0.Realization)) { - resource = graph.getPossibleObject(resource, l0.Represents); + if(graph.isInstanceOf(resource, L0X.Realization)) { + resource = graph.getPossibleObject(resource, L0X.Represents); if(resource == null) return sb.toString(); } sb.append(" : "); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/VariableLabeler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/VariableLabeler.java index 625f67d3..6302ad0d 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/VariableLabeler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/VariableLabeler.java @@ -16,6 +16,7 @@ import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; import org.simantics.sysdyn.ui.browser.nodes.VariableNode; public class VariableLabeler extends LabelerContributor>{ @@ -23,12 +24,13 @@ public class VariableLabeler extends LabelerContributor> @Override public String getLabel(ReadGraph graph, VariableNode var) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); Resource varres = var.data; StringBuilder sb = new StringBuilder(); for(Resource r : graph.getObjects(varres, l0.HasName)) sb.append(graph.getValue(r)); - if(graph.isInstanceOf(varres, l0.Realization)) { - varres = graph.getPossibleObject(varres, l0.Represents); + if(graph.isInstanceOf(varres, L0X.Realization)) { + varres = graph.getPossibleObject(varres, L0X.Represents); if(varres == null) return sb.toString(); } sb.append(" : "); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/OpenDiagramFromConfigurationAdapter.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/OpenDiagramFromConfigurationAdapter.java index 90c4b542..433a3b36 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/OpenDiagramFromConfigurationAdapter.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/OpenDiagramFromConfigurationAdapter.java @@ -22,6 +22,7 @@ import org.simantics.layer0.Layer0; import org.simantics.modeling.ComponentUtils; import org.simantics.modeling.ModelingResources; import org.simantics.modeling.ui.Activator; +import org.simantics.operation.Layer0X; import org.simantics.structural.stubs.StructuralResource2; import org.simantics.structural2.StructuralVariables; import org.simantics.sysdyn.SysdynResource; @@ -51,8 +52,8 @@ public class OpenDiagramFromConfigurationAdapter extends AbstractResourceEditorA Resource componentType = g.getSingleObject(r, mr.SymbolToComponentType); r = g.getSingleObject(componentType, sr2.IsDefinedBy); } - Layer0 l0 = Layer0.getInstance(g); - Resource represents = g.getPossibleObject(r, l0.Represents); + Layer0X L0X = Layer0X.getInstance(g); + Resource represents = g.getPossibleObject(r, L0X.Represents); if(represents != null){ if(g.isInstanceOf(represents, sr.Configuration)) { r = represents; @@ -69,7 +70,7 @@ public class OpenDiagramFromConfigurationAdapter extends AbstractResourceEditorA @Override public void run(ReadGraph g) throws DatabaseException { Resource cr = r; - Layer0 l0 = Layer0.getInstance(g); + Layer0X L0X = Layer0X.getInstance(g); if(g.isInheritedFrom(r, SysdynResource.getInstance(g).ModuleSymbol)) { ModelingResources mr = ModelingResources.getInstance(g); StructuralResource2 sr2 = StructuralResource2.getInstance(g); @@ -77,7 +78,7 @@ public class OpenDiagramFromConfigurationAdapter extends AbstractResourceEditorA Resource configuration = g.getSingleObject(componentType, sr2.IsDefinedBy); cr = configuration; } else { - Resource represents = g.getPossibleObject(r, l0.Represents); + Resource represents = g.getPossibleObject(r, L0X.Represents); if(represents != null && g.isInstanceOf(represents, SysdynResource.getInstance(g).Configuration)){ cr = represents; } else { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynCreationInstruction.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynCreationInstruction.java index 3eb1ffe0..f465a16e 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynCreationInstruction.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynCreationInstruction.java @@ -22,6 +22,7 @@ import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.mapping.constraint.instructions.TypedBracketInstruction.CreationInstruction; import org.simantics.modeling.services.ComponentNamingUtil; import org.simantics.modeling.services.NamingException; +import org.simantics.operation.Layer0X; import org.simantics.project.IProject; public class SysdynCreationInstruction extends CreationInstruction { @@ -46,13 +47,14 @@ public class SysdynCreationInstruction extends CreationInstruction { Resource configuration = (Resource) bindings[lConfiguration]; Layer0 l0 = Layer0.getInstance(g); - + Layer0X L0X = Layer0X.getInstance(g); + try { String proposition = URIStringUtils.escape(ComponentNamingUtil.findFreshInstanceName(g, project, configurationRoot, configuration, componentType)); Resource result = GraphUtils.create(g, l0.HasName, proposition ); - g.claim(result, l0.Represents, result); + g.claim(result, L0X.Represents, result); return result; } catch (NamingException e1) { throw new DatabaseException(e1); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynEditorInput.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynEditorInput.java index 7789c2af..67b642d2 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynEditorInput.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/SysdynEditorInput.java @@ -18,6 +18,7 @@ import org.simantics.db.layer0.variable.Variables; import org.simantics.db.service.LifecycleSupport; import org.simantics.db.service.SerialisationSupport; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; import org.simantics.ui.SimanticsUI; import org.simantics.ui.icons.ImageDescriptorProvider; import org.simantics.ui.workbench.ResourceEditorInput2; @@ -381,9 +382,11 @@ public class SysdynEditorInput extends ResourceEditorInput2 { Layer0 L0 = Layer0.getInstance(g); // 2. Validate modelURI if (getModelURI() != null) { + Layer0X L0X = Layer0X.getInstance(g); + // 3. Validate RVI Resource model = g.getResource(modelURI); - Resource baseRealization = g.getPossibleObject(model, L0.HasBaseRealization); + Resource baseRealization = g.getPossibleObject(model, L0X.HasBaseRealization); Variable modelVariable = Variables.getVariable(g, g.getURI(baseRealization)); modelVariable.browse(g, getRVI()); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java index 36870aa5..6676e965 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java @@ -40,6 +40,7 @@ import org.simantics.graph.representation.TransferableGraph1; import org.simantics.layer0.Layer0; import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.modeling.ModelingResources; +import org.simantics.operation.Layer0X; import org.simantics.simulation.ontology.SimulationResource; import org.simantics.spreadsheet.resource.SpreadsheetResource; import org.simantics.structural.stubs.StructuralResource2; @@ -157,11 +158,11 @@ public class ImportModelHandler extends AbstractHandler { * @param model Imported model */ private static void updateOldConfigurationToBaseRealization(WriteGraph graph, Resource model) { - Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); try { Resource configuration = graph.getPossibleObject(model, SimulationResource.getInstance(graph).HasConfiguration); - if(configuration != null && !graph.hasStatement(configuration, l0.IsBaseRealizationOf, model)) - graph.claim(configuration, l0.IsBaseRealizationOf, model); + if(configuration != null && !graph.hasStatement(configuration, L0X.IsBaseRealizationOf, model)) + graph.claim(configuration, L0X.IsBaseRealizationOf, model); } catch (DatabaseException e) { e.printStackTrace(); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewModuleNodeHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewModuleNodeHandler.java index a6c4e6c0..e6ec15a6 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewModuleNodeHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewModuleNodeHandler.java @@ -27,6 +27,7 @@ import org.simantics.diagram.stubs.DiagramResource; import org.simantics.layer0.Layer0; import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.modeling.ModelingResources; +import org.simantics.operation.Layer0X; import org.simantics.structural.stubs.StructuralResource2; import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.browser.nodes.ModulesNode; @@ -54,6 +55,7 @@ public class NewModuleNodeHandler extends AbstractHandler { // Same as in SysdynProject.java. Should use the same code, not copy. SysdynResource sr = SysdynResource.getInstance(g); Layer0 l0 = Layer0.getInstance(g); + Layer0X L0X = Layer0X.getInstance(g); ModelingResources mr = ModelingResources.getInstance(g); StructuralResource2 sr2 = StructuralResource2.getInstance(g); DiagramResource dr = DiagramResource.getInstance(g); @@ -81,14 +83,14 @@ public class NewModuleNodeHandler extends AbstractHandler { // Remove default mapping and add sysdyn mapping - for(Resource trigger : g.getObjects(diagram, l0.HasTrigger)) { + for(Resource trigger : g.getObjects(diagram, L0X.HasTrigger)) { if(g.isInstanceOf(trigger, mr.DiagramToCompositeMapping)) { - g.deny(diagram, l0.HasTrigger, trigger); + g.deny(diagram, L0X.HasTrigger, trigger); } } Resource mapping = g.newResource(); g.claim(mapping, l0.InstanceOf, null, sr.DiagramToCompositeMapping); - g.claim(diagram, l0.HasTrigger, mapping); + g.claim(diagram, L0X.HasTrigger, mapping); Resource moduleSymbol = g.newResource(); g.claimLiteral(moduleSymbol, l0.HasName, name + " Symbol"); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultRealizationVirtualGraph.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultRealizationVirtualGraph.java index f8b1cc35..653aa2e1 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultRealizationVirtualGraph.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultRealizationVirtualGraph.java @@ -36,7 +36,7 @@ public class DefaultRealizationVirtualGraph extends RealizationVirtualGraph { int modelNode = context.getIndex(model); int defaultsNode = context.getIndex(defaultsResource); graph.claim(model, L0.ConsistsOf, null, defaultsResource); - graph.claim(model, L0.HasBaseRealization, null, defaultsResource); + graph.claim(model, L0X.HasBaseRealization, null, defaultsResource); // undiscovered.put(defaultsNode, new ResourceData(modelNode, configuration, L0.Realization, "BaseRealization", null, null)); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultVariable.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultVariable.java index c2c3f30f..57d52457 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultVariable.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/DefaultVariable.java @@ -24,6 +24,7 @@ import org.simantics.db.common.utils.OrderedSetUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.ResourceVariable; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; import org.simantics.sysdyn.SysdynResource; public class DefaultVariable extends ResourceVariable { @@ -35,9 +36,9 @@ public class DefaultVariable extends ResourceVariable { @SuppressWarnings("unchecked") @Override public T getValue(ReadGraph graph) throws DatabaseException { - Layer0 b = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); SysdynResource sr = SysdynResource.getInstance(graph); - Resource represents = graph.getPossibleObject(resource, b.Represents); + Resource represents = graph.getPossibleObject(resource, L0X.Represents); if(represents == null) return null; //FIXME: doesn't support multiple expressions Resource expressions = graph.getPossibleObject(represents, sr.HasExpressions); @@ -61,10 +62,11 @@ public class DefaultVariable extends ResourceVariable { @Override public void setValue(WriteGraph graph, Object object, Binding binding) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); SysdynResource sr = SysdynResource.getInstance(graph); // if(!Bindings.DOUBLE.equals(binding)) return; // if(!MutableDoubleBinding.INSTANCE.equals(binding)) return; - Resource represents = graph.getPossibleObject(resource, l0.Represents); + Resource represents = graph.getPossibleObject(resource, L0X.Represents); if(represents == null) return; //FIXME: doesn't support multiple expressions Resource expressions = graph.getPossibleObject(represents, sr.HasExpressions); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java index a5e75d86..a4c3175d 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/project/SysdynProject.java @@ -46,6 +46,7 @@ import org.simantics.modeling.ModelingResources; import org.simantics.modeling.ModelingUtils; import org.simantics.modeling.services.CaseInsensitiveComponentNamingStrategy2; import org.simantics.modeling.services.ComponentNamingStrategy; +import org.simantics.operation.Layer0X; import org.simantics.project.IProject; import org.simantics.project.ProjectElementType; import org.simantics.project.ProjectElements; @@ -113,6 +114,7 @@ public class SysdynProject extends AbstractProjectFeature { public void run(WriteGraph g, Resource library, Callback callback, Callback errorCallback) { try { Layer0 l0 = Layer0.getInstance(g); + Layer0X L0X = Layer0X.getInstance(g); SysdynResource sr = SysdynResource.getInstance(g); SpreadsheetResource SHEET = SpreadsheetResource.getInstance(g); ModelingUtils mu = new ModelingUtils(g); @@ -129,7 +131,7 @@ public class SysdynProject extends AbstractProjectFeature { Resource conf = GraphUtils.create2(g, sr.Configuration, l0.PartOf, model, - l0.IsBaseRealizationOf, model, + L0X.IsBaseRealizationOf, model, l0.HasName, modelName ); @@ -153,14 +155,14 @@ public class SysdynProject extends AbstractProjectFeature { ModelingResources mr = ModelingResources.getInstance(g); // Remove default mapping and add sysdyn mapping - for(Resource trigger : g.getObjects(diagram, l0.HasTrigger)) { + for(Resource trigger : g.getObjects(diagram, L0X.HasTrigger)) { if(g.isInstanceOf(trigger, mr.DiagramToCompositeMapping)) { - g.deny(diagram, l0.HasTrigger, trigger); + g.deny(diagram, L0X.HasTrigger, trigger); } } Resource mapping = g.newResource(); g.claim(mapping, l0.InstanceOf, null, sr.DiagramToCompositeMapping); - g.claim(diagram, l0.HasTrigger, mapping); + g.claim(diagram, L0X.HasTrigger, mapping); Resource report = GraphUtils.create2(g, DOC.Report, DOC.HasDocumentation, "===Report==="); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/WizardModelsImportPage.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/WizardModelsImportPage.java index 62f43b54..e7c447f6 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/WizardModelsImportPage.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/WizardModelsImportPage.java @@ -38,6 +38,7 @@ import org.simantics.graph.representation.TransferableGraph1; import org.simantics.layer0.Layer0; import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.modeling.ModelingResources; +import org.simantics.operation.Layer0X; import org.simantics.simulation.ontology.SimulationResource; import org.simantics.spreadsheet.resource.SpreadsheetResource; import org.simantics.structural.stubs.StructuralResource2; @@ -282,11 +283,11 @@ public class WizardModelsImportPage extends WizardPage{ * @param model Imported model */ private static void updateOldConfigurationToBaseRealization(WriteGraph graph, Resource model) { - Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); try { Resource configuration = graph.getPossibleObject(model, SimulationResource.getInstance(graph).HasConfiguration); - if(configuration != null && !graph.hasStatement(configuration, l0.IsBaseRealizationOf, model)) - graph.claim(configuration, l0.IsBaseRealizationOf, model); + if(configuration != null && !graph.hasStatement(configuration, L0X.IsBaseRealizationOf, model)) + graph.claim(configuration, L0X.IsBaseRealizationOf, model); } catch (DatabaseException e) { e.printStackTrace(); } @@ -392,6 +393,7 @@ public class WizardModelsImportPage extends WizardPage{ private static Resource createSheet(WriteGraph graph, Resource book, String name, String[] colNames, int[] colWidths) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); SpreadsheetResource sr = SpreadsheetResource.getInstance(graph); Resource result = graph.newResource(); @@ -433,7 +435,7 @@ public class WizardModelsImportPage extends WizardPage{ graph.addLiteral(newCell, sr.DoubleArrayCell_HasWidth, sr.DoubleArrayCell_HasWidth_Inverse, L0.Integer, 10, Bindings.INTEGER); graph.addLiteral(newCell, sr.HasLocation, sr.HasLocation_Inverse, L0.String, "B2", Bindings.STRING); graph.addLiteral(newCell, sr.DoubleArrayCell_HasDoubleArray, sr.DoubleArrayCell_HasDoubleArray_Inverse, L0.DoubleArray, doubles, Bindings.DOUBLE_ARRAY); - graph.claim(result, L0.HasChildVariables, L0.HasChildVariables_Inverse, newCell); + graph.claim(result, L0X.HasChildVariables, L0X.HasChildVariables_Inverse, newCell); } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java index 8e93bdfa..a68c2eef 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java @@ -28,6 +28,7 @@ import org.simantics.db.layer0.variable.DatatypePropertyVariable; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; import org.simantics.sysdyn.SysdynResource; public class ChildVariable extends AbstractChildVariable { @@ -105,8 +106,8 @@ public class ChildVariable extends AbstractChildVariable { @Override public Resource getRepresents(ReadGraph graph) throws DatabaseException { - Layer0 L0 = Layer0.getInstance(graph); - Resource represents = graph.getPossibleObject(resource, L0.Represents); + Layer0X L0X = Layer0X.getInstance(graph); + Resource represents = graph.getPossibleObject(resource, L0X.Represents); if(represents != null) return represents; else return resource; } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/RunVariable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/RunVariable.java index c847527b..867e9dfe 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/RunVariable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/RunVariable.java @@ -22,6 +22,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.StandardGraphChildVariable; import org.simantics.db.layer0.variable.Variable; import org.simantics.layer0.Layer0; +import org.simantics.operation.Layer0X; public class RunVariable extends StandardGraphChildVariable { @@ -53,9 +54,10 @@ public class RunVariable extends StandardGraphChildVariable { Resource getConfiguration(ReadGraph graph) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); Resource experiment = graph.getPossibleObject(resource, L0.PartOf); Resource model = graph.getPossibleObject(experiment, L0.PartOf); - return graph.getPossibleObject(model, L0.HasBaseRealization); + return graph.getPossibleObject(model, L0X.HasBaseRealization); } } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java index 1782b213..017d9d77 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/mdlImport/mdlElements/Model.java @@ -23,6 +23,7 @@ import org.simantics.document.DocumentResource; import org.simantics.layer0.Layer0; import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.modeling.ModelingResources; +import org.simantics.operation.Layer0X; import org.simantics.simulation.ontology.SimulationResource; import org.simantics.sysdyn.SysdynResource; import org.simantics.utils.datastructures.ArrayMap; @@ -217,6 +218,7 @@ public class Model implements IWriteableMDLObject { try { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); + Layer0X L0X = Layer0X.getInstance(graph); SimulationResource simu = SimulationResource.getInstance(graph); DocumentResource DOC = DocumentResource.getInstance(graph); @@ -255,17 +257,17 @@ public class Model implements IWriteableMDLObject { ModelingResources mr = ModelingResources.getInstance(graph); // Remove default mapping and add sysdyn mapping - for(Resource trigger : graph.getObjects(diagram, l0.HasTrigger)) { + for(Resource trigger : graph.getObjects(diagram, L0X.HasTrigger)) { if(graph.isInstanceOf(trigger, mr.DiagramToCompositeMapping)) { - graph.deny(diagram, l0.HasTrigger, trigger); + graph.deny(diagram, L0X.HasTrigger, trigger); } } Resource mapping = graph.newResource(); graph.claim(mapping, l0.InstanceOf, null, sr.DiagramToCompositeMapping); - graph.claim(diagram, l0.HasTrigger, mapping); + graph.claim(diagram, L0X.HasTrigger, mapping); graph.claim(model, simu.HasConfiguration, conf); - graph.claim(model, l0.HasBaseRealization, conf); + graph.claim(model, L0X.HasBaseRealization, conf); Resource report = GraphUtils.create2(graph, DOC.Report, DOC.HasDocumentation, "===Report==="); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java index 6ec5f47f..b7f37b95 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java @@ -17,7 +17,7 @@ import org.simantics.sysdyn.representation.expressions.Expressions; public abstract class Variable implements IElement { - @RelatedValue("http://www.simantics.org/Layer0-1.0/HasType") + @RelatedValue("http://www.simantics.org/Sysdyn-1.0/Variable/Type") protected String type; @RelatedValue("http://www.simantics.org/Layer0-1.0/HasName") -- 2.47.1