]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizardPage.java
Pushing some (very) old changes to remote.. should have done long ago
[simantics/district.git] / org.simantics.district.imports.ui / src / org / simantics / district / imports / ui / CSVImportWizardPage.java
index 2357193077c97301e80d91023ebdb8c9c51be976..0035f6b7b5d9d2761e09e5d6865793f49483ba3c 100644 (file)
@@ -12,6 +12,7 @@ import org.eclipse.jface.dialogs.IPageChangeProvider;
 import org.eclipse.jface.dialogs.IPageChangedListener;
 import org.eclipse.jface.dialogs.PageChangedEvent;
 import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.layout.TableColumnLayout;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.wizard.IWizardContainer;
@@ -31,6 +32,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
 import org.geotools.referencing.CRS;
 import org.simantics.district.imports.ui.controls.DynamicComboFieldEditor;
 
@@ -50,6 +52,7 @@ public class CSVImportWizardPage extends WizardPage {
 
     // Common for vertex and edge
     private DynamicComboFieldEditor componentMappingSelector;
+    private DynamicComboFieldEditor idSelector;
     private DynamicComboFieldEditor labelSelector;
     
     // For vertex import
@@ -57,6 +60,25 @@ public class CSVImportWizardPage extends WizardPage {
     private DynamicComboFieldEditor yCoordSelector;
     private DynamicComboFieldEditor zValueSelector;
 
+    private DynamicComboFieldEditor supplyTempValueSelector;
+    private DynamicComboFieldEditor returnTempValueSelector;
+    private DynamicComboFieldEditor supplyPressureValueSelector;
+    private DynamicComboFieldEditor returnPressureValueSelector;
+    private DynamicComboFieldEditor dpSelector;
+    private DynamicComboFieldEditor dtSelector;
+    private DynamicComboFieldEditor heatPowerSelector;
+    private DynamicComboFieldEditor nominalHeadMSelector;
+    private DynamicComboFieldEditor nominalHeadBSelector;
+    private DynamicComboFieldEditor nominalFlowSelector;
+    private DynamicComboFieldEditor maximumHeadMSelector;
+    private DynamicComboFieldEditor heatLoadDsSelector;
+    private DynamicComboFieldEditor massFlowSelector;
+    private DynamicComboFieldEditor volFlowSelector;
+    private DynamicComboFieldEditor velocitySelector;
+    private DynamicComboFieldEditor flowAreaSelector;
+    private DynamicComboFieldEditor nominalPressureLossSelector;
+    private DynamicComboFieldEditor valvePositionSelector;
+
     // For edge import
     private DynamicComboFieldEditor startXCoordSelector;
     private DynamicComboFieldEditor startYCoordSelector;
@@ -64,8 +86,8 @@ public class CSVImportWizardPage extends WizardPage {
     private DynamicComboFieldEditor endXCoordSelector;
     private DynamicComboFieldEditor endYCoordSelector;
     private DynamicComboFieldEditor endZValueSelector;
-    private DynamicComboFieldEditor tempValueSelector;
-    private DynamicComboFieldEditor pressureValueSelector;
+
+    private Text edgeConnectionPadding;
     
     private DynamicComboFieldEditor outerDiameterSelector;
     private DynamicComboFieldEditor diameterSelector;
@@ -78,6 +100,14 @@ public class CSVImportWizardPage extends WizardPage {
     private Button isVertexImport;
 
     private Combo sourceCRSCombo;
+
+    private DynamicComboFieldEditor edgeFlowAreaSelector;
+
+    private DynamicComboFieldEditor kReturnSelector;
+
+    private DynamicComboFieldEditor kSupplySelector;
+
+    private DynamicComboFieldEditor tGroundSelector;
     
     protected CSVImportWizardPage(CSVImportModel model) {
         super("Import CSV Data");
@@ -96,7 +126,10 @@ public class CSVImportWizardPage extends WizardPage {
         
         delimiterCombo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
         delimiterCombo.setToolTipText("Select the delimiter that is used to separate elements in the CSV file");
-        delimiterCombo.setItems(model.getDelimiterFormats());
+        String[] formats = model.getDelimiterFormats();
+        delimiterCombo.setItems(formats);
+        if (formats.length > 0)
+            delimiterCombo.select(0);
         delimiterCombo.addSelectionListener(new SelectionListener() {
 
             @Override
@@ -252,6 +285,27 @@ public class CSVImportWizardPage extends WizardPage {
             createEdgeIndexMappingField(indexMappingGroup);
         
         createCommonIndexMappingField(indexMappingGroup);
+        
+        if (!model.isVertexImport()) {
+            Label label = new Label(indexMappingGroup, SWT.NONE);
+            label.setText("Connection point padding");
+            GridDataFactory.fillDefaults().applyTo(label);
+            edgeConnectionPadding = new Text(indexMappingGroup, SWT.BORDER);
+            GridDataFactory.fillDefaults().applyTo(edgeConnectionPadding);
+            edgeConnectionPadding.setText("0.0001"); // default
+            edgeConnectionPadding.addModifyListener(new ModifyListener() {
+                
+                @Override
+                public void modifyText(ModifyEvent e) {
+                    try {
+                        double padding = Double.parseDouble("");
+                        model.setEdgePapping(padding);
+                    } catch (NumberFormatException ee) {
+                        // ignore
+                    }
+                }
+            });
+        }
     }
 
     private void createCommonIndexMappingField(Group parent) {
@@ -271,6 +325,21 @@ public class CSVImportWizardPage extends WizardPage {
             }
         });
         
+        idSelector = new DynamicComboFieldEditor("id", "ID", parent);
+        idSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setIdIndex(Integer.parseInt(idSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        
     }
 
     private void createVertexIndexMappingField(Group parent) {
@@ -317,8 +386,8 @@ public class CSVImportWizardPage extends WizardPage {
                 validatePageComplete();
             }
         });
-        tempValueSelector = new DynamicComboFieldEditor("tempValue", "Temperature value", parent);
-        tempValueSelector.addComboListener(new SelectionListener() {
+        supplyTempValueSelector = new DynamicComboFieldEditor("tempValue", "Supply Temperature value", parent);
+        supplyTempValueSelector.addComboListener(new SelectionListener() {
 
             @Override
             public void widgetSelected(SelectionEvent e) {
@@ -327,12 +396,12 @@ public class CSVImportWizardPage extends WizardPage {
 
             @Override
             public void widgetDefaultSelected(SelectionEvent e) {
-                model.setTempIndex(Integer.parseInt(tempValueSelector.getValue()));
+                model.setSupplyTempIndex(Integer.parseInt(supplyTempValueSelector.getValue()));
                 validatePageComplete();
             }
         });
-        pressureValueSelector = new DynamicComboFieldEditor("pressureValue", "Pressure value", parent);
-        pressureValueSelector.addComboListener(new SelectionListener() {
+        returnTempValueSelector = new DynamicComboFieldEditor("returnTempValue", "Return Temperature value", parent);
+        returnTempValueSelector.addComboListener(new SelectionListener() {
 
             @Override
             public void widgetSelected(SelectionEvent e) {
@@ -341,13 +410,242 @@ public class CSVImportWizardPage extends WizardPage {
 
             @Override
             public void widgetDefaultSelected(SelectionEvent e) {
-                model.setPressureIndex(Integer.parseInt(pressureValueSelector.getValue()));
+                model.setReturnTempIndex(Integer.parseInt(returnTempValueSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        supplyPressureValueSelector = new DynamicComboFieldEditor("pressureValue", "Supply Pressure value", parent);
+        supplyPressureValueSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setSupplyPressureIndex(Integer.parseInt(supplyPressureValueSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        returnPressureValueSelector = new DynamicComboFieldEditor("returnPressureValue", "Return Pressure value", parent);
+        returnPressureValueSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setReturnPressureIndex(Integer.parseInt(returnPressureValueSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        dpSelector = new DynamicComboFieldEditor("dpValue", "Delta pressure ", parent);
+        dpSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setDeltaPressureIndex(Integer.parseInt(dpSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        dtSelector = new DynamicComboFieldEditor("dtValue", "Delta temperature ", parent);
+        dtSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setDeltaTemperatureIndex(Integer.parseInt(dtSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        heatPowerSelector = new DynamicComboFieldEditor("heatPowerValue", "Heat Power", parent);
+        heatPowerSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setHeatPowerIndex(Integer.parseInt(heatPowerSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        nominalHeadMSelector = new DynamicComboFieldEditor("nominalHeadMValue", "nominalHeadM", parent);
+        nominalHeadMSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setNominalHeadMIndex(Integer.parseInt(nominalHeadMSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        nominalHeadBSelector = new DynamicComboFieldEditor("nominalHeadBValue", "nominalHeadB", parent);
+        nominalHeadBSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setNominalHeadBIndex(Integer.parseInt(nominalHeadBSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        nominalFlowSelector = new DynamicComboFieldEditor("nominalFlowValue", "nominalFlow", parent);
+        nominalFlowSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setNominalFlowIndex(Integer.parseInt(nominalFlowSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+
+        maximumHeadMSelector = new DynamicComboFieldEditor("maximumHeadMValue", "maximumHeadM", parent);
+        maximumHeadMSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setMaximumHeadMIndex(Integer.parseInt(maximumHeadMSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        heatLoadDsSelector = new DynamicComboFieldEditor("heatLoadDsValue", "heatLoadDs", parent);
+        heatLoadDsSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setHeatLoadDsIndex(Integer.parseInt(heatLoadDsSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        massFlowSelector = new DynamicComboFieldEditor("massFlowValue", "massFlow", parent);
+        massFlowSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setMassFlowIndex(Integer.parseInt(massFlowSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        volFlowSelector = new DynamicComboFieldEditor("volFlowValue", "volFlow", parent);
+        volFlowSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setVolFlowIndex(Integer.parseInt(volFlowSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        velocitySelector = new DynamicComboFieldEditor("velocityValue", "velocity", parent);
+        velocitySelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setVelocityIndex(Integer.parseInt(velocitySelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        flowAreaSelector = new DynamicComboFieldEditor("flowAreaValue", "flowArea", parent);
+        flowAreaSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setFlowAreaIndex(Integer.parseInt(flowAreaSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        nominalPressureLossSelector = new DynamicComboFieldEditor("nominalPressureLossValue", "nominalPressureLoss", parent);
+        nominalPressureLossSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setNominalPressureLossIndex(Integer.parseInt(nominalPressureLossSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        valvePositionSelector = new DynamicComboFieldEditor("valvePositionSelectorValue", "valvePositionSelector", parent);
+        valvePositionSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setValvePositionIndex(Integer.parseInt(valvePositionSelector.getValue()));
                 validatePageComplete();
             }
         });
     }
 
     private void createEdgeIndexMappingField(Group parent) {
+        
+//        Composite paddingComposite = new Composite(parent, SWT.NONE);
+//        GridLayoutFactory.fillDefaults().numColumns(2).applyTo(paddingComposite);
+        
         startXCoordSelector = new DynamicComboFieldEditor("startxCoord", "Start X Coordinate", parent);
         startXCoordSelector.addComboListener(new SelectionListener() {
 
@@ -477,12 +775,69 @@ public class CSVImportWizardPage extends WizardPage {
                 validatePageComplete();
             }
         });
+        edgeFlowAreaSelector = new DynamicComboFieldEditor("edgeFlowAreaValue", "Flow Area", parent);
+        edgeFlowAreaSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setEdgeFlowAreaIndex(Integer.parseInt(edgeFlowAreaSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        kReturnSelector = new DynamicComboFieldEditor("kReturnValue", "K Return", parent);
+        kReturnSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setKReturnIndex(Integer.parseInt(kReturnSelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        kSupplySelector = new DynamicComboFieldEditor("kSupplyValue", "K Supply", parent);
+        kSupplySelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setKSupplyIndex(Integer.parseInt(kSupplySelector.getValue()));
+                validatePageComplete();
+            }
+        });
+        tGroundSelector = new DynamicComboFieldEditor("tGroundValue", "Temperature Ground", parent);
+        tGroundSelector.addComboListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                widgetDefaultSelected(e);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                model.setTGroundIndex(Integer.parseInt(tGroundSelector.getValue()));
+                validatePageComplete();
+            }
+        });
     }
 
     private void updateCombos() {
-        String[][] namesAndValues = new String[headerIndexAndValues.size()][];
+        String[][] namesAndValues = new String[headerIndexAndValues.size() + 1][];
 
-        int i = 0;
+        namesAndValues[0] = new String[] {"", "-1"};
+        int i = 1;
         for (Entry<Integer, String> entry : headerIndexAndValues.entrySet()) {
             int key = entry.getKey();
             String value = entry.getValue();
@@ -499,6 +854,7 @@ public class CSVImportWizardPage extends WizardPage {
             updateEdgeCombos(namesAndValues);
 
         componentMappingSelector.updateCombo(namesAndValues);
+        idSelector.updateCombo(namesAndValues);
     }
 
     private void updateEdgeCombos(String[][] namesAndValues) {
@@ -511,15 +867,37 @@ public class CSVImportWizardPage extends WizardPage {
         diameterSelector.updateCombo(namesAndValues);
         outerDiameterSelector.updateCombo(namesAndValues);
         nominalMassFlowSelector.updateCombo(namesAndValues);
+        edgeFlowAreaSelector.updateCombo(namesAndValues);
+        kReturnSelector.updateCombo(namesAndValues);
+        kSupplySelector.updateCombo(namesAndValues);
+        tGroundSelector.updateCombo(namesAndValues);
     }
 
     private void updateVertexCombos(String[][] namesAndValues) {
         xCoordSelector.updateCombo(namesAndValues);
         yCoordSelector.updateCombo(namesAndValues);
         zValueSelector.updateCombo(namesAndValues);
-        pressureValueSelector.updateCombo(namesAndValues);
-        tempValueSelector.updateCombo(namesAndValues);
+        supplyTempValueSelector.updateCombo(namesAndValues);       
+        returnTempValueSelector.updateCombo(namesAndValues);       
+        supplyPressureValueSelector.updateCombo(namesAndValues);   
+        returnPressureValueSelector.updateCombo(namesAndValues);   
+        dpSelector.updateCombo(namesAndValues);                    
+        dtSelector.updateCombo(namesAndValues);                    
+        heatPowerSelector.updateCombo(namesAndValues);             
+        valvePositionSelector.updateCombo(namesAndValues);             
+        nominalHeadMSelector.updateCombo(namesAndValues);          
+        nominalHeadBSelector.updateCombo(namesAndValues);          
+        nominalFlowSelector.updateCombo(namesAndValues);           
+        maximumHeadMSelector.updateCombo(namesAndValues);          
+        heatLoadDsSelector.updateCombo(namesAndValues);            
+        massFlowSelector.updateCombo(namesAndValues);              
+        volFlowSelector.updateCombo(namesAndValues);               
+        velocitySelector.updateCombo(namesAndValues);              
+        flowAreaSelector.updateCombo(namesAndValues);              
+        nominalPressureLossSelector.updateCombo(namesAndValues);   
     }
+    
+    
 
     private void updateHeaders() {
         if (headerTable != null)