From 2aad19cded3191f69025bdad7553bee1e78e04c5 Mon Sep 17 00:00:00 2001 From: lempinen Date: Wed, 5 Sep 2012 04:59:43 +0000 Subject: [PATCH] A very large commit, sorry about that. Ontology version bump and a lot of documentation changes. Mainly: documentation using SCL, changed url format to url#document to support history. Session management for handling input contexts. (refs #3511) git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@25642 ac1ea38d-2e2b-0410-8846-a27921b304fc --- .../META-INF/MANIFEST.MF | 2 +- org.simantics.sysdyn.ontology/graph.tg | Bin 66752 -> 66685 bytes .../graph/ChartViewpoints.pgraph | 14 +++++----- .../graph/GeneralSymbols.pgraph | 6 ++--- .../graph/Profiles.pgraph | 6 ++--- .../graph/PropertyViewpoints.pgraph | 4 +-- .../graph/Sysdyn.pgraph | 24 +++++++++--------- .../graph/SysdynFunctions.pgraph | 2 +- .../graph/SysdynModelingViewpoint.pgraph | 20 +++++++-------- .../graph/Validation.pgraph | 6 ++--- .../graph/VensimFunctions.pgraph | 2 +- .../graph/WorkModel.pgraph | 16 ++++++------ org.simantics.sysdyn.ui/adapters.xml | 2 +- .../models/WizardModelsImportPage.java | 2 +- org.simantics.sysdyn/META-INF/MANIFEST.MF | 3 ++- .../src/org/simantics/sysdyn/Functions.java | 6 ++++- .../sysdyn/adapter/IndexVariable.java | 2 +- .../simantics/sysdyn/representation/Book.java | 3 ++- .../sysdyn/representation/Sheet.java | 3 ++- 19 files changed, 65 insertions(+), 58 deletions(-) diff --git a/org.simantics.jfreechart.ontology/META-INF/MANIFEST.MF b/org.simantics.jfreechart.ontology/META-INF/MANIFEST.MF index c792a6a0..abb87370 100644 --- a/org.simantics.jfreechart.ontology/META-INF/MANIFEST.MF +++ b/org.simantics.jfreechart.ontology/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: JFreeChart Bundle-SymbolicName: org.simantics.jfreechart.ontology -Bundle-Version: 0.1.0.qualifier +Bundle-Version: 1.0.0.qualifier Require-Bundle: org.simantics.layer0, org.simantics.layer0x.ontology;bundle-version="1.0.0", org.simantics.g2d.ontology;bundle-version="1.0.0", diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index a35fda800471f4c77ac875dfd58d83a7a1aa027a..eae36026d617dd02a71ebcd2c083fc3afd36ff32 100644 GIT binary patch literal 66685 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 DK}p78 literal 66752 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 z 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 diff --git a/org.simantics.sysdyn.ontology/graph/ChartViewpoints.pgraph b/org.simantics.sysdyn.ontology/graph/ChartViewpoints.pgraph index a0d99b4b..6c8ab37b 100644 --- a/org.simantics.sysdyn.ontology/graph/ChartViewpoints.pgraph +++ b/org.simantics.sysdyn.ontology/graph/ChartViewpoints.pgraph @@ -1,10 +1,10 @@ -L0 = -VP = -PROJECT = -MOD = -IMAGE = -COLOR = -ACT = +L0 = +VP = +PROJECT = +MOD = +IMAGE = +COLOR = +ACT = JFREE = SYSDYN = diff --git a/org.simantics.sysdyn.ontology/graph/GeneralSymbols.pgraph b/org.simantics.sysdyn.ontology/graph/GeneralSymbols.pgraph index 74b383a7..0f6a24a3 100644 --- a/org.simantics.sysdyn.ontology/graph/GeneralSymbols.pgraph +++ b/org.simantics.sysdyn.ontology/graph/GeneralSymbols.pgraph @@ -1,6 +1,6 @@ -L0 = -G2D = -DIA = +L0 = +G2D = +DIA = SYSDYN = GENERAL = SYSDYN.SymbolReferences.GeneralSymbols : DIA.SymbolReferenceLibrary diff --git a/org.simantics.sysdyn.ontology/graph/Profiles.pgraph b/org.simantics.sysdyn.ontology/graph/Profiles.pgraph index 45a75dfc..fc537461 100644 --- a/org.simantics.sysdyn.ontology/graph/Profiles.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Profiles.pgraph @@ -1,6 +1,6 @@ -L0 = -L0X = -DIA = +L0 = +L0X = +DIA = SYSDYN = PROFILES = SYSDYN.Profiles : L0.Library diff --git a/org.simantics.sysdyn.ontology/graph/PropertyViewpoints.pgraph b/org.simantics.sysdyn.ontology/graph/PropertyViewpoints.pgraph index e4bc5db4..c7d1d53b 100644 --- a/org.simantics.sysdyn.ontology/graph/PropertyViewpoints.pgraph +++ b/org.simantics.sysdyn.ontology/graph/PropertyViewpoints.pgraph @@ -1,5 +1,5 @@ -L0 = -VP = +L0 = +VP = SYSDYN = ///////////////////////////////// diff --git a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph index e3f629d7..04e94d09 100644 --- a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph @@ -1,13 +1,13 @@ -L0 = -L0X = -G2D = -STR = -DIA = -SIMU = -MOD = -PROJ = +L0 = +L0X = +G2D = +STR = +DIA = +SIMU = +MOD = +PROJ = JFREE = -SHEET = +SHEET = //##################################################################### // Defines ontology and attaches it to SimanticsDomain @@ -21,9 +21,9 @@ SYSDYN.ImportedOntologies : PROJ.NamespaceRequirement L0.HasDescription "Specifies the ontologies required by a Sysdyn project." PROJ.RequiresNamespace "http://www.simantics.org/Sysdyn-1.1" : L0.URI - "http://www.simantics.org/Layer0-1.0" : L0.URI - "http://www.simantics.org/Documentation-1.0" : L0.URI // Experimental documentation tool - "http://www.simantics.org/SelectionView-1.1" : L0.URI + "http://www.simantics.org/Layer0-1.1" : L0.URI +// "http://www.simantics.org/Documentation-1.1" : L0.URI // Experimental documentation tool + "http://www.simantics.org/SelectionView-1.2" : L0.URI SYSDYN.SharedFunctionOntology +L0 = SYSDYN = FL = : SYSDYN.SysdynModelicaFunctionLibrary diff --git a/org.simantics.sysdyn.ontology/graph/SysdynModelingViewpoint.pgraph b/org.simantics.sysdyn.ontology/graph/SysdynModelingViewpoint.pgraph index 7836ac25..8267cfa4 100644 --- a/org.simantics.sysdyn.ontology/graph/SysdynModelingViewpoint.pgraph +++ b/org.simantics.sysdyn.ontology/graph/SysdynModelingViewpoint.pgraph @@ -1,14 +1,14 @@ -L0 = -VP = -SIMU = -PROJECT = -IMAGE = -ACT = -MOD = -STR = +L0 = +VP = +SIMU = +PROJECT = +IMAGE = +ACT = +MOD = +STR = SYSDYN = -SILK = -SHEET = +SILK = +SHEET = JFREE = diff --git a/org.simantics.sysdyn.ontology/graph/Validation.pgraph b/org.simantics.sysdyn.ontology/graph/Validation.pgraph index b44e5754..7aac4bab 100644 --- a/org.simantics.sysdyn.ontology/graph/Validation.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Validation.pgraph @@ -1,6 +1,6 @@ -L0 = -L0X = -ISSUE = +L0 = +L0X = +ISSUE = SYSDYN = VALIDATIONS = SYSDYN.Validations : L0.Library diff --git a/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph b/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph index ee392f50..3e097bc5 100644 --- a/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph +++ b/org.simantics.sysdyn.ontology/graph/VensimFunctions.pgraph @@ -1,5 +1,5 @@ -L0 = +L0 = SYSDYN = VF = : SYSDYN.SysdynModelicaFunctionLibrary diff --git a/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph b/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph index 6205b847..de9d0ea7 100644 --- a/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph +++ b/org.simantics.sysdyn.ontology/graph/WorkModel.pgraph @@ -1,12 +1,12 @@ -L0 = -L0X = -G2D = -STR = -DIA = -SIMU = -MOD = +L0 = +L0X = +G2D = +STR = +DIA = +SIMU = +MOD = SYSDYN = -PROJ = +PROJ = //###################################################################### //# Example work model with two modules diff --git a/org.simantics.sysdyn.ui/adapters.xml b/org.simantics.sysdyn.ui/adapters.xml index 89d50f37..d7d140e2 100644 --- a/org.simantics.sysdyn.ui/adapters.xml +++ b/org.simantics.sysdyn.ui/adapters.xml @@ -10,5 +10,5 @@ VTT Technical Research Centre of Finland - initial API and implementation --> - none 0 fill 1 + none 0 fill 1 \ No newline at end of file diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/models/WizardModelsImportPage.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/models/WizardModelsImportPage.java index c93b2dbc..6de98d7a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/models/WizardModelsImportPage.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/wizards/models/WizardModelsImportPage.java @@ -308,7 +308,7 @@ public class WizardModelsImportPage extends WizardPage{ Layer0 l0 = Layer0.getInstance(graph); // The links should be exported and imported automatically Resource sysdyn = graph.getResource("http://www.simantics.org/Sysdyn-1.1"); - Resource layer0 = graph.getResource("http://www.simantics.org/Layer0-1.0"); + Resource layer0 = graph.getResource("http://www.simantics.org/Layer0-1.1"); if(!graph.hasStatement(model, l0.IsLinkedTo, sysdyn)) graph.claim(model, l0.IsLinkedTo, sysdyn); if(!graph.hasStatement(model, l0.IsLinkedTo, layer0)) diff --git a/org.simantics.sysdyn/META-INF/MANIFEST.MF b/org.simantics.sysdyn/META-INF/MANIFEST.MF index 419e69b2..b96a03dc 100644 --- a/org.simantics.sysdyn/META-INF/MANIFEST.MF +++ b/org.simantics.sysdyn/META-INF/MANIFEST.MF @@ -24,7 +24,8 @@ Require-Bundle: org.simantics.objmap;bundle-version="0.1.0", org.simantics.db.layer0;bundle-version="1.1.0", org.simantics.spreadsheet.common;bundle-version="1.1.0", org.simantics.spreadsheet;bundle-version="1.1.0", - org.eclipse.jface.text;bundle-version="3.6.1" + org.eclipse.jface.text;bundle-version="3.6.1", + org.simantics.spreadsheet.ontology;bundle-version="1.2.0" Export-Package: org.simantics.sysdyn, org.simantics.sysdyn.adapter, org.simantics.sysdyn.expressionParser, diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/Functions.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/Functions.java index 44fcc4a0..e87f4c57 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/Functions.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/Functions.java @@ -9,6 +9,7 @@ import org.simantics.db.WriteGraph; import org.simantics.db.common.request.ResourceRead; import org.simantics.db.common.uri.UnescapedChildMapOfResource; import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.function.All; import org.simantics.db.layer0.variable.StandardGraphChildVariable; import org.simantics.db.layer0.variable.ValueAccessor; import org.simantics.db.layer0.variable.Variable; @@ -104,13 +105,16 @@ public class Functions { StandardGraphChildVariable variable = (StandardGraphChildVariable)context; Map children = graph.syncRequest(new StructuralChildMapOfResource(getConfiguration(graph, variable))); Resource child = children.get(name); - if(child == null) return null; + if(child == null) return All.getStandardChildDomainChildVariable(graph, context, name); return graph.getPossibleContextualAdapter(child, variable, Variable.class, Variable.class); } @Override public void getVariables(ReadGraph graph, Variable context, Map map) throws DatabaseException { StandardGraphChildVariable variable = (StandardGraphChildVariable)context; + + All.getStandardChildDomainChildVariables(graph, context, map); + for(Map.Entry entry : graph.syncRequest(new StructuralChildMapOfResource(getConfiguration(graph, variable))).entrySet()) { String name = entry.getKey(); Resource child = entry.getValue(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/IndexVariable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/IndexVariable.java index dbfb5c45..08a0107e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/IndexVariable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/IndexVariable.java @@ -208,7 +208,7 @@ public abstract class IndexVariable extends AbstractPropertyVariable { String test = rvi; if(indexes != null && !indexes.isEmpty()) { - String regexIndexes = indexes.trim().replace('.', ',').replaceAll("\\b_\\b", "[a-zA-Z0-9_]*"); + String regexIndexes = indexes.trim().replaceAll("\\b_\\b", "[a-zA-Z0-9_]*"); // Why was there was ".replace('.', ',')" ? - Removed by Teemu 2.9.2012 test = rvi + "\\[" + regexIndexes + "\\]"; } else { test = rvi + "(\\[.*\\])?"; diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java index 031d4f43..fa794788 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Book.java @@ -6,9 +6,10 @@ import java.util.List; import org.simantics.layer0.Layer0; import org.simantics.objmap.annotations.GraphType; import org.simantics.objmap.annotations.RelatedElements; +import org.simantics.spreadsheet.resource.SpreadsheetResource; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; -@GraphType("http://www.simantics.org/Spreadsheet-1.1/Book") +@GraphType(SpreadsheetResource.URIs.Book) public class Book extends Variable { @RelatedElements( diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java index 71a3b756..4df9bcdb 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Sheet.java @@ -23,8 +23,9 @@ import org.simantics.spreadsheet.common.exception.CellParseException; import org.simantics.spreadsheet.common.matrix.VariantMatrix; import org.simantics.spreadsheet.util.SpreadsheetUtils; import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; +import org.simantics.spreadsheet.resource.SpreadsheetResource; -@GraphType("http://www.simantics.org/Spreadsheet-1.1/Spreadsheet") +@GraphType(SpreadsheetResource.URIs.Spreadsheet) public class Sheet extends org.simantics.sysdyn.representation.Variable { @RelatedElement(Layer0.URIs.PartOf) -- 2.47.1