From 02e5d984badd0e76bb9b160b6163171fcf01a750 Mon Sep 17 00:00:00 2001 From: lempinen Date: Thu, 27 Oct 2011 06:38:39 +0000 Subject: [PATCH] Fixed mapping problems with diagramcontainer and added a default gradient to playback experiment git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@23045 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 71251 -> 70716 bytes .../graph/Sysdyn.pgraph | 13 ++---- .../org/simantics/sysdyn/SysdynResource.java | 6 +-- .../SimulationResultDecorator.java | 4 +- .../contributions/SimulationResultImager.java | 4 +- .../profiles/SimulationPlaybackStyle.java | 7 +++- .../ui/handlers/ImportModelHandler.java | 6 ++- .../ui/handlers/NewExperimentNodeHandler.java | 14 +++++-- .../NewPlaybackExperimentNodeHandler.java | 37 +++++++++++++++++- .../ui/handlers/ToggleResultActivation.java | 10 ++--- .../ui/properties/PlaybackExperimentTab.java | 8 +++- .../sysdyn/ui/utils/VariableNameUtils.java | 2 + .../representation/DiagramContainerDummy.java | 25 ++++++++++++ .../sysdyn/representation/SysdynSchema.java | 3 +- .../visitors/ElementVisitorVoidAdapter.java | 7 +++- .../visitors/IElementVisitorVoid.java | 4 +- 16 files changed, 113 insertions(+), 37 deletions(-) create mode 100644 org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 156c62e506d1b9adabdb1cdeeaf0d6b9b1e0395a..013b650898fcf64feb5baef3671c0195174034e9 100644 GIT binary patch literal 70716 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 literal 71251 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 @Override public LabelDecorator getDecorator(ReadGraph graph, SimulationResultNode result) throws DatabaseException { - if (graph.hasStatement(result.data, SimulationResource.getInstance(graph).IsActive)) { + if (graph.hasStatement(result.data, SysdynResource.getInstance(graph).ShowResult)) { return new LabelDecorator.Stub() { @SuppressWarnings("unchecked") diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultImager.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultImager.java index f37b2b7f..70e418d8 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultImager.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/contributions/SimulationResultImager.java @@ -15,7 +15,7 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.simantics.browsing.ui.swt.ImagerContributor; import org.simantics.db.ReadGraph; import org.simantics.db.exception.DatabaseException; -import org.simantics.simulation.ontology.SimulationResource; +import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.Activator; import org.simantics.sysdyn.ui.browser.nodes.SimulationResultNode; @@ -23,7 +23,7 @@ public class SimulationResultImager extends ImagerContributor colorValues = new ArrayList(); for(Resource placement : graph.syncRequest(new ObjectsWithType(gradient, g2d.HasColorPlacement, g2d.ColorPlacement))) { Double position = graph.getPossibleRelatedValue(placement, g2d.HasGradientPosition, Bindings.DOUBLE); - float[] rgba = graph.getPossibleRelatedValue(placement, g2d.HasColor, Bindings.FLOAT_ARRAY); - colorValues.add(new ColorValue(new Color(new java.awt.Color(rgba[0], rgba[1], rgba[2])), position)); + Resource rColor = graph.getPossibleObject(placement, g2d.HasColor); + if (rColor != null) { + colorValues.add(new ColorValue(new Color((java.awt.Color) G2DUtils.getObject(graph, rColor)), position)); + } } cg = new ColorGradient(colorValues, ColorGradient.HSV); } else { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java index 6676e965..7d871b48 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ImportModelHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -136,6 +136,10 @@ public class ImportModelHandler extends AbstractHandler { }); } else { + + Resource project = SimanticsUI.getProject().get(); + graph.claim(root, Layer0X.getInstance(graph).IsActivatedBy, project); + updateOldConfigurationToBaseRealization(graph, root); addDefaultOntologyLinks(graph, root); addURIsToDiagrams(graph, root); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewExperimentNodeHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewExperimentNodeHandler.java index 16bcd5ec..0d854f02 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewExperimentNodeHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewExperimentNodeHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -34,8 +34,6 @@ public class NewExperimentNodeHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { - System.out.println("New Experiment"); - ISelection sel = HandlerUtil.getCurrentSelection(event); ExperimentsFolder node = AdaptionUtils.adaptToSingle(sel, ExperimentsFolder.class); @@ -54,17 +52,25 @@ public class NewExperimentNodeHandler extends AbstractHandler { String name = NameUtils.findFreshName(g, getNameSuggestion(), model, l0.ConsistsOf, "%s%d"); - @SuppressWarnings("unused") Resource experiment = GraphUtils.create2(g, getExperimentType(g), l0.HasName, name, l0.HasLabel, name, DOC.HasReportFactory, report, l0.PartOf, model); + + configureExperiment(g, experiment); } }); return null; } + /** + * Override to do experiment-specific alterations + */ + protected void configureExperiment(WriteGraph graph, Resource experiment) throws DatabaseException { + + } + protected Resource getExperimentType(ReadGraph g) { return SysdynResource.getInstance(g).BasicExperiment; } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewPlaybackExperimentNodeHandler.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewPlaybackExperimentNodeHandler.java index 417f3266..9eb53798 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewPlaybackExperimentNodeHandler.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/NewPlaybackExperimentNodeHandler.java @@ -1,16 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2007, 2011 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ package org.simantics.sysdyn.ui.handlers; +import java.awt.Color; + import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.stubs.G2DResource; +import org.simantics.layer0.utils.direct.GraphUtils; import org.simantics.sysdyn.SysdynResource; public class NewPlaybackExperimentNodeHandler extends NewExperimentNodeHandler { - + + protected void configureExperiment(WriteGraph graph, Resource experiment) throws DatabaseException { + G2DResource g2d = G2DResource.getInstance(graph); + Resource defaultGradient = GraphUtils.create2(graph, g2d.ColorGradient); + graph.claim(experiment, g2d.HasColorGradient, defaultGradient); + + Resource placement = GraphUtils.create2(graph, g2d.ColorPlacement, + g2d.HasGradientPosition, 0.0); + graph.claimLiteral(placement, g2d.HasColor, g2d.Color, new Color(0, 62, 133).getColorComponents(new float[4])); + graph.claim(defaultGradient, g2d.HasColorPlacement, placement); + + placement = GraphUtils.create2(graph, g2d.ColorPlacement, + g2d.HasGradientPosition, 1.0); + graph.claimLiteral(placement, g2d.HasColor, g2d.Color, new Color(255, 230, 0).getColorComponents(new float[4])); + graph.claim(defaultGradient, g2d.HasColorPlacement, placement); + } + protected Resource getExperimentType(ReadGraph g) { return SysdynResource.getInstance(g).PlaybackExperiment; } - + protected String getNameSuggestion() { return "Playback Experiment"; } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java index 18616353..5eaa2d73 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/handlers/ToggleResultActivation.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -20,7 +20,6 @@ import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; -import org.simantics.simulation.ontology.SimulationResource; import org.simantics.sysdyn.SysdynResource; import org.simantics.ui.SimanticsUI; import org.simantics.ui.utils.ResourceAdaptionUtils; @@ -46,13 +45,12 @@ public class ToggleResultActivation extends AbstractHandler { @Override public void perform(WriteGraph graph) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); - SimulationResource SIMU = SimulationResource.getInstance(graph); for(Resource r : resources) { if(graph.isInstanceOf(r, sr.Result)) { - if (graph.hasStatement(r, SIMU.IsActive)) { - graph.denyStatement(r, SIMU.IsActive, r); + if (graph.hasStatement(r, sr.ShowResult)) { + graph.denyStatement(r, sr.ShowResult, r); } else { - graph.claim(r, SIMU.IsActive, r); + graph.claim(r, sr.ShowResult, r); } } } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/PlaybackExperimentTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/PlaybackExperimentTab.java index f2eb35e1..4b7eb906 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/PlaybackExperimentTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/PlaybackExperimentTab.java @@ -12,6 +12,7 @@ package org.simantics.sysdyn.ui.properties; import java.util.ArrayList; +import java.util.Collection; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; @@ -141,7 +142,7 @@ public class PlaybackExperimentTab extends LabelPropertyTabContributor { for(ColorValue cv : colorValues) { Resource placement = GraphUtils.create2(graph, g2d.ColorPlacement, g2d.HasGradientPosition, cv.getValue()); - graph.claimLiteral(placement, g2d.HasColor, cv.getColor().getAWTColor().getColorComponents(new float[4]), Bindings.FLOAT_ARRAY); + graph.claimLiteral(placement, g2d.HasColor, g2d.Color, cv.getColor().getAWTColor().getColorComponents(new float[4])); graph.claim(gradient, g2d.HasColorPlacement, placement); } } @@ -169,8 +170,11 @@ public class PlaybackExperimentTab extends LabelPropertyTabContributor { if(gradient == null) { return Boolean.FALSE; } + Collection placements = graph.syncRequest(new ObjectsWithType(gradient, g2d.HasColorPlacement, g2d.ColorPlacement)); + if(placements.isEmpty()) + return Boolean.FALSE; - for(Resource placement : graph.syncRequest(new ObjectsWithType(gradient, g2d.HasColorPlacement, g2d.ColorPlacement))) { + for(Resource placement : placements) { Double position = graph.getPossibleRelatedValue(placement, g2d.HasGradientPosition); if(position == null) return Boolean.FALSE; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java index de423013..422f9e9a 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/utils/VariableNameUtils.java @@ -95,6 +95,8 @@ public class VariableNameUtils { if(model == null) return true; Configuration configuration = model.getConfiguration(); + if(configuration == null) + return true; IElement current = model.getElement(variable); for(IElement e : configuration.getElements()) { if(e instanceof Variable) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java new file mode 100644 index 00000000..2e16d6ce --- /dev/null +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/DiagramContainerDummy.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2007, 2011 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.sysdyn.representation; + +import org.simantics.objmap.annotations.GraphType; +import org.simantics.sysdyn.representation.visitors.IElementVisitorVoid; + +@GraphType("http://www.simantics.org/Diagram-2.0/DiagramContainer") +public class DiagramContainerDummy implements IElement { + + @Override + public void accept(IElementVisitorVoid v) { + v.visit(this); + } + +} \ No newline at end of file diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/SysdynSchema.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/SysdynSchema.java index 5b95bc91..3c6a6eed 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/SysdynSchema.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/SysdynSchema.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -53,6 +53,7 @@ public class SysdynSchema extends SimpleSchema { addLinkType(MappingSchemas.fromAnnotations(g, LibraryDummy.class)); addLinkType(MappingSchemas.fromAnnotations(g, Book.class)); addLinkType(MappingSchemas.fromAnnotations(g, Sheet.class)); + addLinkType(MappingSchemas.fromAnnotations(g, DiagramContainerDummy.class)); } catch (DatabaseException e) { e.printStackTrace(); } catch (InstantiationException e) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/ElementVisitorVoidAdapter.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/ElementVisitorVoidAdapter.java index 4ee889c1..64c7d287 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/ElementVisitorVoidAdapter.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/ElementVisitorVoidAdapter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -15,6 +15,7 @@ import org.simantics.sysdyn.representation.Auxiliary; import org.simantics.sysdyn.representation.Cloud; import org.simantics.sysdyn.representation.Configuration; import org.simantics.sysdyn.representation.Dependency; +import org.simantics.sysdyn.representation.DiagramContainerDummy; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.Flow; import org.simantics.sysdyn.representation.Input; @@ -73,4 +74,8 @@ public class ElementVisitorVoidAdapter implements IElementVisitorVoid { @Override public void visit(Book sheet) { } + + @Override + public void visit(DiagramContainerDummy container) { + } } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/IElementVisitorVoid.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/IElementVisitorVoid.java index 89899f15..3c78343b 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/IElementVisitorVoid.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/visitors/IElementVisitorVoid.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Association for Decentralized Information Management in + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -15,6 +15,7 @@ import org.simantics.sysdyn.representation.Auxiliary; import org.simantics.sysdyn.representation.Cloud; import org.simantics.sysdyn.representation.Configuration; import org.simantics.sysdyn.representation.Dependency; +import org.simantics.sysdyn.representation.DiagramContainerDummy; import org.simantics.sysdyn.representation.Enumeration; import org.simantics.sysdyn.representation.Flow; import org.simantics.sysdyn.representation.Input; @@ -38,4 +39,5 @@ public interface IElementVisitorVoid { void visit(Enumeration enumeration); void visit(LibraryDummy libraryDummy); void visit(Book sheet); + void visit(DiagramContainerDummy container); } -- 2.47.1