]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/function/Functions.java
Make it possible to import CSV data via SCL & create models
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / function / Functions.java
index 89878c5b60c59041986f3a572fec0d96bc558236..cc05a173b739e2b6d33fe5b823e3f1fa513c236b 100644 (file)
@@ -40,6 +40,7 @@ import org.simantics.db.common.request.IndexRoot;
 import org.simantics.db.common.request.ObjectsWithType;
 import org.simantics.db.common.request.ReadRequest;
 import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.common.request.WriteResultRequest;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.exception.RuntimeDatabaseException;
 import org.simantics.db.exception.ServiceException;
@@ -49,6 +50,7 @@ import org.simantics.db.layer0.variable.Variable;
 import org.simantics.db.layer0.variable.Variables;
 import org.simantics.db.layer0.variable.Variables.Role;
 import org.simantics.db.procedure.Procedure;
+import org.simantics.district.network.DistrictNetworkUtil;
 import org.simantics.district.network.ontology.DistrictNetworkResource;
 import org.simantics.layer0.Layer0;
 import org.simantics.modeling.ModelingResources;
@@ -244,8 +246,8 @@ public class Functions {
         private Resource leftClickVertexMapping;
         //private Resource defaultCRS;
         
-        private Combo compositeMappingCombo;
-        private Combo componentMappingCombo;
+        //private Combo compositeMappingCombo;
+        //private Combo componentMappingCombo;
 
         protected DefaultMappingsDialog(Shell parentShell, Resource configuration) {
             super(parentShell);
@@ -299,7 +301,7 @@ public class Functions {
                         
                         //crsCombo.setItems(crss.keySet().toArray(new String[crss.size()]));
                         
-                        compositeMappingCombo.setItems(composites.keySet().toArray(new String[composites.size()]));
+                        //compositeMappingCombo.setItems(composites.keySet().toArray(new String[composites.size()]));
                         vertexMappingCombo.select(0);
                         rightClickMappingCombo.select(0);
                         leftClickMappingCombo.select(0);
@@ -307,8 +309,8 @@ public class Functions {
                         
                         //crsCombo.select(0);
                         
-                        if (!composites.isEmpty())
-                            compositeMappingCombo.select(0);
+                        //if (!composites.isEmpty())
+                        //    compositeMappingCombo.select(0);
                     }); 
                     
                 }
@@ -388,22 +390,22 @@ public class Functions {
             Label compositeMappingLabel = new Label(cmposite, SWT.NONE);
             compositeMappingLabel.setText("Select composite");
 
-            compositeMappingCombo = new Combo(cmposite, SWT.READ_ONLY | SWT.BORDER);
-            GridDataFactory.fillDefaults().grab(true, false).applyTo(compositeMappingCombo);
-            compositeMappingCombo.addSelectionListener(new SelectionAdapter() {
-                
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    super.widgetSelected(e);
-                    recalculateMappapleComponents();
-                }
-            });
-            
-            Label compojnentMappingLabel = new Label(cmposite, SWT.NONE);
-            compojnentMappingLabel.setText("Select component");
+//            compositeMappingCombo = new Combo(cmposite, SWT.READ_ONLY | SWT.BORDER);
+//            GridDataFactory.fillDefaults().grab(true, false).applyTo(compositeMappingCombo);
+//            compositeMappingCombo.addSelectionListener(new SelectionAdapter() {
+//                
+//                @Override
+//                public void widgetSelected(SelectionEvent e) {
+//                    super.widgetSelected(e);
+//                    recalculateMappapleComponents();
+//                }
+//            });
             
-            componentMappingCombo = new Combo(cmposite, SWT.READ_ONLY | SWT.BORDER);
-            GridDataFactory.fillDefaults().grab(true, false).applyTo(componentMappingCombo);
+//            Label compojnentMappingLabel = new Label(cmposite, SWT.NONE);
+//            compojnentMappingLabel.setText("Select component");
+//            
+//            componentMappingCombo = new Combo(cmposite, SWT.READ_ONLY | SWT.BORDER);
+//            GridDataFactory.fillDefaults().grab(true, false).applyTo(componentMappingCombo);
         }
         
         protected void recalculateMappapleComponents() {
@@ -463,38 +465,34 @@ public class Functions {
             procedure.execute(null);
             return;
         }
-        Simantics.getSession().asyncRequest(
-                NewCompositeActionFactory.createCompositeRequest(target, defaultName, compositeType),
-                new Procedure<Resource>() {
-                    @Override
-                    public void execute(Resource composite) {
-                        Simantics.getSession().asyncRequest(new WriteRequest() {
-                            
-                            @Override
-                            public void perform(WriteGraph graph) throws DatabaseException {
-                                DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
-                                Resource diagram = graph.getSingleObject(composite, ModelingResources.getInstance(graph).CompositeToDiagram);
-                                graph.claim(diagram, DN.EdgeDefaultMapping, dialog.getDefaultEdgeMapping());
-                                graph.claim(diagram, DN.VertexDefaultMapping, dialog.getDefaultVertexMapping());
-                                graph.claim(diagram, DN.RightClickDefaultMapping, dialog.getRightClickVertexMapping());
-                                graph.claim(diagram, DN.LeftClickDefaultMapping, dialog.getLeftClickVertexMapping());
-                                graph.claim(diagram, DN.HasSpatialRefSystem, dialog.getCRS());
-                                
-                                // Generated name prefix from composite name
-                                String compositeName = graph.getRelatedValue2(composite, Layer0.getInstance(graph).HasName, Bindings.STRING);
-                                graph.claimLiteral(diagram, Layer0X.getInstance(graph).HasGeneratedNamePrefix, "N" + compositeName.substring(compositeName.length() - 1, compositeName.length()));
-                            }
-                        });
-                        DefaultActions.asyncPerformDefaultAction(Simantics.getSession(), composite, false, false, true);
-                        procedure.execute(composite);
-                    }
-
-                    @Override
-                    public void exception(Throwable t) {
-                        LOGGER.error("Failed to create composite, see exception for details.", t);
-                        procedure.exception(t);
-                    }
-                });
+        Simantics.getSession().asyncRequest(new WriteResultRequest<Resource>() {
+
+            @Override
+            public Resource perform(WriteGraph graph) throws DatabaseException {
+                return DistrictNetworkUtil.createNetworkDiagram(graph, target, compositeType, defaultName, 
+                        dialog.getDefaultEdgeMapping(),
+                        dialog.getDefaultVertexMapping(),
+                        dialog.getRightClickVertexMapping(),
+                        dialog.getLeftClickVertexMapping(),
+                        dialog.getCRS()
+                    );
+            }
+            
+
+        }, new Procedure<Resource>() {
+
+            @Override
+            public void execute(Resource composite) {
+                DefaultActions.asyncPerformDefaultAction(Simantics.getSession(), composite, false, false, true);
+                procedure.execute(composite);
+            }
+
+            @Override
+            public void exception(Throwable t) {
+                LOGGER.error("Failed to create composite, see exception for details.", t);
+                procedure.exception(t);
+            }
+        });
     }
 
     public static Collection<Resource> getDistrictDiagrams(ReadGraph graph) throws DatabaseException {