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;
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;
// Common for vertex and edge
private DynamicComboFieldEditor componentMappingSelector;
+ private DynamicComboFieldEditor idSelector;
private DynamicComboFieldEditor labelSelector;
// For vertex import
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;
private DynamicComboFieldEditor endXCoordSelector;
private DynamicComboFieldEditor endYCoordSelector;
private DynamicComboFieldEditor endZValueSelector;
- private DynamicComboFieldEditor tempValueSelector;
- private DynamicComboFieldEditor pressureValueSelector;
+ private DynamicComboFieldEditor detailedGeometrySelector;
+
+ private Text edgeConnectionPadding;
private DynamicComboFieldEditor outerDiameterSelector;
private DynamicComboFieldEditor diameterSelector;
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");
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
}
});
+ 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() {
//
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) {
}
});
+ 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) {
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) {
+ 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) {
@Override
public void widgetDefaultSelected(SelectionEvent e) {
- model.setTempIndex(Integer.parseInt(tempValueSelector.getValue()));
+ model.setVelocityIndex(Integer.parseInt(velocitySelector.getValue()));
validatePageComplete();
}
});
- pressureValueSelector = new DynamicComboFieldEditor("pressureValue", "Pressure value", parent);
- pressureValueSelector.addComboListener(new SelectionListener() {
+ flowAreaSelector = new DynamicComboFieldEditor("flowAreaValue", "flowArea", parent);
+ flowAreaSelector.addComboListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
@Override
public void widgetDefaultSelected(SelectionEvent e) {
- model.setPressureIndex(Integer.parseInt(pressureValueSelector.getValue()));
+ 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() {
validatePageComplete();
}
});
+ detailedGeometrySelector = new DynamicComboFieldEditor("detailedGeometryValue", "Geometry", parent);
+ detailedGeometrySelector.addComboListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ widgetDefaultSelected(e);
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ model.detailedGeometryIndex(Integer.parseInt(detailedGeometrySelector.getValue()));
+ validatePageComplete();
+ }
+ });
diameterSelector = new DynamicComboFieldEditor("diameterValue", "Diameter value", parent);
diameterSelector.addComboListener(new SelectionListener() {
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<Integer, String> entry : headerIndexAndValues.entrySet()) {
int key = entry.getKey();
String value = entry.getValue();
updateEdgeCombos(namesAndValues);
componentMappingSelector.updateCombo(namesAndValues);
+ idSelector.updateCombo(namesAndValues);
}
private void updateEdgeCombos(String[][] namesAndValues) {
endYCoordSelector.updateCombo(namesAndValues);
startZValueSelector.updateCombo(namesAndValues);
endZValueSelector.updateCombo(namesAndValues);
+ detailedGeometrySelector.updateCombo(namesAndValues);
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)