]> gerrit.simantics Code Review - simantics/district.git/commitdiff
Merge remote-tracking branch 'origin/master' into release/1.35.2
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 6 Sep 2019 08:56:11 +0000 (11:56 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 10 Sep 2019 12:40:26 +0000 (15:40 +0300)
Conflicts resolved:
org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportModel.java
org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizard.java
org.simantics.district.network.ontology/graph/DistrictNetworkProfiles.pgraph
org.simantics.district.network.ontology/src/org/simantics/district/network/ontology/DistrictNetworkResource.java
org.simantics.district.network.ui/META-INF/MANIFEST.MF
org.simantics.district.network.ui/adapters.xml
org.simantics.district.network.ui/fragment.e4xmi
org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictTransformUtil.java
org.simantics.district.network.ui/src/org/simantics/district/network/ui/contributions/NetworkElementActionMenuContribution.java
org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkEdgeNode.java
org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java
org.simantics.district.network/scl/Simantics/District/Algorithm.scl
org.simantics.district.network/src/org/simantics/district/network/DistrictNetworkUtil.java
org.simantics.district.network/src/org/simantics/district/network/profile/ArrowLengthStyle.java

gitlab #60

1  2 
org.simantics.district.network.ui/src/org/simantics/district/network/ui/contributions/NetworkElementActionMenuContribution.java
pom.xml

index ec03ab87ffe5020c22d6106640ec53a204137025,cca371728d8dcb13a95feb81ca26589f0f5bd009..e29d11a22e2f0ec919d9c5e397b6b78c606344c8
@@@ -14,6 -14,7 +14,7 @@@ import org.eclipse.e4.ui.model.applicat
  import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
  import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
  import org.eclipse.e4.ui.services.IServiceConstants;
+ import org.eclipse.swt.widgets.Display;
  import org.simantics.Simantics;
  import org.simantics.db.ReadGraph;
  import org.simantics.db.Resource;
@@@ -30,10 -31,12 +31,12 @@@ import org.simantics.db.layer0.variable
  import org.simantics.district.network.ontology.DistrictNetworkResource;
  import org.simantics.layer0.Layer0;
  import org.simantics.modeling.ModelingResources;
+ import org.simantics.modeling.ui.scl.SCLScripts;
  import org.simantics.scl.compiler.top.ValueNotFound;
  import org.simantics.scl.osgi.SCLOsgi;
  import org.simantics.scl.runtime.SCLContext;
  import org.simantics.scl.runtime.function.Function;
+ import org.simantics.scl.runtime.reporting.SCLReportingHandler;
  import org.simantics.scl.runtime.tuple.Tuple2;
  import org.simantics.utils.ui.ISelectionUtils;
  import org.slf4j.Logger;
@@@ -44,7 -47,7 +47,7 @@@ public class NetworkElementActionMenuCo
      static private Logger LOGGER = LoggerFactory.getLogger(NetworkElementActionMenuContribution.class);
      
      @AboutToShow
-     public void aboutToShow(@Named(IServiceConstants.ACTIVE_SELECTION) Object selection, List<MMenuElement> items) {
+     public void aboutToShow(@Named(IServiceConstants.ACTIVE_SELECTION) Object selection, Display display, List<MMenuElement> items) {
          final List<Resource> vertices = ISelectionUtils.getPossibleKeys(selection, SelectionHints.KEY_MAIN, Resource.class);
          if (vertices.size() != 1)
              return;
              return;
          }
          
 +        if (actions == null || actions.isEmpty())
 +            return;
 +        
          items.add(MMenuFactory.INSTANCE.createMenuSeparator());
          MMenu subMenu = MMenuFactory.INSTANCE.createMenu();
          List<MMenuElement> children = subMenu.getChildren();
          subMenu.setLabel("Component Actions");
          items.add(subMenu);
-         
          for (Tuple2 action : actions) {
              String label = (String) action.c0;
              @SuppressWarnings("rawtypes")
                  
                  @Execute
                  public void execute() {
+                     // Handler that only opens the SCL script console on demand
+                     SCLReportingHandler handler = new SCLReportingHandler() {
+                         
+                         private SCLReportingHandler handler;
+                         
+                         // Get a handler for the SCL script console view
+                         private SCLReportingHandler getHandler() {
+                             if (handler == null) {
+                                 handler = SCLScripts.getOrCreateConsoleCommandSession().second;
+                             }   
+                             return handler;
+                         }
+                         
+                         @Override
+                         public void printError(String error) {
+                             display.asyncExec(() -> {
+                                 getHandler().printError(error);
+                             });
+                         }
+                         
+                         @Override
+                         public void printCommand(String command) {
+                             display.asyncExec(() -> {
+                                 getHandler().printCommand(command);
+                             });
+                         }
+                         
+                         @Override
+                         public void print(String text) {
+                             display.asyncExec(() -> {
+                                 getHandler().print(text);
+                             });
+                         }
+                         
+                         @Override
+                         public void didWork(double amount) {
+                             display.asyncExec(() -> {
+                                 getHandler().didWork(amount);
+                             });
+                         }
+                     };
+                     
                      Simantics.getSession().asyncRequest(new WriteRequest() {
                          @SuppressWarnings("unchecked")
                          @Override
                              graph.markUndoPoint();
                              Layer0Utils.addCommentMetadata(graph, label + " for " + v.getName(graph));
                              
-                             Simantics.applySCLWrite(graph, function, v);
+                             SCLContext context = SCLContext.getCurrent();
+                             Object oldHandler = context.put(SCLReportingHandler.REPORTING_HANDLER, handler);
+                             try {
+                                 Simantics.applySCLWrite(graph, function, v);
+                             }
+                             finally {
+                                 context.put(SCLReportingHandler.REPORTING_HANDLER, oldHandler);
+                             }
                          }
-                     }, (DatabaseException e) -> LOGGER.error("Running command " + label + " for " + vertex + " failed", e));
+                     }, (DatabaseException e) -> {
+                         if (e != null) LOGGER.error("Running command " + label + " for " + vertex + " failed", e);
+                     });
                  }
              };
              
diff --combined pom.xml
index f36b9763c05f7bb8e0a3e25d42dd74ce768243c6,8bec8afda089560df799ba0c8d7c6aec8bb32109..5489a9087306724350c083bf849047ec9a21eeec
+++ b/pom.xml
@@@ -8,7 -8,7 +8,7 @@@
  
        <!-- common settings for all modules -->
        <properties>
 -              <branch-spec>master</branch-spec>
 +              <branch-spec>release/1.35.1</branch-spec>
                <simantics-download-site>http://www.simantics.org/download</simantics-download-site>
                <tycho-version>1.0.0</tycho-version>
        </properties>
                        <layout>p2</layout>
                        <url>${simantics-download-site}/${branch-spec}/sdk</url>
                </repository>
+               <repository>
+                       <id>external-components</id>
+                       <layout>p2</layout>
+                       <url>${simantics-download-site}/${branch-spec}/external-components/maven</url>
+               </repository>
        </repositories>
  
        <pluginRepositories>
                <module>org.simantics.district.route.feature</module>
                <module>org.simantics.district.ui.feature</module>
                <module>org.simantics.maps.server.feature</module>
+               
+               <module>org.simantics.maps.elevation.server</module>
+               <module>org.simantics.maps.elevation.server.ui</module>
+               
                <module>org.simantics.district.repository</module>
        </modules>
  </project>