diff --git a/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/CommonInstanceExportConfigurationPage.java b/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/CommonInstanceExportConfigurationPage.java
new file mode 100644
index 0000000000..c68eea2b23
--- /dev/null
+++ b/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/CommonInstanceExportConfigurationPage.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2014 Data Harmonisation Panel
+ *
+ * All rights reserved. This program and the accompanying materials are made
+ * available under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution. If not, see .
+ *
+ * Contributors:
+ * Data Harmonisation Panel
+ */
+
+package eu.esdihumboldt.hale.io.csv.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.esdihumboldt.hale.common.core.io.Value;
+import eu.esdihumboldt.hale.common.instance.io.InstanceWriter;
+import eu.esdihumboldt.hale.io.csv.InstanceTableIOConstants;
+import eu.esdihumboldt.hale.ui.io.IOWizard;
+import eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage;
+
+/**
+ * Configuration page for exporting of instances
+ *
+ * @author Emanuela Epure
+ */
+public class CommonInstanceExportConfigurationPage
+ extends AbstractConfigurationPage> {
+
+ protected Button solveNestedProperties;
+ protected Button useSchema;
+ protected Composite page;
+
+ /**
+ * @param title
+ *
+ */
+ public CommonInstanceExportConfigurationPage(String title) {
+ super(title);
+ setTitle("Additonal Export Options");
+ setDescription("Select if nested properties should be solved and a type");
+ }
+
+ /**
+ * @see eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage#enable()
+ */
+ @Override
+ public void enable() {
+ // not required
+ }
+
+ /**
+ * @see eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage#disable()
+ */
+ @Override
+ public void disable() {
+ // not required
+ }
+
+ /**
+ * @see eu.esdihumboldt.hale.ui.io.IOWizardPage#updateConfiguration(eu.esdihumboldt.hale.common.core.io.IOProvider)
+ */
+ @Override
+ public boolean updateConfiguration(InstanceWriter provider) {
+ provider.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES,
+ Value.of(solveNestedProperties.getSelection()));
+ provider.setParameter(InstanceTableIOConstants.USE_SCHEMA,
+ Value.of(useSchema.getSelection()));
+ return true;
+ }
+
+ /**
+ * @see eu.esdihumboldt.hale.ui.HaleWizardPage#createContent(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected void createContent(Composite page) {
+ this.page = page;
+
+ page.setLayout(new GridLayout(1, false));
+
+ solveNestedProperties = new Button(page, SWT.CHECK);
+ solveNestedProperties.setText("Solve nested properties");
+ solveNestedProperties.setSelection(true);
+
+ useSchema = new Button(page, SWT.CHECK);
+ useSchema.setText("Use the source schema for the order of the exported columns");
+ useSchema.setSelection(true);
+ }
+
+}
diff --git a/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/InstanceExportConfigurationPage.java b/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/InstanceExportConfigurationPage.java
index fd8fc5afcc..a30d08fb84 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/InstanceExportConfigurationPage.java
+++ b/io/plugins/eu.esdihumboldt.hale.io.csv.ui/src/eu/esdihumboldt/hale/io/csv/ui/InstanceExportConfigurationPage.java
@@ -21,8 +21,6 @@
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.PlatformUI;
@@ -34,8 +32,6 @@
import eu.esdihumboldt.hale.common.schema.model.TypeDefinition;
import eu.esdihumboldt.hale.io.csv.InstanceTableIOConstants;
import eu.esdihumboldt.hale.ui.common.definition.selector.TypeDefinitionSelector;
-import eu.esdihumboldt.hale.ui.io.IOWizard;
-import eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage;
import eu.esdihumboldt.hale.ui.service.instance.InstanceService;
/**
@@ -43,13 +39,9 @@
*
* @author Patrick Lieb
*/
-public class InstanceExportConfigurationPage
- extends AbstractConfigurationPage> {
+public class InstanceExportConfigurationPage extends CommonInstanceExportConfigurationPage {
- protected Button solveNestedProperties;
- protected Button useSchema;
private TypeDefinitionSelector typeSelector;
- protected Composite page;
private final ViewerFilter validTypesToSelect = new ViewerFilter() {
@@ -102,10 +94,7 @@ public void disable() {
*/
@Override
public boolean updateConfiguration(InstanceWriter provider) {
- provider.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES,
- Value.of(solveNestedProperties.getSelection()));
- provider.setParameter(InstanceTableIOConstants.USE_SCHEMA,
- Value.of(useSchema.getSelection()));
+ super.updateConfiguration(provider);
provider.setParameter(InstanceTableIOConstants.EXPORT_TYPE,
Value.of(typeSelector.getSelectedObject().getName().toString()));
return true;
@@ -116,17 +105,7 @@ public boolean updateConfiguration(InstanceWriter provider) {
*/
@Override
protected void createContent(Composite page) {
- this.page = page;
-
- page.setLayout(new GridLayout(1, false));
-
- solveNestedProperties = new Button(page, SWT.CHECK);
- solveNestedProperties.setText("Solve nested properties");
- solveNestedProperties.setSelection(true);
-
- useSchema = new Button(page, SWT.CHECK);
- useSchema.setText("Use the source schema for the order of the exported columns");
- useSchema.setSelection(true);
+ super.createContent(page);
final Label label = new Label(page, SWT.NONE);
label.setText("Choose your Type you want to export:");
diff --git a/io/plugins/eu.esdihumboldt.hale.io.csv/src/eu/esdihumboldt/hale/io/csv/InstanceTableIOConstants.java b/io/plugins/eu.esdihumboldt.hale.io.csv/src/eu/esdihumboldt/hale/io/csv/InstanceTableIOConstants.java
index 4b9f968c32..1ebaaa38b0 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.csv/src/eu/esdihumboldt/hale/io/csv/InstanceTableIOConstants.java
+++ b/io/plugins/eu.esdihumboldt.hale.io.csv/src/eu/esdihumboldt/hale/io/csv/InstanceTableIOConstants.java
@@ -48,6 +48,6 @@ public class InstanceTableIOConstants {
/**
* Parameter for exporting empty feature types to XLS Export
*/
- public static final String EXPORT_EMPTY_FEATURETYPES = "emptyFeatureTypes";
+ public static final String EXPORT_IGNORE_EMPTY_FEATURETYPES = "ignoreEmptyFeaturetypes";
}
diff --git a/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/XLSInstanceIOTest.java b/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/XLSInstanceIOTest.java
index 46b2017485..a09d9c9581 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/XLSInstanceIOTest.java
+++ b/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/XLSInstanceIOTest.java
@@ -18,11 +18,13 @@
import eu.esdihumboldt.hale.common.instance.model.InstanceCollection;
import eu.esdihumboldt.hale.common.instance.model.InstanceUtil;
import eu.esdihumboldt.hale.common.schema.model.Schema;
+import eu.esdihumboldt.hale.common.schema.model.impl.DefaultSchemaSpace;
import eu.esdihumboldt.hale.common.test.TestUtil;
import eu.esdihumboldt.hale.io.csv.InstanceTableIOConstants;
import eu.esdihumboldt.hale.io.csv.reader.CommonSchemaConstants;
import eu.esdihumboldt.hale.io.xls.reader.XLSInstanceReader;
import eu.esdihumboldt.hale.io.xls.reader.XLSSchemaReader;
+import eu.esdihumboldt.hale.io.xls.test.writer.XLSInstanceWriterTestUtil;
import eu.esdihumboldt.hale.io.xls.writer.XLSInstanceWriter;
import junit.framework.TestCase;
@@ -57,10 +59,20 @@ public void test() {
IContentType contentType = HalePlatform.getContentTypeManager()
.getContentType("eu.esdihumboldt.hale.io.xls.xls");
writer.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES, Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.USE_SCHEMA, Value.of(true));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_TYPE, Value.of("ItemType"));
+
File tempDir = Files.createTempDir();
File tempFile = new File(tempDir, "data.xls");
writer.setInstances(instances);
try {
+ Schema schema = XLSInstanceWriterTestUtil.createExampleSchema();
+ DefaultSchemaSpace ss = new DefaultSchemaSpace();
+ ss.addSchema(schema);
+ writer.setTargetSchema(ss);
+
// write instances to a temporary XLS file
writer.setTarget(new FileIOSupplier(tempFile));
writer.setContentType(contentType);
diff --git a/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/writer/XLSInstanceWriterTest.java b/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/writer/XLSInstanceWriterTest.java
index d35cef1a90..2a90b88ce2 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/writer/XLSInstanceWriterTest.java
+++ b/io/plugins/eu.esdihumboldt.hale.io.xls.test/src/eu/esdihumboldt/hale/io/xls/test/writer/XLSInstanceWriterTest.java
@@ -42,7 +42,9 @@
import eu.esdihumboldt.hale.common.core.io.report.IOReport;
import eu.esdihumboldt.hale.common.core.io.supplier.FileIOSupplier;
import eu.esdihumboldt.hale.common.instance.model.InstanceCollection;
+import eu.esdihumboldt.hale.common.instance.model.impl.MultiInstanceCollection;
import eu.esdihumboldt.hale.common.schema.model.Schema;
+import eu.esdihumboldt.hale.common.schema.model.impl.DefaultSchemaSpace;
import eu.esdihumboldt.hale.common.test.TestUtil;
import eu.esdihumboldt.hale.io.csv.InstanceTableIOConstants;
import eu.esdihumboldt.hale.io.xls.writer.XLSInstanceWriter;
@@ -94,10 +96,16 @@ public void testWriteSimpleSchemaColOrder() throws Exception {
.getContentType("eu.esdihumboldt.hale.io.xls.xls");
writer.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES, Value.of(true));
writer.setParameter(InstanceTableIOConstants.USE_SCHEMA, Value.of(true));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_TYPE, Value.of("city"));
File tmpFile = tmpFolder.newFile("excelTestWriteSimpleSchema.xls");
writer.setInstances(instance);
+ DefaultSchemaSpace ss = new DefaultSchemaSpace();
+ ss.addSchema(schema);
+ writer.setTargetSchema(ss);
// write instances to a temporary XLS file
writer.setTarget(new FileIOSupplier(tmpFile));
writer.setContentType(contentType);
@@ -115,6 +123,7 @@ public void testWriteSimpleSchemaColOrder() throws Exception {
checkSheetName(sheet, "city");
checkFirstDataRow(sheet, firstDataRow);
checkHeaderOrder(sheet, header);
+ tmpFolder.delete();
}
/**
@@ -124,7 +133,6 @@ public void testWriteSimpleSchemaColOrder() throws Exception {
*/
@Test
public void testWriteComplexSchema() throws Exception {
-
TransformationExample example = TransformationExamples
.getExample(TransformationExamples.SIMPLE_COMPLEX);
// alternative the data could be generated by iterating through the
@@ -140,10 +148,17 @@ public void testWriteComplexSchema() throws Exception {
.getContentType("eu.esdihumboldt.hale.io.xls.xls");
writer.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES, Value.of(true));
writer.setParameter(InstanceTableIOConstants.USE_SCHEMA, Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(true));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_TYPE, Value.of("person"));
File tmpFile = tmpFolder.newFile("excelTestWriteComplexSchema.xls");
writer.setInstances(example.getSourceInstances());
+ Schema schema = XLSInstanceWriterTestUtil.createExampleSchema();
+ DefaultSchemaSpace ss = new DefaultSchemaSpace();
+ ss.addSchema(schema);
+ writer.setTargetSchema(ss);
// write instances to a temporary XLS file
writer.setTarget(new FileIOSupplier(tmpFile));
writer.setContentType(contentType);
@@ -160,6 +175,7 @@ public void testWriteComplexSchema() throws Exception {
checkHeader(sheet, header);
checkSheetName(sheet, "person");
checkFirstDataRow(sheet, firstDataRow);
+ tmpFolder.delete();
}
/**
@@ -171,7 +187,6 @@ public void testWriteComplexSchema() throws Exception {
*/
@Test
public void testWriteNotNestedProperties() throws Exception {
-
TransformationExample example = TransformationExamples
.getExample(TransformationExamples.SIMPLE_COMPLEX);
// alternative the data could be generated by iterating through the
@@ -185,10 +200,17 @@ public void testWriteNotNestedProperties() throws Exception {
.getContentType("eu.esdihumboldt.hale.io.xls.xls");
writer.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES, Value.of(false));
writer.setParameter(InstanceTableIOConstants.USE_SCHEMA, Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(true));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_TYPE, Value.of("person"));
File tmpFile = tmpFolder.newFile("excelNotNestedProperties.xls");
writer.setInstances(example.getSourceInstances());
+ Schema schema = XLSInstanceWriterTestUtil.createExampleSchema();
+ DefaultSchemaSpace ss = new DefaultSchemaSpace();
+ ss.addSchema(schema);
+ writer.setTargetSchema(ss);
// write instances to a temporary XLS file
writer.setTarget(new FileIOSupplier(tmpFile));
writer.setContentType(contentType);
@@ -204,12 +226,13 @@ public void testWriteNotNestedProperties() throws Exception {
checkHeader(sheet, header);
checkSheetName(sheet, "person");
-
checkFirstDataRow(sheet, firstDataRow);
+ tmpFolder.delete();
}
/**
- * Test - write data of complex schema and analyze result
+ * Test - write data for 2 example and create a common excel with multiple
+ * sheets
*
* @throws Exception , if an error occurs
*/
@@ -219,7 +242,7 @@ public void testExportMultiFeatureToExcel() throws Exception {
TransformationExample example = TransformationExamples
.getExample(TransformationExamples.SIMPLE_COMPLEX);
TransformationExample example2 = TransformationExamples
- .getExample(TransformationExamples.CARDINALITY_MOVE);
+ .getExample(TransformationExamples.CARDINALITY_MERGE_1);
examples.add(example.getTargetInstances());
examples.add(example2.getTargetInstances());
@@ -229,26 +252,35 @@ public void testExportMultiFeatureToExcel() throws Exception {
.getContentType("eu.esdihumboldt.hale.io.xls.xls");
writer.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES, Value.of(false));
writer.setParameter(InstanceTableIOConstants.USE_SCHEMA, Value.of(false));
- writer.setParameter(InstanceTableIOConstants.EXPORT_EMPTY_FEATURETYPES, Value.of(true));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(false));
+ writer.setParameter(InstanceTableIOConstants.EXPORT_TYPE, Value.of("person" + "," + "t1"));
File tmpFile = tmpFolder.newFile("excelWith2Sheets.xls");
// write instances to a temporary XLS file
writer.setTarget(new FileIOSupplier(tmpFile));
writer.setContentType(contentType);
- for (InstanceCollection instanceCollection : examples) {
- writer.setInstances(instanceCollection);
- }
- System.out.println("XLSInstanceWriterTest.testExportMultiFeatureToExcel()");
+ Schema schema = XLSInstanceWriterTestUtil.createExampleSchema();
+ DefaultSchemaSpace ss = new DefaultSchemaSpace();
+ ss.addSchema(schema);
+ writer.setTargetSchema(ss);
+
+ InstanceCollection multiInstanceCollection = new MultiInstanceCollection(examples);
+ writer.setInstances(multiInstanceCollection);
IOReport report = writer.execute(null);
+ assertTrue(report.isSuccess());
+
Workbook wb;
// https: // poi.apache.org/components/spreadsheet/quick-guide.html#FileInputStream
try (POIFSFileSystem fs = new POIFSFileSystem(tmpFile)) {
wb = new HSSFWorkbook(fs.getRoot(), true);
}
int sheetNumber = wb.getNumberOfSheets();
- assertEquals(examples.size(), sheetNumber);
+ Sheet sheet = wb.getSheetAt(0);
+ assertEquals(1, sheetNumber);
+ tmpFolder.delete();
}
/**
diff --git a/io/plugins/eu.esdihumboldt.hale.io.xls.ui/src/eu/esdihumboldt/hale/io/xls/ui/XLSInstanceExportConfigurationPage.java b/io/plugins/eu.esdihumboldt.hale.io.xls.ui/src/eu/esdihumboldt/hale/io/xls/ui/XLSInstanceExportConfigurationPage.java
index aa59ff05fe..c236a7c263 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.xls.ui/src/eu/esdihumboldt/hale/io/xls/ui/XLSInstanceExportConfigurationPage.java
+++ b/io/plugins/eu.esdihumboldt.hale.io.xls.ui/src/eu/esdihumboldt/hale/io/xls/ui/XLSInstanceExportConfigurationPage.java
@@ -41,18 +41,18 @@
import eu.esdihumboldt.hale.common.instance.io.InstanceWriter;
import eu.esdihumboldt.hale.common.schema.model.TypeDefinition;
import eu.esdihumboldt.hale.io.csv.InstanceTableIOConstants;
-import eu.esdihumboldt.hale.io.csv.ui.InstanceExportConfigurationPage;
+import eu.esdihumboldt.hale.io.csv.ui.CommonInstanceExportConfigurationPage;
/**
* Configuration page for exporting Excel
*
* @author Emanuela Epure
*/
-public class XLSInstanceExportConfigurationPage extends InstanceExportConfigurationPage {
+public class XLSInstanceExportConfigurationPage extends CommonInstanceExportConfigurationPage {
private CheckboxTableViewer featureTypeTable;
private Button selectAll = null;
- private Button exportEmptyData = null;
+ private Button ignoreEmptyFeaturetypes = null;
private Group chooseFeatureTypes;
private Table table;
@@ -60,7 +60,9 @@ public class XLSInstanceExportConfigurationPage extends InstanceExportConfigurat
*
*/
public XLSInstanceExportConfigurationPage() {
- super();
+ super("xlsInstanceExport.configPage");
+ setTitle("Additonal Export Options");
+ setDescription("Select if nested properties should be solved and a type");
}
/**
@@ -68,17 +70,7 @@ public XLSInstanceExportConfigurationPage() {
*/
@Override
protected void createContent(Composite page) {
- this.page = page;
-
- page.setLayout(new GridLayout(1, false));
-
- solveNestedProperties = new Button(page, SWT.CHECK);
- solveNestedProperties.setText("Solve nested properties");
- solveNestedProperties.setSelection(true);
-
- useSchema = new Button(page, SWT.CHECK);
- useSchema.setText("Use the source schema for the order of the exported columns");
- useSchema.setSelection(true);
+ super.createContent(page);
GridDataFactory groupData = GridDataFactory.fillDefaults().grab(true, false);
chooseFeatureTypes = new Group(page, SWT.NONE);
@@ -99,17 +91,18 @@ protected void createContent(Composite page) {
protected void onShowPage(boolean firstShow) {
if (firstShow) {
- exportEmptyData = new Button(chooseFeatureTypes, SWT.CHECK);
- exportEmptyData.setText("Ignore feature types without data");
- exportEmptyData.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
+ ignoreEmptyFeaturetypes = new Button(chooseFeatureTypes, SWT.CHECK);
+ ignoreEmptyFeaturetypes.setText("Ignore feature types without data");
+ ignoreEmptyFeaturetypes
+ .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
- exportEmptyData.addSelectionListener(new SelectionAdapter() {
+ ignoreEmptyFeaturetypes.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
- exportEmptyData.setSelection(false);
+ ignoreEmptyFeaturetypes.setSelection(false);
selectAll = new Button(chooseFeatureTypes, SWT.CHECK);
selectAll.setText("Select all");
@@ -129,8 +122,8 @@ public void widgetSelected(SelectionEvent e) {
table = new Table(chooseFeatureTypes, SWT.CHECK | SWT.MULTI | SWT.SCROLL_PAGE);
table.setHeaderVisible(false);
table.setLinesVisible(false);
- table.setBackground(
- PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_GRAY));
+ table.setBackground(PlatformUI.getWorkbench().getDisplay()
+ .getSystemColor(SWT.COLOR_LIST_BACKGROUND));
GridDataFactory groupData = GridDataFactory.fillDefaults().grab(true, false);
groupData.applyTo(table);
@@ -154,7 +147,6 @@ public String getText(Object element) {
}
featureTypeTable.setInput(relevantTypes);
-
featureTypeTable.addCheckStateListener(new ICheckStateListener() {
@Override
@@ -179,13 +171,10 @@ private boolean validate() {
*/
@Override
public boolean updateConfiguration(InstanceWriter provider) {
- provider.setParameter(InstanceTableIOConstants.SOLVE_NESTED_PROPERTIES,
- Value.of(solveNestedProperties.getSelection()));
- provider.setParameter(InstanceTableIOConstants.USE_SCHEMA,
- Value.of(useSchema.getSelection()));
+ super.updateConfiguration(provider);
- provider.setParameter(InstanceTableIOConstants.EXPORT_EMPTY_FEATURETYPES,
- Value.of(exportEmptyData.getSelection()));
+ provider.setParameter(InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES,
+ Value.of(ignoreEmptyFeaturetypes.getSelection()));
Object[] elements = featureTypeTable.getCheckedElements();
String param = "";
@@ -197,4 +186,22 @@ public boolean updateConfiguration(InstanceWriter provider) {
return true;
}
+ /**
+ * @see eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage#enable()
+ */
+ @Override
+ public void enable() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @see eu.esdihumboldt.hale.ui.io.config.AbstractConfigurationPage#disable()
+ */
+ @Override
+ public void disable() {
+ // TODO Auto-generated method stub
+
+ }
+
}
diff --git a/io/plugins/eu.esdihumboldt.hale.io.xls/plugin.xml b/io/plugins/eu.esdihumboldt.hale.io.xls/plugin.xml
index 8b93504b6e..21ede0dab9 100644
--- a/io/plugins/eu.esdihumboldt.hale.io.xls/plugin.xml
+++ b/io/plugins/eu.esdihumboldt.hale.io.xls/plugin.xml
@@ -92,6 +92,7 @@
+
+
+
+
+
+
selectedFeatureTypes = new ArrayList<>();
-
- String[] array = exportType.split(",");
- for (String input : array) {
-
- selectedFeatureTypes.add(QName.valueOf(input));
-
- }
+ boolean ignoreEmptyFeaturetypes = getParameter(
+ InstanceTableIOConstants.EXPORT_IGNORE_EMPTY_FEATURETYPES).as(Boolean.class, false);
// write xls file
if (getContentType().getId().equals("eu.esdihumboldt.hale.io.xls.xls")) {
@@ -112,71 +101,21 @@ else if (getContentType().getId().equals("eu.esdihumboldt.hale.io.xls.xlsx")) {
cellStyle = XLSCellStyles.getNormalStyle(workbook, false);
headerStyle = XLSCellStyles.getHeaderStyle(workbook);
- List remainingInstances = new ArrayList();
- for (QName selectedTypeName : selectedFeatureTypes) {
-
- // get all instances of the selected Type
- InstanceCollection instances = getInstanceCollection(selectedTypeName);
- // use ResourceIterator in a try block because is closable
- // -
- // avoid infinite
- // cleaning project after exporting data
- try (ResourceIterator instanceIterator = instances.iterator();) {
- Instance instance = null;
- try {
- instance = instanceIterator.next();
- } catch (NoSuchElementException e) {
-// reporter.error(
-// new IOMessageImpl("There are no instances for the selected type.", e));
-// return reporter;
-
- if (!emptyFeatureTypes) {
- Sheet sheet = workbook.createSheet(selectedTypeName.getLocalPart());
- sheet.createRow(0);
- resizeSheet(sheet);
- }
-
- continue;
- }
+ String exportType = getParameter(InstanceTableIOConstants.EXPORT_TYPE).as(String.class);
+ ArrayList selectedFeatureTypes = new ArrayList<>();
- headerRowStrings = new ArrayList();
-
- boolean useSchema = getParameter(InstanceTableIOConstants.USE_SCHEMA)
- .as(Boolean.class, true);
-
- // all instances with equal type definitions are stored in an
- // extra
- // sheet
- TypeDefinition definition = instance.getDefinition();
-
- Sheet sheet;
- try {
- sheet = workbook.createSheet(definition.getDisplayName());
-
- Row headerRow = sheet.createRow(0);
- int rowNum = 1;
- Row row = sheet.createRow(rowNum++);
- writeRow(row, super.getPropertyMap(instance, headerRowStrings, useSchema,
- solveNestedProperties));
-
- while (instanceIterator.hasNext()) {
- Instance nextInst = instanceIterator.next();
- if (nextInst.getDefinition().equals(definition)) {
- row = sheet.createRow(rowNum++);
- writeRow(row, super.getPropertyMap(nextInst, headerRowStrings,
- useSchema, solveNestedProperties));
- }
- else
- remainingInstances.add(nextInst);
- }
+ if (exportType != null) {
+ String[] splitExportType = exportType.split(",");
+ for (String featureType : splitExportType) {
- writeHeaderRow(headerRow, headerRowStrings);
- setCellStyle(sheet, headerRowStrings.size());
- resizeSheet(sheet);
- } catch (Exception e) {
- continue;
- }
+ selectedFeatureTypes.add(QName.valueOf(featureType));
+ }
+ for (QName selectedTypeName : selectedFeatureTypes) {
+ // get all instances of the selected Type
+ InstanceCollection instances = getInstanceCollection(selectedTypeName);
+ addSheetByQName(solveNestedProperties, ignoreEmptyFeaturetypes, selectedTypeName,
+ instances);
}
}
@@ -188,6 +127,71 @@ else if (getContentType().getId().equals("eu.esdihumboldt.hale.io.xls.xlsx")) {
return reporter;
} // close try-iterator
+ /**
+ * @param solveNestedProperties : Solve nested properties
+ * @param ignoreEmptyFeaturetypes don't add empty feature types to excel
+ * @param selectedTypeName selected feature type
+ * @param instances InstanceCollection available
+ */
+ private void addSheetByQName(boolean solveNestedProperties, boolean ignoreEmptyFeaturetypes,
+ QName selectedTypeName, InstanceCollection instances) {
+
+ // use ResourceIterator in a try block because is closable
+ // -
+ // avoid infinite
+ // cleaning project after exporting data
+ try (ResourceIterator instanceIterator = instances.iterator();) {
+ Instance instance = null;
+ try {
+ instance = instanceIterator.next();
+ } catch (NoSuchElementException e) {
+ if (!ignoreEmptyFeaturetypes) {
+ Sheet sheet = workbook.createSheet(selectedTypeName.getLocalPart());
+ sheet.createRow(0);
+ resizeSheet(sheet);
+ }
+ return;
+ }
+
+ headerRowStrings = new ArrayList();
+
+ boolean useSchema = getParameter(InstanceTableIOConstants.USE_SCHEMA).as(Boolean.class,
+ true);
+
+ // all instances with equal type definitions are stored in an
+ // extra
+ // sheet
+ TypeDefinition definition = instance.getDefinition();
+
+ Sheet sheet;
+ try {
+ sheet = workbook.createSheet(definition.getDisplayName());
+
+ Row headerRow = sheet.createRow(0);
+ int rowNum = 1;
+ Row row = sheet.createRow(rowNum++);
+ writeRow(row, super.getPropertyMap(instance, headerRowStrings, useSchema,
+ solveNestedProperties));
+
+ while (instanceIterator.hasNext()) {
+ Instance nextInst = instanceIterator.next();
+ if (nextInst.getDefinition().equals(definition)) {
+ row = sheet.createRow(rowNum++);
+ writeRow(row, super.getPropertyMap(nextInst, headerRowStrings, useSchema,
+ solveNestedProperties));
+ }
+ }
+
+ writeHeaderRow(headerRow, headerRowStrings);
+ setCellStyle(sheet, headerRowStrings.size());
+ resizeSheet(sheet);
+ } catch (Exception e) {
+ return;
+ }
+
+ }
+ }
+
@Override
public boolean isPassthrough() {
return true;