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=e1b81e0f10df3b6fad4729d26e77754c0460dd06;hb=refs%2Fchanges%2F60%2F660%2F1;hp=9d1d08c422c1627480beb0ae1a71ee4117509b68;hpb=e6378bf9c77ffd2d33d81ab882e6a2243506a0a8;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 9d1d08c4..e1b81e0f 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 @@ -1,13 +1,11 @@ package org.simantics.district.imports.ui; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import org.apache.commons.csv.CSVRecord; import org.eclipse.jface.dialogs.IPageChangeProvider; @@ -19,6 +17,7 @@ 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.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridLayout; @@ -26,13 +25,12 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; +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.geotools.referencing.CRS; import org.simantics.district.imports.ui.controls.DynamicComboFieldEditor; -import org.simantics.utils.ui.widgets.FileOrDirectorySelectionWidget; -import org.simantics.utils.ui.widgets.FileSelectionListener; -import org.simantics.utils.ui.widgets.FileSelectionWidget; public class CSVImportWizardPage extends WizardPage { @@ -41,12 +39,12 @@ public class CSVImportWizardPage extends WizardPage { private Map headerIndexAndValues = new HashMap<>(); private Table headerTable; - private Button firstAsHeader; +// private Button firstAsHeader; private Combo delimiterCombo; private TableColumnLayout tableColumnLayout; private Composite tableComposite; - private FileSelectionWidget wktFileSelection; +// private FileSelectionWidget wktFileSelection; // Common for vertex and edge private DynamicComboFieldEditor componentMappingSelector; @@ -64,17 +62,25 @@ public class CSVImportWizardPage extends WizardPage { private DynamicComboFieldEditor endXCoordSelector; private DynamicComboFieldEditor endYCoordSelector; private DynamicComboFieldEditor endZValueSelector; + private DynamicComboFieldEditor tempValueSelector; + private DynamicComboFieldEditor pressureValueSelector; + + private DynamicComboFieldEditor outerDiameterSelector; + private DynamicComboFieldEditor diameterSelector; + private DynamicComboFieldEditor nominalMassFlowSelector; private Group indexMappingGroup; private Composite composite; private Button isVertexImport; + + private Combo sourceCRSCombo; protected CSVImportWizardPage(CSVImportModel model) { super("Import CSV Data"); this.model = model; - setMessage("Select columng index mappings"); + setMessage("Select column index mappings"); } @Override @@ -83,7 +89,11 @@ public class CSVImportWizardPage extends WizardPage { composite.setLayout(new GridLayout(1, false)); GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(composite); + Label label = new Label(composite, SWT.NONE); + label.setText("Select delimiter"); + 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()); delimiterCombo.addSelectionListener(new SelectionListener() { @@ -100,48 +110,65 @@ public class CSVImportWizardPage extends WizardPage { } }); - firstAsHeader = new Button(composite, SWT.CHECK); - firstAsHeader.setText("Read first row as header"); - firstAsHeader.setSelection(model.getReadFirstAsHeader()); - firstAsHeader.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - model.setReadFirstAsHeader(firstAsHeader.getSelection()); - updateHeaders(); - updateCombos(); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - - } - }); +// firstAsHeader = new Button(composite, SWT.CHECK); +// firstAsHeader.setText("Read first row as header"); +// firstAsHeader.setSelection(model.getReadFirstAsHeader()); +// firstAsHeader.addSelectionListener(new SelectionListener() { +// +// @Override +// public void widgetSelected(SelectionEvent e) { +// model.setReadFirstAsHeader(firstAsHeader.getSelection()); +// updateHeaders(); +// updateCombos(); +// } +// +// @Override +// public void widgetDefaultSelected(SelectionEvent e) { +// widgetSelected(e); +// } +// }); tableComposite = new Composite(composite, SWT.BORDER); tableColumnLayout = new TableColumnLayout(); tableComposite.setLayout(tableColumnLayout); - wktFileSelection = new FileSelectionWidget(composite, "WKT file", SWT.OPEN); - wktFileSelection.addListener(new FileSelectionListener() { - + label = new Label(composite, SWT.NONE); + label.setText("Select source Coordinate Reference System"); + + sourceCRSCombo = new Combo(composite, SWT.NONE); + sourceCRSCombo.setToolTipText("Select the coordinate reference system that is used in the source material for possible transformation to target coordinate reference system (EPSG:4326)"); + Set codes = CRS.getSupportedCodes("EPSG"); + sourceCRSCombo.setItems(codes.toArray(new String[codes.size()])); + sourceCRSCombo.addSelectionListener(new SelectionAdapter() { + @Override - public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) { - String[] selection = wktFileSelection.getFilename(); - if (selection != null && selection.length > 0) { - Path wktFile = Paths.get(selection[0]); - if (!Files.exists(wktFile)) { - setErrorMessage("File " + wktFile.toAbsolutePath() + " does not exist"); - } else { - model.setWKTFile(wktFile); - validatePageComplete(); - } - } + public void widgetSelected(SelectionEvent e) { + String current = sourceCRSCombo.getItem(sourceCRSCombo.getSelectionIndex()); + model.setSourceCRS("EPSG:" + current); } }); + +// wktFileSelection = new FileSelectionWidget(composite, "WKT file", SWT.OPEN); +// wktFileSelection.addListener(new FileSelectionListener() { +// +// @Override +// public void fileSelected(FileOrDirectorySelectionWidget source, String[] filename) { +// String[] selection = wktFileSelection.getFilename(); +// if (selection != null && selection.length > 0) { +// Path wktFile = Paths.get(selection[0]); +// if (!Files.exists(wktFile)) { +// setErrorMessage("File " + wktFile.toAbsolutePath() + " does not exist"); +// } else { +// model.setWKTFile(wktFile); +// validatePageComplete(); +// } +// } +// } +// }); isVertexImport = new Button(composite, SWT.CHECK); isVertexImport.setText("File contains vertices"); + isVertexImport.setToolTipText("Enable this if the file contains vertices, i.e. points"); isVertexImport.setSelection(model.isVertexImport()); isVertexImport.addSelectionListener(new SelectionListener() { @@ -263,6 +290,34 @@ public class CSVImportWizardPage extends WizardPage { validatePageComplete(); } }); + tempValueSelector = new DynamicComboFieldEditor("tempValue", "Temperature value", parent); + tempValueSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setTempIndex(Integer.parseInt(tempValueSelector.getValue())); + validatePageComplete(); + } + }); + pressureValueSelector = new DynamicComboFieldEditor("pressureValue", "Pressure value", parent); + pressureValueSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setPressureIndex(Integer.parseInt(pressureValueSelector.getValue())); + validatePageComplete(); + } + }); } private void createEdgeIndexMappingField(Group parent) { @@ -353,6 +408,48 @@ public class CSVImportWizardPage extends WizardPage { validatePageComplete(); } }); + diameterSelector = new DynamicComboFieldEditor("diameterValue", "Diameter value", parent); + diameterSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setDiameterIndex(Integer.parseInt(diameterSelector.getValue())); + validatePageComplete(); + } + }); + outerDiameterSelector = new DynamicComboFieldEditor("outerDiameterValue", "Outer Diameter value", parent); + outerDiameterSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setOuterDiameterIndex(Integer.parseInt(outerDiameterSelector.getValue())); + validatePageComplete(); + } + }); + nominalMassFlowSelector = new DynamicComboFieldEditor("nominalMassFlowValue", "Nominal Mass Flow", parent); + nominalMassFlowSelector.addComboListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + widgetDefaultSelected(e); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + model.setNominalMassFlowIndex(Integer.parseInt(nominalMassFlowSelector.getValue())); + validatePageComplete(); + } + }); } private void updateCombos() { @@ -370,7 +467,7 @@ public class CSVImportWizardPage extends WizardPage { } if (model.isVertexImport()) - updateVertexcombos(namesAndValues); + updateVertexCombos(namesAndValues); else updateEdgeCombos(namesAndValues); @@ -384,12 +481,17 @@ public class CSVImportWizardPage extends WizardPage { endYCoordSelector.updateCombo(namesAndValues); startZValueSelector.updateCombo(namesAndValues); endZValueSelector.updateCombo(namesAndValues); + diameterSelector.updateCombo(namesAndValues); + outerDiameterSelector.updateCombo(namesAndValues); + nominalMassFlowSelector.updateCombo(namesAndValues); } - private void updateVertexcombos(String[][] namesAndValues) { + private void updateVertexCombos(String[][] namesAndValues) { xCoordSelector.updateCombo(namesAndValues); yCoordSelector.updateCombo(namesAndValues); zValueSelector.updateCombo(namesAndValues); + pressureValueSelector.updateCombo(namesAndValues); + tempValueSelector.updateCombo(namesAndValues); } private void updateHeaders() {