From a873db37604d27d6fd1d4e3e5b22c21d73fe6c8a Mon Sep 17 00:00:00 2001 From: lempinen Date: Fri, 20 May 2011 08:03:06 +0000 Subject: [PATCH] git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/branches/simantics-1.4@21041 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 59094 -> 59203 bytes .../graph/Sysdyn.pgraph | 1 + org.simantics.sysdyn.ui/build.properties | 3 +- .../sysdyn/ui/elements2/InputFactory.java | 3 ++ .../ui/modelica/SysdynModelicaEditor.java | 40 ++++++++++++++++- .../sysdyn/adapter/ChildVariable.java | 9 ++++ .../simantics/sysdyn/manager/SysdynModel.java | 41 +++++++++++++++++- .../sysdyn/representation/Redeclaration.java | 3 ++ .../expressions/ParameterExpression.java | 2 +- 9 files changed, 98 insertions(+), 4 deletions(-) diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 9249c4122a42b528f10e68ddcb7c6e925f0ee30e..ddf5cc1bb8e7b6a74b73fb3d0b0a115c2542fe18 100644 GIT binary patch literal 59203 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 X@0L&aUW3Bed{6EcpYERMijV&V)bt6^ diff --git a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph index e714c7c8..3428e820 100644 --- a/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph +++ b/org.simantics.sysdyn.ontology/graph/Sysdyn.pgraph @@ -88,6 +88,7 @@ SYSDYN.Variable size.getWidth()) size.setRect(size.getX(), size.getY(), reference.getBoundsInLocal().getWidth(), size.getHeight()); + */ } else size.setFrame(0, 0, 0, 0); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/modelica/SysdynModelicaEditor.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/modelica/SysdynModelicaEditor.java index 96dffc74..c5a2ed34 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/modelica/SysdynModelicaEditor.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/modelica/SysdynModelicaEditor.java @@ -11,6 +11,9 @@ *******************************************************************************/ package org.simantics.sysdyn.ui.modelica; +import java.util.HashSet; +import java.util.Set; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.operation.IRunnableContext; @@ -25,13 +28,19 @@ import org.eclipse.jface.text.source.MatchingCharacterPainter; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.editors.text.TextEditor; import org.eclipse.ui.texteditor.AbstractDocumentProvider; import org.simantics.db.exception.DatabaseException; import org.simantics.sysdyn.modelica.ModelicaWriter; import org.simantics.sysdyn.representation.Configuration; +import org.simantics.sysdyn.representation.IElement; import org.simantics.sysdyn.representation.LoadRepresentation; +import org.simantics.sysdyn.representation.Module; +import org.simantics.sysdyn.representation.ModuleType; import org.simantics.ui.SimanticsUI; import org.simantics.ui.workbench.ResourceEditorInput; @@ -41,6 +50,19 @@ public class SysdynModelicaEditor extends TextEditor { AnnotationModel annotationModel = new AnnotationModel(); AnnotationPainter apainter; + + public void init(final IEditorSite site, final IEditorInput input) throws PartInitException { + super.init(site, input); + try { + Configuration configuration = + LoadRepresentation.loadConfiguration(SimanticsUI.getSession(), ((ResourceEditorInput)input).getResource()); + setPartName(configuration.getLabel()); + } catch (DatabaseException e) { + e.printStackTrace(); + } + + } + public SysdynModelicaEditor() { super(); showOverviewRuler(); @@ -59,7 +81,13 @@ public class SysdynModelicaEditor extends TextEditor { Configuration configuration = LoadRepresentation.loadConfiguration(SimanticsUI.getSession(), ((ResourceEditorInput)element).getResource()); ModelicaWriter writer = new ModelicaWriter(); - writer.write(configuration); + + HashSet configurations = new HashSet(); + configurations.add(configuration); + getConfigurations(configuration, configurations); + + for(Configuration c : configurations) + writer.write(c); return new Document(writer.toString()); } catch (DatabaseException e) { @@ -96,6 +124,16 @@ public class SysdynModelicaEditor extends TextEditor { } + private void getConfigurations(Configuration configuration, Set configurations) { + for(IElement e : configuration.getElements()) { + if(e instanceof Module) { + ModuleType mt = ((Module) e).getType(); + configurations.add(mt.getConfiguration()); + getConfigurations(mt.getConfiguration(), configurations); + } + } + } + @Override protected void createActions() { super.createActions(); diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java index ffd4a0a5..8e93bdfa 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/adapter/ChildVariable.java @@ -24,7 +24,9 @@ import org.simantics.db.WriteGraph; import org.simantics.db.common.utils.OrderedSetUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.AbstractChildVariable; +import org.simantics.db.layer0.variable.DatatypePropertyVariable; import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; import org.simantics.layer0.Layer0; import org.simantics.sysdyn.SysdynResource; @@ -80,6 +82,13 @@ public class ChildVariable extends AbstractChildVariable { return super.getInterface(graph, clazz); } + @Override + public Variable getPossibleExtraProperty(ReadGraph graph, String name) throws DatabaseException { + if(Variables.DATATYPE.equals(name)) { + return new DatatypePropertyVariable(this); + } + return super.getPossibleExtraProperty(graph, name); + } /* * * diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java index 748841a9..40bbf5ae 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynModel.java @@ -11,9 +11,11 @@ *******************************************************************************/ package org.simantics.sysdyn.manager; +import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -285,8 +287,45 @@ public class SysdynModel implements IMappingListener, IModel { } private boolean hasStructureChanged(String modelText, Map inits) { - if (!modelText.equals(previousModelStructure)) + + + BufferedReader current = new BufferedReader( + new StringReader(modelText)); + BufferedReader previous = new BufferedReader( + new StringReader(previousModelStructure)); + + String c, p; + try { + c = current.readLine(); + p = previous.readLine(); + + while (c != null && p != null) { + if(!c.equals(p)) { + if(c.contains("parameter") && p.contains("parameter")) { + int i = c.indexOf("="); + if(!c.substring(0, i).equals(p.substring(0, i))) { + // different parameter definition + return true; + } + } else { + // other than a line containing parameters differs + return true; + } + } + c = current.readLine(); + p = previous.readLine(); + } + + if((c == null && p != null) || (c != null && p == null)) { + // different lengths + return true; + } + + } catch(IOException e) { + //e.printStackTrace(); return true; + } + for(String key : previousImportantInits.keySet()) { if(!inits.containsKey(key) || !previousImportantInits.get(key).equals(inits.get(key))) return true; diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java index cdf33978..e850d9c5 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Redeclaration.java @@ -67,6 +67,9 @@ public class Redeclaration { * @return */ private String getSeparator(Redeclaration redeclaration, String separator) { + if(redeclaration == null || redeclaration.replacedEnumeration == null || + redeclaration.replacedEnumeration.getParentConfiguration() == null) + return separator = "_"; for(IElement e : redeclaration.replacedEnumeration.getParentConfiguration().getElements()) { if(e instanceof Module) { for(Redeclaration rd : ((Module)e).getRedeclarations()) { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java index 47a9c8d6..e5649c11 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/ParameterExpression.java @@ -55,7 +55,7 @@ public class ParameterExpression extends Expression { StringBuilder sb = new StringBuilder(); sb.append(" " + (parameter ? "parameter " : "") + variable.getType() + " " + variable.getName() + range); if(parameter) - sb.append(" = " + 0.0 + " /* Value read from init file */"); + sb.append(" = " + getValue() + " /* Actual value read from init file */"); sb.append(";\n"); return sb.toString(); } -- 2.47.1