X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.imports.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fimports%2Fui%2FCSVImportWizardPage.java;h=b7e46475dcec4f00c2b4069476de5084364b8b4e;hb=46e2c804156e3bd2072ec91a801954c18cd15580;hp=e1b81e0f10df3b6fad4729d26e77754c0460dd06;hpb=231b9da5dfd8129e24cb5a9d2ec87ff9afa7afd9;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizardPage.java b/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizardPage.java index e1b81e0f..b7e46475 100644 --- a/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizardPage.java +++ b/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportWizardPage.java @@ -17,6 +17,8 @@ import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.wizard.IWizardContainer; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -29,6 +31,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; @@ -48,6 +51,7 @@ public class CSVImportWizardPage extends WizardPage { // Common for vertex and edge private DynamicComboFieldEditor componentMappingSelector; + private DynamicComboFieldEditor idSelector; private DynamicComboFieldEditor labelSelector; // For vertex import @@ -55,6 +59,27 @@ 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; + private DynamicComboFieldEditor addressSelector; + private DynamicComboFieldEditor lengthSelector; + // For edge import private DynamicComboFieldEditor startXCoordSelector; private DynamicComboFieldEditor startYCoordSelector; @@ -62,8 +87,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; @@ -76,6 +101,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"); @@ -94,7 +127,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 @@ -148,6 +184,31 @@ public class CSVImportWizardPage extends WizardPage { } }); + sourceCRSCombo.addModifyListener(new ModifyListener() { + + @Override + public void modifyText(ModifyEvent e) { + String currentText = sourceCRSCombo.getText(); + if (codes.contains(currentText)) { + // Select this + String[] items = sourceCRSCombo.getItems(); + int i; + for (i = 0; i < items.length; i++) { + String item = items[i]; + if (currentText.equals(item)) { + break; + } + } + if (i != 0) { + sourceCRSCombo.select(i); + model.setSourceCRS("EPSG:" + currentText); + } else { + System.err.println("this should not happen"); + } + } + } + }); + // wktFileSelection = new FileSelectionWidget(composite, "WKT file", SWT.OPEN); // wktFileSelection.addListener(new FileSelectionListener() { // @@ -225,6 +286,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) { @@ -244,6 +326,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) { @@ -290,8 +387,78 @@ 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) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setSupplyTempIndex(Integer.parseInt(supplyTempValueSelector.getValue())); + validatePageComplete(); + } + }); + returnTempValueSelector = new DynamicComboFieldEditor("returnTempValue", "Return Temperature value", parent); + returnTempValueSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + 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) { @@ -300,12 +467,12 @@ public class CSVImportWizardPage extends WizardPage { @Override public void widgetDefaultSelected(SelectionEvent e) { - model.setTempIndex(Integer.parseInt(tempValueSelector.getValue())); + model.setDeltaTemperatureIndex(Integer.parseInt(dtSelector.getValue())); validatePageComplete(); } }); - pressureValueSelector = new DynamicComboFieldEditor("pressureValue", "Pressure value", parent); - pressureValueSelector.addComboListener(new SelectionListener() { + heatPowerSelector = new DynamicComboFieldEditor("heatPowerValue", "Heat Power", parent); + heatPowerSelector.addComboListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { @@ -314,13 +481,188 @@ public class CSVImportWizardPage extends WizardPage { @Override public void widgetDefaultSelected(SelectionEvent e) { - model.setPressureIndex(Integer.parseInt(pressureValueSelector.getValue())); + 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(); + } + }); + addressSelector = new DynamicComboFieldEditor("addressValue", "addressSelector", parent); + addressSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setAddressIndex(Integer.parseInt(addressSelector.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() { @@ -450,12 +792,83 @@ 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(); + } + }); + lengthSelector = new DynamicComboFieldEditor("lengthValue", "lengthSelector", parent); + lengthSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setLengthIndex(Integer.parseInt(lengthSelector.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 entry : headerIndexAndValues.entrySet()) { int key = entry.getKey(); String value = entry.getValue(); @@ -472,6 +885,7 @@ public class CSVImportWizardPage extends WizardPage { updateEdgeCombos(namesAndValues); componentMappingSelector.updateCombo(namesAndValues); + idSelector.updateCombo(namesAndValues); } private void updateEdgeCombos(String[][] namesAndValues) { @@ -484,15 +898,39 @@ 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); + lengthSelector.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); + addressSelector.updateCombo(namesAndValues); } + + private void updateHeaders() { if (headerTable != null)