DIA.ProfileEntry.HasStyle %style\r
DIA.ProfileEntry.HasGroup %group\r
\r
+\r
+// PROFILES\r
SYSDYN.SimulationPlaybackProfile <T DIA.Profile\r
- \r
+SYSDYN.DefaultProfile <T DIA.Profile\r
+\r
+// STYLES\r
SYSDYN.SimulationPlaybackStyle : DIA.Style\r
+SYSDYN.IssueStyle : DIA.Style\r
\r
+// GROUPS\r
SYSDYN.AllElementsGroup : DIA.TypeGroup\r
L0.HasLabel "Element"\r
DIA.HasType DIA.Element\r
-\r
+ \r
+// ENTRIES\r
PROFILES.SimulationPlaybackColours\r
L0.HasLabel "Playback colours"\r
- @groupStyleEntry SYSDYN.SimulationPlaybackStyle SYSDYN.AllElementsGroup
\ No newline at end of file
+ @groupStyleEntry SYSDYN.SimulationPlaybackStyle SYSDYN.AllElementsGroup\r
+ \r
+PROFILES.IssueWarnings\r
+ L0.HasLabel "Issue warnings"\r
+ @groupStyleEntry SYSDYN.IssueStyle SYSDYN.AllElementsGroup\r
+\r
+\r
+ \r
+
\ No newline at end of file
SYSDYN.HasEquation <R L0.HasProperty
L0.HasRange L0.String
-SYSDYN.HasInitialEquation <T SYSDYN.HasEquation
+SYSDYN.HasInitialEquation <R SYSDYN.HasEquation
L0.HasRange L0.String
-SYSDYN.HasLookup <T SYSDYN.HasEquation
+SYSDYN.HasLookup <R SYSDYN.HasEquation
L0.HasRange L0.String
SYSDYN.HasMinX <R L0.HasProperty
public final Resource ConfigurationDiagram;\r
public final Resource ConfigurationDiagramTemplate;\r
public final Resource ConstantExpression;\r
+ public final Resource DefaultProfile;\r
public final Resource DefaultRealization;\r
public final Resource DelayExpression;\r
public final Resource Dependency;\r
public final Resource HasHead;\r
public final Resource HasHeadTerminal;\r
public final Resource HasInitialEquation;\r
+ public final Resource HasInitialEquation_Inverse;\r
public final Resource HasLookup;\r
+ public final Resource HasLookup_Inverse;\r
public final Resource HasMaxX;\r
public final Resource HasMaxX_Inverse;\r
public final Resource HasMaxY;\r
public final Resource IsReplaceable_Inverse;\r
public final Resource IsTailOf;\r
public final Resource IsTailOfTerminal;\r
+ public final Resource IssueStyle;\r
public final Resource LookupExpression;\r
public final Resource Module;\r
public final Resource ModuleSymbol;\r
public final Resource Polarity;\r
public final Resource Polarity_Inverse;\r
public final Resource Profiles;\r
+ public final Resource Profiles_IssueWarnings;\r
public final Resource Profiles_SimulationPlaybackColours;\r
public final Resource ProjectActionContext;\r
public final Resource ProjectActionContext_Actions;\r
public static final String ConfigurationDiagram = "http://www.simantics.org/Sysdyn-1.0/ConfigurationDiagram";\r
public static final String ConfigurationDiagramTemplate = "http://www.simantics.org/Sysdyn-1.0/ConfigurationDiagramTemplate";\r
public static final String ConstantExpression = "http://www.simantics.org/Sysdyn-1.0/ConstantExpression";\r
+ public static final String DefaultProfile = "http://www.simantics.org/Sysdyn-1.0/DefaultProfile";\r
public static final String DefaultRealization = "http://www.simantics.org/Sysdyn-1.0/DefaultRealization";\r
public static final String DelayExpression = "http://www.simantics.org/Sysdyn-1.0/DelayExpression";\r
public static final String Dependency = "http://www.simantics.org/Sysdyn-1.0/Dependency";\r
public static final String HasHead = "http://www.simantics.org/Sysdyn-1.0/HasHead";\r
public static final String HasHeadTerminal = "http://www.simantics.org/Sysdyn-1.0/HasHeadTerminal";\r
public static final String HasInitialEquation = "http://www.simantics.org/Sysdyn-1.0/HasInitialEquation";\r
+ public static final String HasInitialEquation_Inverse = "http://www.simantics.org/Sysdyn-1.0/HasInitialEquation/Inverse";\r
public static final String HasLookup = "http://www.simantics.org/Sysdyn-1.0/HasLookup";\r
+ public static final String HasLookup_Inverse = "http://www.simantics.org/Sysdyn-1.0/HasLookup/Inverse";\r
public static final String HasMaxX = "http://www.simantics.org/Sysdyn-1.0/HasMaxX";\r
public static final String HasMaxX_Inverse = "http://www.simantics.org/Sysdyn-1.0/HasMaxX/Inverse";\r
public static final String HasMaxY = "http://www.simantics.org/Sysdyn-1.0/HasMaxY";\r
public static final String IsReplaceable_Inverse = "http://www.simantics.org/Sysdyn-1.0/IsReplaceable/Inverse";\r
public static final String IsTailOf = "http://www.simantics.org/Sysdyn-1.0/IsTailOf";\r
public static final String IsTailOfTerminal = "http://www.simantics.org/Sysdyn-1.0/IsTailOfTerminal";\r
+ public static final String IssueStyle = "http://www.simantics.org/Sysdyn-1.0/IssueStyle";\r
public static final String LookupExpression = "http://www.simantics.org/Sysdyn-1.0/LookupExpression";\r
public static final String Module = "http://www.simantics.org/Sysdyn-1.0/Module";\r
public static final String ModuleSymbol = "http://www.simantics.org/Sysdyn-1.0/ModuleSymbol";\r
public static final String Polarity = "http://www.simantics.org/Sysdyn-1.0/Polarity";\r
public static final String Polarity_Inverse = "http://www.simantics.org/Sysdyn-1.0/Polarity/Inverse";\r
public static final String Profiles = "http://www.simantics.org/Sysdyn-1.0/Profiles";\r
+ public static final String Profiles_IssueWarnings = "http://www.simantics.org/Sysdyn-1.0/Profiles/IssueWarnings";\r
public static final String Profiles_SimulationPlaybackColours = "http://www.simantics.org/Sysdyn-1.0/Profiles/SimulationPlaybackColours";\r
public static final String ProjectActionContext = "http://www.simantics.org/Sysdyn-1.0/ProjectActionContext";\r
public static final String ProjectActionContext_Actions = "http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions";\r
ConfigurationDiagram = getResourceOrNull(graph, URIs.ConfigurationDiagram);\r
ConfigurationDiagramTemplate = getResourceOrNull(graph, URIs.ConfigurationDiagramTemplate);\r
ConstantExpression = getResourceOrNull(graph, URIs.ConstantExpression);\r
+ DefaultProfile = getResourceOrNull(graph, URIs.DefaultProfile);\r
DefaultRealization = getResourceOrNull(graph, URIs.DefaultRealization);\r
DelayExpression = getResourceOrNull(graph, URIs.DelayExpression);\r
Dependency = getResourceOrNull(graph, URIs.Dependency);\r
HasHead = getResourceOrNull(graph, URIs.HasHead);\r
HasHeadTerminal = getResourceOrNull(graph, URIs.HasHeadTerminal);\r
HasInitialEquation = getResourceOrNull(graph, URIs.HasInitialEquation);\r
+ HasInitialEquation_Inverse = getResourceOrNull(graph, URIs.HasInitialEquation_Inverse);\r
HasLookup = getResourceOrNull(graph, URIs.HasLookup);\r
+ HasLookup_Inverse = getResourceOrNull(graph, URIs.HasLookup_Inverse);\r
HasMaxX = getResourceOrNull(graph, URIs.HasMaxX);\r
HasMaxX_Inverse = getResourceOrNull(graph, URIs.HasMaxX_Inverse);\r
HasMaxY = getResourceOrNull(graph, URIs.HasMaxY);\r
IsReplaceable_Inverse = getResourceOrNull(graph, URIs.IsReplaceable_Inverse);\r
IsTailOf = getResourceOrNull(graph, URIs.IsTailOf);\r
IsTailOfTerminal = getResourceOrNull(graph, URIs.IsTailOfTerminal);\r
+ IssueStyle = getResourceOrNull(graph, URIs.IssueStyle);\r
LookupExpression = getResourceOrNull(graph, URIs.LookupExpression);\r
Module = getResourceOrNull(graph, URIs.Module);\r
ModuleSymbol = getResourceOrNull(graph, URIs.ModuleSymbol);\r
Polarity = getResourceOrNull(graph, URIs.Polarity);\r
Polarity_Inverse = getResourceOrNull(graph, URIs.Polarity_Inverse);\r
Profiles = getResourceOrNull(graph, URIs.Profiles);\r
+ Profiles_IssueWarnings = getResourceOrNull(graph, URIs.Profiles_IssueWarnings);\r
Profiles_SimulationPlaybackColours = getResourceOrNull(graph, URIs.Profiles_SimulationPlaybackColours);\r
ProjectActionContext = getResourceOrNull(graph, URIs.ProjectActionContext);\r
ProjectActionContext_Actions = getResourceOrNull(graph, URIs.ProjectActionContext_Actions);\r
VTT Technical Research Centre of Finland - initial API and implementation\r
-->\r
-<adapters>\r\r <target interface="org.simantics.db.layer0.adapter.Realization">\r <type uri="http://www.simantics.org/Sysdyn-1.0/Module"\r class="org.simantics.structural2.realization.StructuralRealization">\r <this />\r </type>\r </target>\r\r<!-- \r <target interface="org.simantics.db.layer0.variable.Variable">\r <type uri="http://www.simantics.org/Sysdyn-1.0/HistoryRealization"\r class="org.simantics.sysdyn.ui.project.HistoryVariable" >\r <this />\r </type>\r <type uri="http://www.simantics.org/Sysdyn-1.0/DefaultRealization"\r class="org.simantics.sysdyn.ui.project.DefaultVariable" >\r <this />\r </type>\r </target>\r -->\r\r <target interface="org.simantics.layer0.utils.triggers.ITrigger">\r <type uri = "http://www.simantics.org/Sysdyn-1.0/DiagramToCompositeMapping"\r class = "org.simantics.sysdyn.ui.editor.DiagramToCompositeMapping3">\r <graph/>\r <this />\r </type>\r </target>\r \r <target interface="org.simantics.structural.ui.modelBrowser.nodes.AbstractNode">\r <type uri="http://www.simantics.org/Sysdyn-1.0/SysdynModel"\r class="org.simantics.structural.ui.modelBrowser.nodes.ModelNode">\r <this />\r </type>\r </target> \r \r\r <target\r interface="org.simantics.browsing.ui.common.node.AbstractNode">\r <type\r uri="http://www.simantics.org/Sysdyn-1.0/SysdynModel"\r class="org.simantics.sysdyn.ui.browser.nodes.ModelNode">\r <this />\r </type>\r\r <resource\r uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.browser.nodes.SymbolNode">\r <this />\r </resource>\r\r <type\r uri="http://www.simantics.org/Simulation-1.0/Experiment"\r class="org.simantics.sysdyn.ui.browser.nodes.ExperimentNode">\r <this />\r </type>\r \r <type\r uri="http://www.simantics.org/Sysdyn-1.0/Result"\r class="org.simantics.sysdyn.ui.browser.nodes.SimulationResultNode">\r <this />\r </type>\r \r </target>\r\r <!-- Inject default connection routing algorithm for sysdyn diagrams -->\r <target interface="org.simantics.g2d.diagram.DiagramClass">\r <adapter uri="http://www.simantics.org/Sysdyn-1.0/ConfigurationDiagram"\r adapterClass="org.simantics.sysdyn.ui.elements2.ConfigurationDiagramClassAdapter" />\r </target>\r\r <!-- Sysdyn symbols -->\r <target interface="org.simantics.diagram.adapter.ElementFactory">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/StockSymbol"\r class="org.simantics.sysdyn.ui.elements2.StockFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.elements2.ModuleFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ValveSymbol"\r class="org.simantics.sysdyn.ui.elements2.ValveFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/AuxiliarySymbol"\r class="org.simantics.sysdyn.ui.elements2.AuxiliaryFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/CloudSymbol"\r class="org.simantics.sysdyn.ui.elements2.CloudFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/InputSymbol"\r class="org.simantics.sysdyn.ui.elements2.InputFactory" />\r\r <type uri="http://www.simantics.org/Sysdyn-1.0/StockSymbol"\r class="org.simantics.sysdyn.ui.elements2.StockFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.elements2.ModuleFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/ValveSymbol"\r class="org.simantics.sysdyn.ui.elements2.ValveFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/AuxiliarySymbol"\r class="org.simantics.sysdyn.ui.elements2.AuxiliaryFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/CloudSymbol"\r class="org.simantics.sysdyn.ui.elements2.CloudFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/InputSymbol"\r class="org.simantics.sysdyn.ui.elements2.InputFactory" /> \r </target>\r \r <!-- Sysdyn connections -->\r <target interface="org.simantics.diagram.adapter.ElementFactory">\r <!-- Edges -->\r <resource uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowEdgeFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyEdgeFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowEdgeFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyEdgeFactory" />\r <!-- : SYSDYN.Connection-->\r <type uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowConnectionFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyConnectionFactory" />\r </target>\r \r <target interface="org.simantics.g2d.connection.EdgeVisualsConfigurer">\r <baseType uri="http://www.simantics.org/Diagram-2.0/HasConnector" />\r <resource uri="http://www.simantics.org/Diagram-2.0/HasPlainConnector"\r class="org.simantics.diagram.content.ArrowConfigurer">\r <string>none 0</string>\r </resource>\r <resource uri="http://www.simantics.org/Diagram-2.0/HasArrowConnector"\r class="org.simantics.diagram.content.ArrowConfigurer">\r <string>fill 1</string>\r </resource>\r </target>\r \r <!-- ModelBrowser2 -->\r \r <target interface="org.simantics.browsing.ui.model.children.ChildRule">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleTypeChildRule"\r class="org.simantics.sysdyn.ui.browser.childrules.ModuleTypeChildRule"/>\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleContentChildRule"\r class="org.simantics.sysdyn.ui.browser.childrules.ModuleContentChildRule"/> \r </target>\r \r <target interface="org.simantics.browsing.ui.model.visuals.VisualsRule">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleTypeLabelRule"\r class="org.simantics.sysdyn.ui.browser.labelrules.ModuleTypeLabelRule"/>\r </target> \r \r <target interface="org.simantics.db.layer0.adapter.ActionFactory">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewModuleType"\r class="org.simantics.sysdyn.ui.browser.actions.NewModuleTypeAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewEnumeration"\r class="org.simantics.sysdyn.ui.browser.actions.NewEnumerationAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/OpenWorkbook"\r class="org.simantics.sysdyn.ui.browser.actions.OpenWorkbookAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewFunction"\r class="org.simantics.sysdyn.ui.browser.actions.NewFunctionAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewFunctionLibrary"\r class="org.simantics.sysdyn.ui.browser.actions.NewFunctionLibraryAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewSharedFunctionLibrary"\r class="org.simantics.sysdyn.ui.browser.actions.NewSharedFunctionLibraryAction" /> \r </target> \r \r <!-- PROFILES -->\r <target interface="org.simantics.scenegraph.profile.Style">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/SimulationPlaybackStyle"\r class="org.simantics.sysdyn.ui.elements2.profiles.SimulationPlaybackStyle">\r </resource>\r </target>\r
+<adapters>\r\r <target interface="org.simantics.db.layer0.adapter.Realization">\r <type uri="http://www.simantics.org/Sysdyn-1.0/Module"\r class="org.simantics.structural2.realization.StructuralRealization">\r <this />\r </type>\r </target>\r\r<!-- \r <target interface="org.simantics.db.layer0.variable.Variable">\r <type uri="http://www.simantics.org/Sysdyn-1.0/HistoryRealization"\r class="org.simantics.sysdyn.ui.project.HistoryVariable" >\r <this />\r </type>\r <type uri="http://www.simantics.org/Sysdyn-1.0/DefaultRealization"\r class="org.simantics.sysdyn.ui.project.DefaultVariable" >\r <this />\r </type>\r </target>\r -->\r\r <target interface="org.simantics.layer0.utils.triggers.ITrigger">\r <type uri = "http://www.simantics.org/Sysdyn-1.0/DiagramToCompositeMapping"\r class = "org.simantics.sysdyn.ui.editor.DiagramToCompositeMapping3">\r <graph/>\r <this />\r </type>\r </target>\r \r <target interface="org.simantics.structural.ui.modelBrowser.nodes.AbstractNode">\r <type uri="http://www.simantics.org/Sysdyn-1.0/SysdynModel"\r class="org.simantics.structural.ui.modelBrowser.nodes.ModelNode">\r <this />\r </type>\r </target> \r \r\r <target\r interface="org.simantics.browsing.ui.common.node.AbstractNode">\r <type\r uri="http://www.simantics.org/Sysdyn-1.0/SysdynModel"\r class="org.simantics.sysdyn.ui.browser.nodes.ModelNode">\r <this />\r </type>\r\r <resource\r uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.browser.nodes.SymbolNode">\r <this />\r </resource>\r\r <type\r uri="http://www.simantics.org/Simulation-1.0/Experiment"\r class="org.simantics.sysdyn.ui.browser.nodes.ExperimentNode">\r <this />\r </type>\r \r <type\r uri="http://www.simantics.org/Sysdyn-1.0/Result"\r class="org.simantics.sysdyn.ui.browser.nodes.SimulationResultNode">\r <this />\r </type>\r \r </target>\r\r <!-- Inject default connection routing algorithm for sysdyn diagrams -->\r <target interface="org.simantics.g2d.diagram.DiagramClass">\r <adapter uri="http://www.simantics.org/Sysdyn-1.0/ConfigurationDiagram"\r adapterClass="org.simantics.sysdyn.ui.elements2.ConfigurationDiagramClassAdapter" />\r </target>\r\r <!-- Sysdyn symbols -->\r <target interface="org.simantics.diagram.adapter.ElementFactory">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/StockSymbol"\r class="org.simantics.sysdyn.ui.elements2.StockFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.elements2.ModuleFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ValveSymbol"\r class="org.simantics.sysdyn.ui.elements2.ValveFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/AuxiliarySymbol"\r class="org.simantics.sysdyn.ui.elements2.AuxiliaryFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/CloudSymbol"\r class="org.simantics.sysdyn.ui.elements2.CloudFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/InputSymbol"\r class="org.simantics.sysdyn.ui.elements2.InputFactory" />\r\r <type uri="http://www.simantics.org/Sysdyn-1.0/StockSymbol"\r class="org.simantics.sysdyn.ui.elements2.StockFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/ModuleSymbol"\r class="org.simantics.sysdyn.ui.elements2.ModuleFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/ValveSymbol"\r class="org.simantics.sysdyn.ui.elements2.ValveFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/AuxiliarySymbol"\r class="org.simantics.sysdyn.ui.elements2.AuxiliaryFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/CloudSymbol"\r class="org.simantics.sysdyn.ui.elements2.CloudFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/InputSymbol"\r class="org.simantics.sysdyn.ui.elements2.InputFactory" /> \r </target>\r \r <!-- Sysdyn connections -->\r <target interface="org.simantics.diagram.adapter.ElementFactory">\r <!-- Edges -->\r <resource uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowEdgeFactory" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyEdgeFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowEdgeFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyEdgeFactory" />\r <!-- : SYSDYN.Connection-->\r <type uri="http://www.simantics.org/Sysdyn-1.0/FlowConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.FlowConnectionFactory" />\r <type uri="http://www.simantics.org/Sysdyn-1.0/DependencyConnection"\r class="org.simantics.sysdyn.ui.elements2.connections.DependencyConnectionFactory" />\r </target>\r \r <target interface="org.simantics.g2d.connection.EdgeVisualsConfigurer">\r <baseType uri="http://www.simantics.org/Diagram-2.0/HasConnector" />\r <resource uri="http://www.simantics.org/Diagram-2.0/HasPlainConnector"\r class="org.simantics.diagram.content.ArrowConfigurer">\r <string>none 0</string>\r </resource>\r <resource uri="http://www.simantics.org/Diagram-2.0/HasArrowConnector"\r class="org.simantics.diagram.content.ArrowConfigurer">\r <string>fill 1</string>\r </resource>\r </target>\r \r <!-- ModelBrowser2 -->\r \r <target interface="org.simantics.browsing.ui.model.children.ChildRule">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleTypeChildRule"\r class="org.simantics.sysdyn.ui.browser.childrules.ModuleTypeChildRule"/>\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleContentChildRule"\r class="org.simantics.sysdyn.ui.browser.childrules.ModuleContentChildRule"/> \r </target>\r \r <target interface="org.simantics.browsing.ui.model.visuals.VisualsRule">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectBrowseContext/ModuleTypeLabelRule"\r class="org.simantics.sysdyn.ui.browser.labelrules.ModuleTypeLabelRule"/>\r </target> \r \r <target interface="org.simantics.db.layer0.adapter.ActionFactory">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewModuleType"\r class="org.simantics.sysdyn.ui.browser.actions.NewModuleTypeAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewEnumeration"\r class="org.simantics.sysdyn.ui.browser.actions.NewEnumerationAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/OpenWorkbook"\r class="org.simantics.sysdyn.ui.browser.actions.OpenWorkbookAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewFunction"\r class="org.simantics.sysdyn.ui.browser.actions.NewFunctionAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewFunctionLibrary"\r class="org.simantics.sysdyn.ui.browser.actions.NewFunctionLibraryAction" />\r <resource uri="http://www.simantics.org/Sysdyn-1.0/ProjectActionContext/Actions/NewSharedFunctionLibrary"\r class="org.simantics.sysdyn.ui.browser.actions.NewSharedFunctionLibraryAction" /> \r </target> \r \r <!-- PROFILES -->\r <target interface="org.simantics.scenegraph.profile.Style">\r <resource uri="http://www.simantics.org/Sysdyn-1.0/SimulationPlaybackStyle"\r class="org.simantics.sysdyn.ui.elements2.profiles.SimulationPlaybackStyle">\r </resource>\r <resource uri="http://www.simantics.org/Sysdyn-1.0/IssueStyle"\r class="org.simantics.sysdyn.ui.elements2.profiles.IssueDecorationStyle">\r </resource>\r </target>\r
</adapters>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="error.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata29">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:window-height="841"
+ inkscape:window-width="1212"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="7.0241977"
+ inkscape:cx="-17.826432"
+ inkscape:cy="1037.7942"
+ inkscape:window-x="270"
+ inkscape:window-y="71"
+ inkscape:current-layer="svg2"
+ inkscape:window-maximized="0" />
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective31" />
+ <linearGradient
+ id="linearGradient3488">
+ <stop
+ id="stop3490"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3492"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3420">
+ <stop
+ id="stop3422"
+ style="stop-color:#ff1e1e;stop-opacity:1;"
+ offset="0" />
+ <stop
+ id="stop3424"
+ style="stop-color:#dc2828;stop-opacity:1;"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ id="linearGradient3426"
+ xlink:href="#linearGradient3420"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ id="linearGradient3494"
+ xlink:href="#linearGradient3488"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3420"
+ id="linearGradient2411"
+ gradientUnits="userSpaceOnUse"
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ gradientTransform="matrix(0,-2.7617189e-2,2.7612784e-2,0,-11.701736,14.171172)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3488"
+ id="linearGradient2413"
+ gradientUnits="userSpaceOnUse"
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ gradientTransform="matrix(0,-2.7617189e-2,2.7612784e-2,0,-11.701736,14.171172)" />
+ </defs>
+ <path
+ style="fill:url(#linearGradient2411);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2413);stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2383"
+ d="M 2.1698824,1.1121873 C 3.3682412,1.1119962 4.3398041,2.0835591 4.3398041,3.2821091 C 4.3398041,4.4806589 3.3682412,5.4522219 2.1698824,5.4520308 C 0.97152351,5.4522219 -3.9437272e-05,4.4806589 -3.9437272e-05,3.2821091 C -3.9437272e-05,2.0835591 0.97152351,1.1119962 2.1698824,1.1121873 L 2.1698824,1.1121873 z" />
+ <g
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="g3164"
+ transform="matrix(9.4934061e-2,0,0,1.3562015e-2,-34.990031,-2.4459735)">
+ <rect
+ style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:12.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3166"
+ y="472.36218"
+ x="388.57144"
+ height="40"
+ width="5.7142859" />
+ </g>
+ <path
+ style="opacity:0.8;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.35824198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2385"
+ d="M 3.8894553,3.2821081 C 3.8894553,4.2317955 3.1195813,5.0016695 2.1698938,5.0016695 C 1.2202064,5.0016695 0.45033238,4.2317955 0.45033238,3.2821081 C 0.45033238,2.3324207 1.2202064,1.5625466 2.1698938,1.5625466 C 3.1195813,1.5625466 3.8894553,2.3324207 3.8894553,3.2821081 z" />
+ <g
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
+ id="g3159"
+ transform="matrix(9.4934061e-2,0,0,4.0686044e-2,-34.990031,-17.157021)">
+ <rect
+ style="opacity:0.8;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3157"
+ y="472.36218"
+ x="388.57144"
+ height="40"
+ width="5.7142859" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2">
+ <metadata
+ id="metadata29">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3488">
+ <stop
+ id="stop3490"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3492"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3420">
+ <stop
+ id="stop3422"
+ style="stop-color:#ff1e1e;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3424"
+ style="stop-color:#dc2828;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ id="linearGradient3426"
+ xlink:href="#linearGradient3420"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="315.71429"
+ y1="502.36218"
+ x2="472.85712"
+ y2="502.36218"
+ id="linearGradient3494"
+ xlink:href="#linearGradient3488"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="111.7876"
+ y1="230.2852"
+ x2="111.7876"
+ y2="142.84979"
+ id="linearGradient3407"
+ xlink:href="#XMLID_3_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="111.7876"
+ y1="230.2852"
+ x2="111.7876"
+ y2="142.84979"
+ id="XMLID_3_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3166"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3167"
+ style="stop-color:#fafafa;stop-opacity:1"
+ offset="0.1019" />
+ <stop
+ id="stop3168"
+ style="stop-color:#ebebeb;stop-opacity:1"
+ offset="0.2256" />
+ <stop
+ id="stop3169"
+ style="stop-color:#d2d2d2;stop-opacity:1"
+ offset="0.36059999" />
+ <stop
+ id="stop3170"
+ style="stop-color:#b0b0b0;stop-opacity:1"
+ offset="0.50370002" />
+ <stop
+ id="stop3171"
+ style="stop-color:#848484;stop-opacity:1"
+ offset="0.65319997" />
+ <stop
+ id="stop3172"
+ style="stop-color:#4e4e4e;stop-opacity:1"
+ offset="0.80809999" />
+ <stop
+ id="stop3173"
+ style="stop-color:#0f0f0f;stop-opacity:1"
+ offset="0.96460003" />
+ <stop
+ id="stop3174"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3175"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3176"
+ style="stop-color:#FFFFFF"
+ offset="0.6667" />
+ <a:midPointStop
+ id="midPointStop3177"
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="223.2383"
+ cy="994.02441"
+ r="45.424"
+ fx="223.2383"
+ fy="994.02441"
+ id="radialGradient3409"
+ xlink:href="#XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.273125,-0.583125,0.4891875,1.0680937,-219.67181,-763.6707)" />
+ <radialGradient
+ cx="223.2383"
+ cy="994.02441"
+ r="45.424"
+ fx="223.2383"
+ fy="994.02441"
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.358,-0.622,0.5218,1.1393,-739.9166,-885.3684)">
+ <stop
+ id="stop3180"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3181"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3182"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3183"
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3184"
+ style="stop-color:#000000"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ x1="131.50101"
+ y1="96.0942"
+ x2="141.1622"
+ y2="105.7555"
+ id="linearGradient3411"
+ xlink:href="#XMLID_5_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="131.50101"
+ y1="96.0942"
+ x2="141.1622"
+ y2="105.7555"
+ id="XMLID_5_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3188"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3189"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3190"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3191"
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3192"
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="139.91209"
+ y1="98.640602"
+ x2="154.45309"
+ y2="98.640602"
+ id="linearGradient3413"
+ xlink:href="#XMLID_6_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="139.91209"
+ y1="98.640602"
+ x2="154.45309"
+ y2="98.640602"
+ id="XMLID_6_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3196"
+ style="stop-color:#bbbbbb;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3197"
+ style="stop-color:#888888;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3198"
+ style="stop-color:#BBBBBB"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3199"
+ style="stop-color:#BBBBBB"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3200"
+ style="stop-color:#888888"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="145.959"
+ y1="93.064499"
+ x2="166.4863"
+ y2="93.064499"
+ id="linearGradient3415"
+ xlink:href="#XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="145.959"
+ y1="93.064499"
+ x2="166.4863"
+ y2="93.064499"
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3203"
+ style="stop-color:#ff9200;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3204"
+ style="stop-color:#ff0000;stop-opacity:1"
+ offset="0.264" />
+ <stop
+ id="stop3205"
+ style="stop-color:#fa0000;stop-opacity:1"
+ offset="0.37470001" />
+ <stop
+ id="stop3206"
+ style="stop-color:#eb0000;stop-opacity:1"
+ offset="0.50889999" />
+ <stop
+ id="stop3207"
+ style="stop-color:#d20000;stop-opacity:1"
+ offset="0.65539998" />
+ <stop
+ id="stop3208"
+ style="stop-color:#b00000;stop-opacity:1"
+ offset="0.81059998" />
+ <stop
+ id="stop3209"
+ style="stop-color:#850000;stop-opacity:1"
+ offset="0.97109997" />
+ <stop
+ id="stop3210"
+ style="stop-color:#7c0000;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3211"
+ style="stop-color:#FF9200"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3212"
+ style="stop-color:#FF9200"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3213"
+ style="stop-color:#FF0000"
+ offset="0.264" />
+ <a:midPointStop
+ id="midPointStop3214"
+ style="stop-color:#FF0000"
+ offset="0.6667" />
+ <a:midPointStop
+ id="midPointStop3215"
+ style="stop-color:#7C0000"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="158.666"
+ y1="69.667"
+ x2="171.85741"
+ y2="69.667"
+ id="linearGradient3417"
+ xlink:href="#XMLID_8_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="158.666"
+ y1="69.667"
+ x2="171.85741"
+ y2="69.667"
+ id="XMLID_8_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3218"
+ style="stop-color:#ff6d00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3219"
+ style="stop-color:#ff3300;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3220"
+ style="stop-color:#FF6D00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3221"
+ style="stop-color:#FF6D00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3222"
+ style="stop-color:#FF3300"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="160.666"
+ y1="69.8423"
+ x2="168.79691"
+ y2="69.8423"
+ id="linearGradient3419"
+ xlink:href="#XMLID_9_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="160.666"
+ y1="69.8423"
+ x2="168.79691"
+ y2="69.8423"
+ id="XMLID_9_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3225"
+ style="stop-color:#ffae00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3226"
+ style="stop-color:#fff030;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3227"
+ style="stop-color:#FFAE00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3228"
+ style="stop-color:#FFAE00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3229"
+ style="stop-color:#FFF030"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="169.2207"
+ y1="81.175797"
+ x2="193.29491"
+ y2="81.175797"
+ id="linearGradient3421"
+ xlink:href="#XMLID_10_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="169.2207"
+ y1="81.175797"
+ x2="193.29491"
+ y2="81.175797"
+ id="XMLID_10_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3232"
+ style="stop-color:#ff6d00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3233"
+ style="stop-color:#ff3300;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3234"
+ style="stop-color:#FF6D00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3235"
+ style="stop-color:#FF6D00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3236"
+ style="stop-color:#FF3300"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="171.38091"
+ y1="80.176804"
+ x2="189.1348"
+ y2="80.176804"
+ id="linearGradient3423"
+ xlink:href="#XMLID_11_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="171.38091"
+ y1="80.176804"
+ x2="189.1348"
+ y2="80.176804"
+ id="XMLID_11_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3239"
+ style="stop-color:#ffae00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3240"
+ style="stop-color:#fff030;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3241"
+ style="stop-color:#FFAE00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3242"
+ style="stop-color:#FFAE00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3243"
+ style="stop-color:#FFF030"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="170.4492"
+ y1="100.71"
+ x2="194.9375"
+ y2="100.71"
+ id="linearGradient3425"
+ xlink:href="#XMLID_12_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="170.4492"
+ y1="100.71"
+ x2="194.9375"
+ y2="100.71"
+ id="XMLID_12_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3246"
+ style="stop-color:#ff6d00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3247"
+ style="stop-color:#ff3300;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3248"
+ style="stop-color:#FF6D00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3249"
+ style="stop-color:#FF6D00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3250"
+ style="stop-color:#FF3300"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="172.3457"
+ y1="99.710899"
+ x2="191.03909"
+ y2="99.710899"
+ id="linearGradient3427"
+ xlink:href="#XMLID_13_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ <linearGradient
+ x1="172.3457"
+ y1="99.710899"
+ x2="191.03909"
+ y2="99.710899"
+ id="XMLID_13_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3253"
+ style="stop-color:#ffae00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3254"
+ style="stop-color:#fff030;stop-opacity:1"
+ offset="1" />
+ <a:midPointStop
+ id="midPointStop3255"
+ style="stop-color:#FFAE00"
+ offset="0" />
+ <a:midPointStop
+ id="midPointStop3256"
+ style="stop-color:#FFAE00"
+ offset="0.5" />
+ <a:midPointStop
+ id="midPointStop3257"
+ style="stop-color:#FFF030"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="172.3457"
+ y1="99.710899"
+ x2="191.03909"
+ y2="99.710899"
+ id="linearGradient3175"
+ xlink:href="#XMLID_13_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9375,0,0,0.9375,474,66.36218)" />
+ </defs>
+ <g
+ transform="matrix(0.0330998,0,0,0.0330998,-17.583388,-2.9032996)"
+ id="g3390">
+ <path
+ d="m 616.36125,173.18655 c 1.50375,-1.15031 3.06188,-2.51625 4.66781,-4.12125 -0.007,-0.0553 -0.0131,-0.10593 -0.0197,-0.15937 0.21751,-0.11344 0.42657,-0.24938 0.60938,-0.43406 2.15906,-2.15719 -0.615,-6.8625 -4.32281,-10.56844 -3.70406,-3.70406 -8.41219,-6.47813 -10.56657,-4.32281 -0.18656,0.18656 -0.32249,0.3975 -0.43781,0.61875 -0.0534,-0.009 -0.10218,-0.0187 -0.15562,-0.0272 -2.56125,2.56125 -4.515,5.00437 -5.94938,7.28531 -5.8725,-2.595 -12.36281,-4.04625 -19.19437,-4.04625 -26.26313,0 -47.55563,21.29344 -47.55563,47.55469 0,26.26687 21.2925,47.55469 47.55563,47.55469 26.26406,0 47.55375,-21.28782 47.55375,-47.55469 -9.4e-4,-12.2175 -4.61156,-23.35594 -12.18469,-31.77938 z"
+ id="path3163"
+ style="opacity:0.2;stroke:none" />
+ <path
+ d="m 531.24656,202.77499 c 0,26.26688 21.29157,47.55469 47.55469,47.55469 26.26406,0 47.55375,-21.28781 47.55375,-47.55469 0,-26.26125 -21.28969,-47.55281 -47.55375,-47.55281 -26.26312,0 -47.55469,21.29156 -47.55469,47.55281 z"
+ id="path3164"
+ style="stroke:none" />
+ <path
+ d="m 533.96344,202.77499 c 0,24.72469 20.11594,44.83875 44.83687,44.83875 24.72469,0 44.83688,-20.11406 44.83688,-44.83875 0,-24.72281 -20.11219,-44.835 -44.83688,-44.835 -24.72093,0 -44.83687,20.11219 -44.83687,44.835 z"
+ id="path3178"
+ style="opacity:0.6;fill:url(#linearGradient3407);stroke:none" />
+ <path
+ d="m 541.89094,197.46687 c 5.15437,11.25937 20.20875,15.39937 33.62719,9.25406 13.41937,-6.14531 20.11593,-20.25188 14.96062,-31.50656 -5.15719,-11.25563 -20.21062,-15.40313 -33.63,-9.25594 -13.41844,6.14437 -20.115,20.25094 -14.95781,31.50844 z"
+ id="path3185"
+ style="fill:url(#radialGradient3409);stroke:none" />
+ <path
+ d="m 603.94594,151.98124 c -10.05,10.05094 -10.80657,18.28875 -7.10063,21.99469 3.70406,3.70406 11.94375,2.94937 21.99281,-7.09875 -1.03031,-8.7675 -2.1975,-12.69656 -14.89218,-14.89594 z"
+ id="path3186"
+ style="stroke:none" />
+ <path
+ d="m 596.1825,168.56937 c 0,1.90406 0.59156,3.41812 1.62375,4.44562 3.06844,3.07031 10.47937,2.23594 19.59563,-6.65062 -0.97032,-7.86657 -2.22282,-10.90969 -12.98626,-12.89625 -5.87625,6.04031 -8.23312,11.33437 -8.23312,15.10125 z"
+ id="path3193"
+ style="fill:url(#linearGradient3411);stroke:none" />
+ <path
+ d="m 604.5375,151.39155 c -2.15531,2.15532 0.61875,6.86063 4.32469,10.56844 3.70406,3.70594 8.41218,6.48 10.56562,4.32281 2.16094,-2.15906 -0.615,-6.8625 -4.32281,-10.56843 -3.70406,-3.70407 -8.41031,-6.48 -10.5675,-4.32282 z"
+ id="path3194"
+ style="stroke:none" />
+ <path
+ d="m 605.49937,152.35343 c -1.19343,1.19156 0.74344,5.06437 4.32282,8.64656 3.58125,3.58125 7.45218,5.51719 8.64468,4.32281 1.19532,-1.19531 -0.73781,-5.06437 -4.32281,-8.64656 -3.58031,-3.57937 -7.44937,-5.51719 -8.64469,-4.32281 z"
+ id="path3201"
+ style="fill:url(#linearGradient3413);stroke:none" />
+ <path
+ d="m 630.08062,149.90843 c -0.0234,-0.49031 -0.0422,-0.99094 -0.0572,-1.48875 -13.10344,1.08 -17.64,6.04031 -19.18782,8.95406 0.29157,0.46313 0.56626,0.94125 0.83719,1.42594 l 0.63938,-0.28406 c 1.59281,-2.83407 5.97281,-7.34719 17.76843,-8.60719 z"
+ id="path3216"
+ style="fill:url(#linearGradient3415);stroke:none" />
+ <path
+ d="m 628.42219,120.20562 6.69469,1.79625 -5.67282,21.14343 -6.69469,-1.79625 5.67282,-21.14343 z"
+ id="path3223"
+ style="fill:url(#linearGradient3417);stroke:none" />
+ <path
+ d="m 624.62437,140.67968 c 1.15969,0.31125 1.52438,0.41062 2.68313,0.72187 0.89062,-3.31312 4.05,-15.09187 4.93969,-18.405 -1.15875,-0.31125 -1.52438,-0.40875 -2.68313,-0.71906 -0.88969,3.31125 -4.05093,15.09188 -4.93969,18.40219 z"
+ id="path3230"
+ style="fill:url(#linearGradient3419);stroke:none" />
+ <path
+ d="m 651.94031,134.23999 3.27375,6.11063 -19.29562,10.33781 -3.27375,-6.11063 19.29562,-10.33781 z"
+ id="path3237"
+ style="fill:url(#linearGradient3421);stroke:none" />
+ <path
+ d="m 634.66969,144.53655 c 0.52218,0.97407 0.68437,1.27969 1.20656,2.25188 2.77781,-1.48875 12.65813,-6.78188 15.43781,-8.27063 -0.52219,-0.97218 -0.68437,-1.27781 -1.20656,-2.25 -2.77969,1.48782 -12.65812,6.78 -15.43781,8.26875 z"
+ id="path3244"
+ style="fill:url(#linearGradient3423);stroke:none" />
+ <path
+ d="m 656.75437,160.52843 -1.95,6.6525 -21.0075,-6.15281 1.94813,-6.65438 21.00937,6.15469 z"
+ id="path3251"
+ style="fill:url(#linearGradient3425);stroke:none" />
+ <path
+ d="m 635.57438,158.60468 c 3.02718,0.88594 13.78218,4.03781 16.8075,4.92375 0.31124,-1.06031 0.40874,-1.39125 0.71812,-2.44969 -3.02531,-0.88781 -13.78031,-4.03781 -16.8075,-4.92375 -0.31031,1.0575 -0.40688,1.39125 -0.71812,2.44969 z"
+ id="path3258"
+ style="fill:url(#linearGradient3175);stroke:none" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="600"
+ height="500"
+ id="svg2904"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="Nuvola_apps_important_yellow.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1356"
+ inkscape:window-height="874"
+ id="namedview28"
+ showgrid="false"
+ inkscape:zoom="64"
+ inkscape:cx="1.4002934"
+ inkscape:cy="497.30748"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2904" />
+ <metadata
+ id="metadata2950">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2906">
+ <linearGradient
+ id="Grad1"
+ x1="41.1948738"
+ y1="616.477173"
+ x2="118.931351"
+ y2="527.555115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.03733917,0,0,-0.03535839,0.20475678,22.530063)">
+ <stop
+ offset="0"
+ id="stop2909"
+ style="stop-color:#f2b600;stop-opacity:1;" />
+ <stop
+ offset="1"
+ id="stop2911"
+ style="stop-color:#f29600;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="Grad2"
+ x1="530.809509"
+ y1="486.631012"
+ x2="174.805481"
+ y2="211.22995"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.00786651,0,0,0.00786651,-0.00679244,0.00631797)">
+ <stop
+ offset="0"
+ id="stop2914"
+ style="stop-color:#d88500;stop-opacity:1;" />
+ <stop
+ offset="1"
+ id="stop2916"
+ style="stop-color:#fc3;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="Grad3"
+ x1="187.873566"
+ y1="224.598923"
+ x2="581.837463"
+ y2="483.100006"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.00786651,0,0,0.00786651,-0.00679244,0.00631791)">
+ <stop
+ offset="0"
+ id="stop2919"
+ style="stop-color:#ffd657;stop-opacity:1;" />
+ <stop
+ offset="1"
+ id="stop2921"
+ style="stop-color:#f2b600;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="Grad4"
+ x1="250.398453"
+ y1="101.536331"
+ x2="412.094299"
+ y2="264.54187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.00786651,0,0,0.00786651,-0.00679244,0.00631797)">
+ <stop
+ offset="0"
+ id="stop2924"
+ style="stop-color:#fff1c5;stop-opacity:1;" />
+ <stop
+ offset="1"
+ id="stop2926"
+ style="stop-color:#fc3;stop-opacity:1;" />
+ </linearGradient>
+ <radialGradient
+ id="Grad5"
+ cx="295.471252"
+ cy="186.096344"
+ r="179.550003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,0.01254747,-0.00718228,-1.7748438e-7,3.6893627,-2.0814894)">
+ <stop
+ offset="0"
+ stop-color="#ffffff"
+ id="stop2929" />
+ <stop
+ offset="0.5"
+ stop-color="#ffffff"
+ id="stop2931" />
+ <stop
+ offset="1"
+ stop-color="#d5d5d5"
+ id="stop2933" />
+ </radialGradient>
+ </defs>
+ <path
+ d="m 2.2495975,0.17755318 c 0,0 -2.13182401,3.50059672 -2.13182401,3.50059672 -0.04090583,0.066865 -0.04090583,0.1494635 0,0.2163294 0.0401193,0.066078 0.11563773,0.1077713 0.19744941,0.1077713 l 4.2636484,0 c 0.081025,0 0.1565435,-0.041693 0.197449,-0.1077713 0.040119,-0.066866 0.040119,-0.1494637 0,-0.2163294 L 2.6444965,0.17755318 C 2.6035909,0.11068789 2.528072,0.06899551 2.4470466,0.06899551 c -0.081025,0 -0.1565435,0.04169235 -0.1974491,0.10855767 z"
+ style="fill-opacity:0.17857098"
+ id="path2935"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.1557113,0.11487581 c 0,0 -2.13182443,3.50059629 -2.13182443,3.50059629 -0.04090583,0.066865 -0.04090583,0.1494646 0,0.2163294 0.04011931,0.066079 0.11563774,0.1077714 0.1974494,0.1077714 l 4.26364803,0 c 0.081026,0 0.1565435,-0.041692 0.1974498,-0.1077714 0.040119,-0.066864 0.040119,-0.1494636 0,-0.2163294 L 2.5506094,0.11487581 C 2.5097038,0.04801053 2.4341857,0.006318 2.3531605,0.006318 c -0.081026,0 -0.1565436,0.04169253 -0.1974492,0.10855781 z"
+ style="fill:url(#Grad1)"
+ id="path2937"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.3531605,0.1864611 c -0.013374,0 -0.025959,0.007079 -0.033039,0.018093 L 1.2542088,1.9548528 0.1882969,3.7051507 c -0.007081,0.011014 -0.007081,0.025173 0,0.036186 0.007081,0.011014 0.0196662,0.018093 0.0330394,0.018093 l 4.26364802,0 c 0.013374,0 0.025959,-0.00708 0.03304,-0.018093 0.00708,-0.011014 0.00708,-0.025173 0,-0.036186 L 2.3861996,0.20455409 c -0.00708,-0.0110133 -0.019666,-0.018093 -0.033039,-0.018093 z"
+ style="fill:url(#Grad2)"
+ id="path2939"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.3528655,0.1864611 c -0.013374,0 -0.02596,0.007079 -0.03304,0.018093 L 1.2539138,1.9548528 0.18800176,3.7051507 c -0.007081,0.011014 -0.007081,0.025173 0,0.036186 0.007081,0.011014 0.0196662,0.018093 0.0330394,0.018093 l 4.26364814,0 c 0.013374,0 0.025959,-0.00708 0.033039,-0.018093 0.00708,-0.011014 0.00708,-0.025173 0,-0.036186 L 2.3859045,0.20455409 c -0.00708,-0.0110133 -0.019666,-0.018093 -0.033039,-0.018093 z"
+ style="fill:none;stroke:url(#Grad3);stroke-width:0.09439755;stroke-linejoin:round"
+ id="path2941"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.3537257,0.24950271 c -0.012666,6.1991e-4 -0.024472,0.007694 -0.03122,0.0181914 L 1.2565934,2.0179925 1.1081131,2.2618546 c 0.3616458,0.2170897 0.7847846,0.3421927 1.2370087,0.3421927 0.458646,0 0.8874945,-0.128465 1.2524958,-0.3512883 L 2.3886332,0.26769413 c -0.00708,-0.0110133 -0.019568,-0.0181914 -0.032941,-0.0181914 -6.199e-4,0 -0.00135,-3.07e-5 -0.00197,0 z"
+ style="fill:url(#Grad4);stroke-width:10;stroke-linejoin:round"
+ id="path2943"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.2446032,1.1202159 -1.28774827,2.113732 c -0.0220263,0.036973 -0.0220263,0.082598 0,0.1187843 0.0220272,0.036972 0.0637188,0.059786 0.10855797,0.059786 l 2.57471,0 c 0.044839,0 0.086531,-0.022814 0.1085579,-0.059786 0.022026,-0.036972 0.022026,-0.081811 0,-0.1187843 L 2.4617192,1.1202159 c -0.022026,-0.036972 -0.063719,-0.059785 -0.108558,-0.059785 -0.044839,0 -0.086532,0.022813 -0.108558,0.059785 z"
+ style="fill:url(#Grad5)"
+ id="path2945"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 2.2852663,3.337518 C 2.2114878,3.3021821 2.1553008,3.2172169 2.1553008,3.1409868 c 0,-0.1419381 0.148319,-0.248858 0.2886484,-0.2080803 0.094669,0.027511 0.1590123,0.1129419 0.1582241,0.2100805 -6.804e-4,0.082516 -0.036387,0.1433023 -0.1092874,0.1860081 -0.055802,0.032689 -0.1491636,0.03652 -0.2076196,0.00852 z M 2.3020353,2.7770489 C 2.2928126,2.7719848 2.2710912,2.7543341 2.2537687,2.737834 2.1932418,2.6801841 2.1933171,2.6806913 2.1538627,2.0638401 2.1187897,1.5155034 2.1184996,1.506983 2.1335493,1.4675949 2.1674053,1.3789769 2.2428431,1.3401722 2.3684515,1.346762 c 0.079842,0.00419 0.1413326,0.032228 0.1813017,0.082674 0.03414,0.043088 0.041563,0.067446 0.041532,0.1362832 -3.36e-5,0.074803 -0.047818,0.9921396 -0.054611,1.0483554 -0.00889,0.073626 -0.05188,0.133375 -0.1148864,0.1596827 -0.036004,0.015035 -0.095413,0.016668 -0.119753,0.00329 z"
+ id="path2947"
+ inkscape:connector-curvature="0" />
+</svg>
relationship="stack"\r
relative="org.simantics.browsing.ui.graph.propertyView">\r
</view>\r
+ <view\r
+ id="org.simantics.diagram.profile"\r
+ minimized="false"\r
+ relationship="stack"\r
+ relative="org.simantics.browsing.ui.graph.propertyView">\r
+ </view>\r
\r
</perspectiveExtension>\r
</extension>\r
import org.eclipse.jface.resource.ResourceManager;\r
import org.eclipse.swt.widgets.Display;\r
import org.eclipse.ui.plugin.AbstractUIPlugin;\r
+import org.osgi.framework.Bundle;\r
import org.osgi.framework.BundleContext;\r
+import org.simantics.utils.FileUtils;\r
\r
public class Activator extends AbstractUIPlugin {\r
\r
private static Activator plugin;\r
\r
private static LocalResourceManager resourceManager;\r
+ \r
+ public static String FATAL_SVG_TEXT;\r
+ public static String ERROR_SVG_TEXT;\r
+ public static String WARNING_SVG_TEXT;\r
\r
@Override\r
public void start(BundleContext context) throws Exception {\r
BasicConfigurator.configure(appender);\r
Logger.getRootLogger().setLevel(Level.WARN);\r
plugin = this;\r
+ \r
+ \r
+ Bundle bundle = context.getBundle();\r
+\r
+ FATAL_SVG_TEXT = FileUtils.getContents(bundle.getResource("icons/fatal.svg"));\r
+ ERROR_SVG_TEXT = FileUtils.getContents(bundle.getResource("icons/error.svg"));\r
+ WARNING_SVG_TEXT = FileUtils.getContents(bundle.getResource("icons/warning.svg"));\r
}\r
\r
@Override\r
--- /dev/null
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.elements2.profiles;\r
+\r
+import java.awt.geom.AffineTransform;\r
+import java.awt.geom.Rectangle2D;\r
+import java.util.Collections;\r
+import java.util.Set;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.request.PossibleTypedParent;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.diagram.profile.StyleBase;\r
+import org.simantics.diagram.synchronization.graph.DiagramGraphUtil;\r
+import org.simantics.issues.Issue.Severity;\r
+import org.simantics.issues.common.ErrorIssues;\r
+import org.simantics.issues.common.FatalIssues;\r
+import org.simantics.issues.common.IssueContexts;\r
+import org.simantics.issues.common.WarningIssues;\r
+import org.simantics.layer0.Layer0;\r
+import org.simantics.modeling.ModelingResources;\r
+import org.simantics.scenegraph.INode;\r
+import org.simantics.scenegraph.g2d.nodes.SVGNode;\r
+import org.simantics.scenegraph.profile.EvaluationContext;\r
+import org.simantics.scenegraph.profile.common.ProfileVariables;\r
+import org.simantics.scenegraph.utils.NodeUtil;\r
+import org.simantics.simulation.ontology.SimulationResource;\r
+import org.simantics.sysdyn.ui.Activator;\r
+import org.simantics.utils.datastructures.map.Tuple;\r
+\r
+/**\r
+ * @author Tuukka Lehtonen\r
+ */\r
+public class IssueDecorationStyle extends StyleBase<IssueResult> {\r
+\r
+ private static final String DECORATION_NODE_NAME = "issueDecorations";\r
+\r
+ @Override\r
+ public IssueResult calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource module, Variable configuration) throws DatabaseException {\r
+ Layer0 L0 = Layer0.getInstance(graph);\r
+ ModelingResources MOD = ModelingResources.getInstance(graph);\r
+ Resource config = graph.getPossibleObject(module, MOD.ElementToComponent);\r
+ if (config == null)\r
+ return null;\r
+\r
+ AffineTransform transform = DiagramGraphUtil.getAffineTransform(graph, module);\r
+\r
+ Resource model = graph.syncRequest(new PossibleTypedParent(config, SimulationResource.getInstance(graph).Model));\r
+ if (model == null)\r
+ return null;\r
+\r
+ Resource project = graph.getPossibleObject(model, L0.PartOf);\r
+ if (project == null)\r
+ return null;\r
+\r
+ Set<Resource> fatals = graph.syncRequest(new FatalIssues(project, true));\r
+ Set<Resource> fatalContexts = graph.syncRequest(new IssueContexts(fatals));\r
+ if (fatalContexts.contains(config))\r
+ return new IssueResult(Severity.FATAL, transform);\r
+\r
+ Set<Resource> errors = graph.syncRequest(new ErrorIssues(project, true));\r
+ Set<Resource> errorContexts = graph.syncRequest(new IssueContexts(errors));\r
+ if (errorContexts.contains(config))\r
+ return new IssueResult(Severity.ERROR, transform);\r
+\r
+ Set<Resource> warnings = graph.syncRequest(new WarningIssues(project, true));\r
+ Set<Resource> warningContexts = graph.syncRequest(new IssueContexts(warnings));\r
+ if (warningContexts.contains(config))\r
+ return new IssueResult(Severity.WARNING, transform);\r
+\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public void applyStyleForNode(EvaluationContext observer, INode node, IssueResult result) {\r
+ if (result == null) {\r
+ ProfileVariables.denyChild(node, "", DECORATION_NODE_NAME);\r
+ return;\r
+ }\r
+\r
+ SVGNode svgNode = ProfileVariables.claimChild(node, "", DECORATION_NODE_NAME, SVGNode.class, observer);\r
+\r
+ Rectangle2D bounds = NodeUtil.getLocalBounds(node, Collections.<INode>singleton(svgNode));\r
+\r
+ double tx = bounds.getMaxX();\r
+ double ty = bounds.getY();\r
+\r
+ svgNode.setZIndex( Integer.MAX_VALUE );\r
+ svgNode.setTransform( AffineTransform.getTranslateInstance(tx-1, ty-1)); \r
+ svgNode.getTransform().scale(0.5, 0.5);\r
+ \r
+\r
+ Severity sev = result.getSeverity();\r
+ if (Severity.FATAL.equals(sev))\r
+ svgNode.setData(Activator.FATAL_SVG_TEXT);\r
+ else if (Severity.ERROR.equals(sev))\r
+ svgNode.setData(Activator.ERROR_SVG_TEXT);\r
+ else if (Severity.WARNING.equals(sev))\r
+ svgNode.setData(Activator.WARNING_SVG_TEXT);\r
+ }\r
+\r
+ @Override\r
+ protected void cleanupStyleForNode(INode node) {\r
+ ProfileVariables.denyChild(node, "", DECORATION_NODE_NAME);\r
+ }\r
+\r
+}\r
+\r
+/**\r
+ * This is needed to keep the issue decoration up-to-date when its parent\r
+ * element moves.\r
+ */\r
+class IssueResult extends Tuple {\r
+ public IssueResult(Severity severity, AffineTransform transform) {\r
+ super(severity, transform);\r
+ }\r
+ public Severity getSeverity() {\r
+ return (Severity) getField(0);\r
+ }\r
+}\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.elements2.profiles;\r
\r
import java.awt.Color;\r
/*******************************************************************************\r
- * Copyright (c) 2010 Association for Decentralized Information Management in\r
+ * Copyright (c) 2010, 2011 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
g.claim(moduleType, l0.Inherits, sr.Module);\r
g.claim(moduleType, l0.PartOf, model);\r
\r
+ \r
+ \r
Resource configuration = GraphUtils.create2(g, \r
sr.Configuration,\r
l0.HasName, name + "Configuration",\r
g.deny(diagram, L0X.HasTrigger, trigger);\r
}\r
}\r
+ \r
+ GraphUtils.create2(g,\r
+ sr.Validations_Dependencies_DependencyConnectionsIssueSource,\r
+ L0X.IsActivatedBy, model,\r
+ l0.PartOf, moduleType\r
+ );\r
+ \r
+ GraphUtils.create2(g,\r
+ sr.Validations_Expressions_ExpressionIssueSource,\r
+ L0X.IsActivatedBy, model,\r
+ l0.PartOf, moduleType\r
+ );\r
+ \r
Resource mapping = g.newResource();\r
g.claim(mapping, l0.InstanceOf, null, sr.DiagramToCompositeMapping);\r
g.claim(diagram, L0X.HasTrigger, mapping);\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.utils;\r
\r
import org.simantics.db.Resource;\r
public static void createStandardProfiles(WriteGraph graph, final Resource model) throws DatabaseException {\r
\r
Layer0 L0 = Layer0.getInstance(graph);\r
+ SysdynResource sr = SysdynResource.getInstance(graph);\r
+\r
DiagramResource DIA = DiagramResource.getInstance(graph);\r
\r
- final Resource a = createSimulationPlaybackProfile(graph);\r
+ Resource simulationPlaybackProfile = createProfile(graph, "Simulation Playback", sr.SimulationPlaybackProfile ,sr.Profiles_SimulationPlaybackColours);\r
\r
- Resource plain = Profiles.createProfile(graph, "Plain");\r
+ Resource defaultProfile = createProfile(graph, "Default", sr.DefaultProfile, sr.Profiles_IssueWarnings);\r
\r
- graph.claim(model, DIA.HasProfile, plain);\r
- graph.claim(model, L0.ConsistsOf, a);\r
- graph.claim(model, L0.ConsistsOf, plain);\r
+ graph.claim(model, DIA.HasProfile, defaultProfile);\r
+ graph.claim(model, L0.ConsistsOf, simulationPlaybackProfile);\r
+ graph.claim(model, L0.ConsistsOf, defaultProfile);\r
\r
// FIXME: add virtual graph write back once this is fixed: https://www.simulationsite.net/redmine/issues/3296\r
// graph.sync(new WriteRequest(graph.getService(VirtualGraphSupport.class).getWorkspacePersistent("profiles")) {\r
// @Override\r
// public void perform(WriteGraph graph) throws DatabaseException {\r
// DiagramResource DIA = DiagramResource.getInstance(graph);\r
- graph.claim(model, DIA.HasActiveProfile, plain);\r
+ graph.claim(model, DIA.HasActiveProfile, defaultProfile);\r
// }\r
// });\r
\r
}\r
\r
- public static Resource createSimulationPlaybackProfile(WriteGraph graph)\r
- throws DatabaseException {\r
+ public static Resource createProfile(WriteGraph graph, String name, Resource type, Resource... entries) throws DatabaseException {\r
Layer0 L0 = Layer0.getInstance(graph);\r
- SysdynResource sr = SysdynResource.getInstance(graph);\r
\r
- Resource profile = Profiles.createProfile(graph, "Simulation Playback",\r
- sr.Profiles_SimulationPlaybackColours);\r
+ Resource profile = Profiles.createProfile(graph, name,\r
+ entries);\r
\r
graph.deny(profile, L0.InstanceOf);\r
- graph.claim(profile, L0.InstanceOf, null, sr.SimulationPlaybackProfile);\r
+ graph.claim(profile, L0.InstanceOf, null, type);\r
return profile;\r
}\r
\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.utils;\r
\r
import org.simantics.databoard.Bindings;\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
import java.util.Collection;\r
import org.simantics.layer0.Layer0;\r
import org.simantics.scl.reflection.annotations.SCLValue;\r
import org.simantics.simulation.ontology.SimulationResource;\r
+import org.simantics.structural.stubs.StructuralResource2;\r
import org.simantics.sysdyn.SysdynResource;\r
\r
public class DependencyFunction {\r
Resource variable = (Resource)_resource;\r
Collection<Resource> existing = (Collection<Resource>)_existing;\r
\r
- if(!graph.hasStatement(variable) || !graph.hasStatement(variable, Layer0.getInstance(graph).PartOf))\r
+ IssueResource ISSUE = IssueResource.getInstance(graph);\r
+ SysdynResource sr = SysdynResource.getInstance(graph);\r
+ Layer0 l0 = Layer0.getInstance(graph);\r
+ \r
+ if(!graph.isInstanceOf(variable, sr.IndependentVariable)) \r
+ return Boolean.TRUE;\r
+ \r
+ if(!graph.hasStatement(variable) || !graph.hasStatement(variable, l0.PartOf))\r
return Boolean.FALSE;\r
\r
String name = graph.getRelatedValue(variable, Layer0.getInstance(graph).HasName, Bindings.STRING);\r
\r
- Set<String> references;\r
- Set<String> dependencies;\r
+ Set<String> dependencies = ValidationUtils.getDependencies(graph, variable);\r
+\r
+ Set<String> references = null;\r
try {\r
references = ValidationUtils.getReferences(graph, variable);\r
- dependencies = ValidationUtils.getDependencies(graph, variable);\r
- \r
- \r
+ } catch (SyntaxErrorException e) {\r
+ } catch (UnsupportedCharactersException e) {\r
+ } catch (UndefinedExpressionException e) {\r
+ }\r
+ \r
+ if(references != null && dependencies != null) {\r
for(String reference : references) {\r
if(!dependencies.contains(reference) && match(graph, existing, variable, getMissingLinkLabel(name, reference)) == null)\r
return Boolean.FALSE;\r
}\r
+ }\r
\r
+ if(dependencies != null) {\r
for(String dependency : dependencies) {\r
- if(!references.contains(dependency) && match(graph, existing, variable, getUnusedDependencyLabel(name, dependency)) == null)\r
+ if(references == null || \r
+ (!references.contains(dependency) && \r
+ match(graph, existing, variable, getUnusedDependencyLabel(name, dependency)) == null))\r
return Boolean.FALSE;\r
}\r
- } catch (SyntaxErrorException e) {\r
- } catch (UnsupportedCharactersException e) {\r
- } catch (UndefinedExpressionException e) {\r
}\r
\r
- IssueResource ISSUE = IssueResource.getInstance(graph);\r
- SysdynResource sr = SysdynResource.getInstance(graph);\r
- Layer0 l0 = Layer0.getInstance(graph);\r
- \r
Resource context;\r
for(Resource exist : existing) {\r
context = graph.getSingleObject(exist, ISSUE.HasIssueContext);\r
Set<String> labels = new HashSet<String>();\r
String label;\r
\r
- Set<String> references;\r
- Set<String> dependencies;\r
+ Set<String> dependencies = ValidationUtils.getDependencies(graph, variable);\r
+ Set<String> references = null;\r
try {\r
references = ValidationUtils.getReferences(graph, variable);\r
- dependencies = ValidationUtils.getDependencies(graph, variable);\r
+ } catch (SyntaxErrorException e) {\r
+ } catch (UnsupportedCharactersException e) {\r
+ } catch (UndefinedExpressionException e) {\r
+ }\r
+ \r
+ if(references != null && dependencies != null) {\r
for(String reference : references) {\r
if(!dependencies.contains(reference)) {\r
if(ValidationUtils.isReachable(graph, variable, reference)) {\r
}\r
} \r
}\r
+ }\r
\r
+ if(dependencies != null) {\r
for(String dependency : dependencies) {\r
label = getUnusedDependencyLabel(name, dependency);\r
- if(!references.contains(dependency)) {\r
+ if(references == null || !references.contains(dependency)) {\r
labels.add(label);\r
if(match(graph, existing, variable, label) == null) {\r
ValidationUtils.createIssue(graph, model, source, variable, label, ISSUE.Severity_Warning, sr.DependencyIssue);\r
}\r
}\r
}\r
- } catch (SyntaxErrorException e) {\r
- } catch (UnsupportedCharactersException e) {\r
- } catch (UndefinedExpressionException e) {\r
}\r
\r
Set<Resource> toBeRemoved = new HashSet<Resource>();\r
public static Object dependencyBaseRealizationFunction(Object _graph, Object _model) throws DatabaseException {\r
ReadGraph graph = (ReadGraph)_graph;\r
Resource model = (Resource)_model;\r
- return graph.getSingleObject(model, SimulationResource.getInstance(graph).HasConfiguration);\r
+ SysdynResource sr = SysdynResource.getInstance(graph);\r
+ if(graph.isInstanceOf(model, sr.SysdynModel))\r
+ return graph.getSingleObject(model, SimulationResource.getInstance(graph).HasConfiguration);\r
+ else if (graph.isInheritedFrom(model, sr.Module))\r
+ return graph.getSingleObject(model, StructuralResource2.getInstance(graph).IsDefinedBy);\r
+ else return null;\r
\r
}\r
\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
import java.util.Collection;\r
import org.simantics.layer0.Layer0;\r
import org.simantics.scl.reflection.annotations.SCLValue;\r
import org.simantics.simulation.ontology.SimulationResource;\r
+import org.simantics.structural.stubs.StructuralResource2;\r
import org.simantics.sysdyn.SysdynResource;\r
\r
/**\r
ReadGraph graph = (ReadGraph)_graph;\r
Resource variable = (Resource)_resource;\r
Collection<Resource> existing = (Collection<Resource>)_existing;\r
- String name = graph.getRelatedValue(variable, Layer0.getInstance(graph).HasName, Bindings.STRING);\r
-\r
+ \r
+ SysdynResource sr = SysdynResource.getInstance(graph);\r
+ IssueResource ISSUE = IssueResource.getInstance(graph);\r
+ Layer0 l0 = Layer0.getInstance(graph);\r
+ \r
+ if(!graph.isInstanceOf(variable, sr.IndependentVariable)) {\r
+ return Boolean.TRUE;\r
+ }\r
+ \r
+ String name = graph.getRelatedValue(variable, l0.HasName, Bindings.STRING);\r
+System.out.println(name);\r
// Try if there are any errors while parsing the expressions\r
try {\r
ValidationUtils.getReferences(graph, variable);\r
return Boolean.FALSE;\r
} \r
\r
- SysdynResource sr = SysdynResource.getInstance(graph);\r
- IssueResource ISSUE = IssueResource.getInstance(graph);\r
- Layer0 l0 = Layer0.getInstance(graph);\r
-\r
Resource context;\r
// There were no errors -> There should be no expression issues for this variable\r
for(Resource exist : existing) {\r
public static Object expressionBaseRealizationFunction(Object _graph, Object _model) throws DatabaseException {\r
ReadGraph graph = (ReadGraph)_graph;\r
Resource model = (Resource)_model;\r
- return graph.getSingleObject(model, SimulationResource.getInstance(graph).HasConfiguration);\r
+ SysdynResource sr = SysdynResource.getInstance(graph);\r
+ if(graph.isInstanceOf(model, sr.SysdynModel))\r
+ return graph.getSingleObject(model, SimulationResource.getInstance(graph).HasConfiguration);\r
+ else if (graph.isInheritedFrom(model, sr.Module)) {\r
+ return graph.getSingleObject(model, StructuralResource2.getInstance(graph).IsDefinedBy);\r
+ } else return null;\r
}\r
\r
\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
public class NoSuchVariableException extends RuntimeException {\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
public class SyntaxErrorException extends RuntimeException {\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
public class UndefinedExpressionException extends RuntimeException {\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
public class UnsupportedCharactersException extends RuntimeException {\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.ui.validation;\r
\r
import java.io.StringReader;\r
if(expressionList == null || expressionList.isEmpty())\r
throw new UndefinedExpressionException();\r
for(Resource expression : expressionList) {\r
- for(Resource s : graph.syncRequest(new ObjectsWithType(expression, sr.HasEquation, l0.String))) {\r
+ Collection<Resource> equations = graph.syncRequest(new ObjectsWithType(expression, sr.HasEquation, l0.String));\r
+ if(equations.isEmpty())\r
+ throw new UndefinedExpressionException();\r
+ \r
+ for(Resource s : equations) {\r
String value = graph.getValue(s, Bindings.STRING);\r
if(value.length() == 0)\r
throw new UndefinedExpressionException();\r
org.simantics.scl.runtime;bundle-version="0.1.3",
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.simantics.spreadsheet;bundle-version="1.1.0",
+ org.eclipse.jface.text;bundle-version="3.6.1"
Export-Package: org.simantics.sysdyn,
org.simantics.sysdyn.adapter,
org.simantics.sysdyn.expressionParser,
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.adapter;\r
\r
public class SysdynVariableProperties {\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.adapter;\r
\r
import java.util.ArrayList;\r
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2011 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.sysdyn.manager;\r
\r
import java.io.File;\r
public synchronized void simulate(final IModelicaMonitor monitor, final IProgressMonitor progressMonitor, final Experiment experiment) throws IOException {\r
canceled = false;\r
progressMonitor.subTask("Write modelica classes");\r
+ \r
+ // Write Modelica files\r
ModelicaWriter writer = new ModelicaWriter();\r
- for(Configuration c : modules) {\r
- writer.write(c);\r
+ try {\r
+ for(Configuration c : modules) {\r
+ writer.write(c);\r
+ }\r
+ } catch (Exception e) {\r
+ setExperimentStopped(experiment);\r
+ \r
+ \r
+ monitor.showConsole();\r
+ \r
+ monitor.message("Error when writing Modelica code.");\r
+ return;\r
}\r
+ \r
progressMonitor.worked(1);\r
\r
progressMonitor.subTask("Write initial files");\r
final SimulationLocation simulationLocation = ModelicaManager.createInputFiles(\r
getSimulationDir(),\r
configuration.getName(),\r
- writer.toString(),\r
+ modelText,\r
inits,\r
functionscript.toString());\r
\r
public synchronized boolean update(ReadGraph graph) throws DatabaseException {\r
if(mapping.isDomainModified()) {\r
mapping.updateRange(graph);\r
- for(Resource config : readModules(graph, configurationResource)) {\r
+ Set<Resource> configs = readModules(graph, configurationResource); \r
+ for(Resource config : configs) {\r
if(!modules.contains(config))\r
modules.add((Configuration)mapping.map(graph, config));\r
}\r
+ \r
+ HashSet<Configuration> toBeRemoved = null;\r
+ for(Configuration module : modules) {\r
+ if(!configs.contains(mapping.inverseGet(module))) {\r
+ if(toBeRemoved == null)\r
+ toBeRemoved = new HashSet<Configuration>();\r
+ toBeRemoved.add(module);\r
+ }\r
+ }\r
+ if(toBeRemoved != null)\r
+ modules.removeAll(toBeRemoved);\r
return true;\r
}\r
else\r
@Override\r
public void run(ReadGraph graph) throws DatabaseException {\r
mapping.updateRange(graph);\r
- for(Resource config : readModules(graph, configurationResource)) {\r
- if(!modules.contains(config))\r
- modules.add((Configuration)mapping.map(graph, config));\r
- }\r
+ Set<Resource> configs = readModules(graph, configurationResource); \r
+ for(Resource config : configs) {\r
+ if(!modules.contains(config))\r
+ modules.add((Configuration)mapping.map(graph, config));\r
+ }\r
+ \r
+ HashSet<Configuration> toBeRemoved = null;\r
+ for(Configuration module : modules) {\r
+ if(!configs.contains(mapping.inverseGet(module))) {\r
+ if(toBeRemoved == null)\r
+ toBeRemoved = new HashSet<Configuration>();\r
+ toBeRemoved.add(module);\r
+ }\r
+ }\r
+ if(toBeRemoved != null)\r
+ modules.removeAll(toBeRemoved);\r
}\r
});\r
return true;\r
import org.eclipse.core.runtime.IStatus;\r
import org.eclipse.core.runtime.Status;\r
import org.eclipse.core.runtime.jobs.Job;\r
-import org.eclipse.ui.console.IConsole;\r
+import org.eclipse.jface.text.BadLocationException;\r
+import org.eclipse.ui.PartInitException;\r
+import org.eclipse.ui.PlatformUI;\r
import org.eclipse.ui.console.ConsolePlugin;\r
+import org.eclipse.ui.console.IConsole;\r
import org.eclipse.ui.console.IConsoleManager;\r
+import org.eclipse.ui.console.IHyperlink;\r
+import org.eclipse.ui.console.IPatternMatchListener;\r
import org.eclipse.ui.console.MessageConsole;\r
import org.eclipse.ui.console.MessageConsoleStream;\r
-import org.eclipse.ui.PlatformUI;\r
+import org.eclipse.ui.console.PatternMatchEvent;\r
+import org.eclipse.ui.console.TextConsole;\r
import org.simantics.modelica.IModelicaMonitor;\r
import org.simantics.simulation.experiment.Experiment;\r
import org.simantics.sysdyn.manager.SysdynModel;\r
this.model = model;\r
this.experiment = experiment;\r
if(PlatformUI.isWorkbenchRunning()) {\r
- this.monitor = new ModelicaMonitor();\r
+ this.monitor = new ModelicaMonitor();\r
} else {\r
- // Fallback to headless\r
- this.monitor = new HeadlessModelicaMonitor();\r
+ // Fallback to headless\r
+ this.monitor = new HeadlessModelicaMonitor();\r
}\r
}\r
\r
monitor.done(); \r
return Status.OK_STATUS;\r
}\r
- \r
+\r
@Override\r
public boolean belongsTo(Object family) {\r
return "SimulationJob".equals(family);\r
\r
@Override\r
public void message(String message) {\r
- message(message, "hh:mm:ss");\r
+ message(message, "hh:mm:ss");\r
}\r
- \r
+\r
/**\r
* Print message to a console with a specified time stamp format\r
* \r
Calendar cal = Calendar.getInstance();\r
SimpleDateFormat sdf = new SimpleDateFormat(timeStampFormat);\r
String time = sdf.format(cal.getTime());\r
- \r
+\r
System.out.println("[" + time +"] " + message);\r
}\r
\r
public void clearConsole() {\r
}\r
- \r
+\r
public void showConsole() {\r
}\r
\r
}\r
-\r
+ //org.simantics.sysdyn.ui.modelicaEditor\r
private class ModelicaMonitor implements IModelicaMonitor {\r
\r
MessageConsole console;\r
- \r
+\r
public ModelicaMonitor() {\r
ConsolePlugin plugin = ConsolePlugin.getDefault();\r
IConsoleManager conMan = plugin.getConsoleManager();\r
MessageConsole myConsole = new MessageConsole("Simulation", null);\r
conMan.addConsoles(new IConsole[]{myConsole});\r
console = myConsole;\r
+ console.addPatternMatchListener(new IPatternMatchListener() {\r
+\r
+ @Override\r
+ public void matchFound(PatternMatchEvent event) {\r
+ try {\r
+ console.addHyperlink(new IssueLink(), event.getOffset(), event.getLength());\r
+ } catch (BadLocationException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void disconnect() {\r
+ }\r
+\r
+ @Override\r
+ public void connect(TextConsole console) {\r
+ }\r
+\r
+ @Override\r
+ public String getPattern() {\r
+ \r
+ return "Issues view";\r
+ }\r
+\r
+ @Override\r
+ public String getLineQualifier() {\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public int getCompilerFlags() {\r
+ return 0;\r
+ }\r
+ });\r
+ \r
+ /* Link to the modelica document: to be opened to a modelica code viewer.\r
+ console.addPatternMatchListener(new IPatternMatchListener() {\r
+\r
+ @Override\r
+ public void matchFound(PatternMatchEvent event) {\r
+ try {\r
+ if(event.getSource() instanceof MessageConsole) {\r
+ MessageConsole console = (MessageConsole) event.getSource();\r
+ IDocument document = console.getDocument();\r
+ String s = document.get(event.getOffset(), event.getLength());\r
+ s = s.substring(s.indexOf(":") + 1, s.lastIndexOf(":"));\r
+ String[] split = s.split(":|-");\r
+ \r
+ //TODO: Find the modelica document and its locations\r
+ int startOffset = modelicaDocument.getLineOffset(Integer.parseInt(split[0])) + Integer.parseInt(split[1]);\r
+ int endOffset = modelicaDocument.getLineOffset(Integer.parseInt(split[2])) + Integer.parseInt(split[3]);\r
+ System.out.println("Open modelica editor for model at: " + startOffset + ", " + (endOffset - startOffset));\r
+ \r
+ }\r
+ \r
+ console.addHyperlink(new ModelicaLink(), event.getOffset(), event.getLength());\r
+ } catch (BadLocationException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void disconnect() {\r
+ }\r
+\r
+ @Override\r
+ public void connect(TextConsole console) {\r
+ }\r
+\r
+ @Override\r
+ public String getPattern() {\r
+ return "\\[[^\\[]*:[\\d]*:[\\d]*\\-[\\d]*:[\\d]*:writable\\]";\r
+\r
+ }\r
+\r
+ @Override\r
+ public String getLineQualifier() {\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public int getCompilerFlags() {\r
+ return 0;\r
+ }\r
+ });\r
+ */\r
+\r
+\r
}\r
}\r
\r
@Override\r
public void message(String message) {\r
- message(message, "hh:mm:ss");\r
+ message(message, "hh:mm:ss");\r
}\r
- \r
+\r
/**\r
* Print message to a console with a specified time stamp format\r
* \r
Calendar cal = Calendar.getInstance();\r
SimpleDateFormat sdf = new SimpleDateFormat(timeStampFormat);\r
String time = sdf.format(cal.getTime());\r
- \r
+\r
MessageConsoleStream out = this.console.newMessageStream();\r
if(message.length() > 1)\r
- out.println("[" + time +"] " + message);\r
- if(message.contains("Error"))\r
- showConsole();\r
+ out.println("[" + time +"] " + message);\r
+\r
+\r
+\r
+ if(message.contains("Error")) {\r
+ showConsole();\r
+ out.println("See Issues view");\r
+ }\r
}\r
\r
public void clearConsole() {\r
this.console.clearConsole();\r
}\r
- \r
+\r
public void showConsole() {\r
ConsolePlugin plugin = ConsolePlugin.getDefault();\r
IConsoleManager conMan = plugin.getConsoleManager();\r
}\r
\r
}\r
- \r
+\r
@Override\r
protected void canceling() {\r
- model.cancelSimulation();\r
+\r
+ }\r
+\r
+\r
+ class IssueLink implements IHyperlink {\r
+\r
+ @Override\r
+ public void linkEntered() {\r
+ }\r
+\r
+ @Override\r
+ public void linkExited() {\r
+ }\r
+\r
+ @Override\r
+ public void linkActivated() {\r
+ try {\r
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("org.simantics.issues.ui.issueview");\r
+ } catch (PartInitException e) {\r
+ e.printStackTrace();\r
+ } \r
+ }\r
+ }\r
+ \r
+ class ModelicaLink implements IHyperlink {\r
+\r
+ @Override\r
+ public void linkEntered() {\r
+ }\r
+\r
+ @Override\r
+ public void linkExited() {\r
+ }\r
+\r
+ @Override\r
+ public void linkActivated() {\r
+ System.out.println("MODELICA LINK"); \r
+ }\r
+\r
}\r
\r
}\r