ref #10448: fix zip handling and better naming for wfo backbone export
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / io / wizard / ExportToFileDestinationWizardPage.java
index c1822da2400378996c4a6ead51db41cbcc49b08c..35112136160aeff7ab6b84a323cd22c4818d2237 100644 (file)
@@ -47,7 +47,7 @@ import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
 import eu.etaxonomy.cdm.io.tcsxml.out.TcsXmlExportConfigurator;
-import eu.etaxonomy.cdm.io.wfo.out.WfoExportConfigurator;
+import eu.etaxonomy.cdm.io.wfo.out.WfoBackboneExportConfigurator;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -81,7 +81,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
     public static final String SDD_EXPORT = "SDD_EXPORT";
 
     public static final String DWCA_EXPORT = "DWCA_EXPORT";
-    public static final String WFO_EXPORT = "WFO_EXPORT";
+    public static final String WFO_BACKBONE_EXPORT = "WFO_BACKBONE_EXPORT";
     public static final String CDM_LIGHT_EXPORT = "CDM_LIGHT(CSV)";
     public static final String COL_DP_EXPORT = "COL DP";
     public static final String CSV_EXPORT = "CSV_EXPORT";
@@ -104,7 +104,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
 
     private boolean colDPExport = false;
     private boolean dwcaExport = false;
-    private boolean wfoExport = false;
+    private boolean wfoBackboneExport = false;
 
     private DirectoryDialog folderDialog;
     private Text text_exportFileName;
@@ -135,6 +135,8 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
 
     private Text text_familyString;
 
+    private Text text_baseUrl;
+
     protected ExportToFileDestinationWizardPage(String pageName, String type, String title, String description,
             String extension, ExportConfiguratorBase<?, ?, ?> configurator) {
         super(pageName);
@@ -159,8 +161,8 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
         case DWCA_EXPORT:
             dwcaExport = true;
             break;
-        case WFO_EXPORT:
-            wfoExport = true;
+        case WFO_BACKBONE_EXPORT:
+            wfoBackboneExport = true;
             break;
         default:
             throw new RuntimeException("Export type not yet handeled: " + type);
@@ -189,10 +191,10 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
         return new ExportToFileDestinationWizardPage(DWCA_EXPORT, DWCA_EXPORT, "DwC-Archive Export",
                 "Export the content of the currently selected database into Darwin Core Archive format.", ZIP, config);
     }
-    public static ExportToFileDestinationWizardPage WFO(WfoExportConfigurator config) {
-        return new ExportToFileDestinationWizardPage(WFO_EXPORT, WFO_EXPORT, "WFO Backbone Export",
+    public static ExportToFileDestinationWizardPage WFO(WfoBackboneExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(WFO_BACKBONE_EXPORT, WFO_BACKBONE_EXPORT, "WFO Backbone Export",
                 "Export the content of the currently selected database into WFO Backbone format."
-                , ZIP, config);
+                , CSV, config);
     }
 
     public static ExportToFileDestinationWizardPage CdmLight(CdmLightExportConfigurator config) {
@@ -273,7 +275,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
             gridDataSep.horizontalSpan = 2;
             separator.setLayoutData(gridDataSep);
         }
-        if (classifications == null && !wfoExport) {
+        if (classifications == null && !wfoBackboneExport) {
             classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
             Collections.sort(classifications, (o1, o2) -> {
                 if (o1.equals(o2)) {
@@ -294,16 +296,20 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
             }
         }
 
-        if (csvExport || csvPrintExport || cdmLightExport || csvNameExport || dwcaExport || colDPExport || wfoExport) {
+        if (csvExport || csvPrintExport || cdmLightExport || csvNameExport || dwcaExport || colDPExport || wfoBackboneExport) {
 
             // Label comboBoxLabel = new Label(composite, SWT.NONE);
             // comboBoxLabel.setText("Classification");
             Composite selectNodeOrClassification = new Composite(composite, SWT.NONE);
             GridLayout grid = new GridLayout();
             grid.numColumns = 1;
+            GridData gridDataNode = new  GridData(SWT.FILL, SWT.FILL, true, false);
+            gridDataNode.horizontalSpan = 2;
+
             selectNodeOrClassification.setLayout(grid);
-            if ((cdmLightExport || dwcaExport || colDPExport || wfoExport) && !configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()) {
-                if (!wfoExport) {
+            selectNodeOrClassification.setLayoutData(gridDataNode);
+            if ((cdmLightExport || dwcaExport || colDPExport || wfoBackboneExport) && !configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()) {
+                if (!wfoBackboneExport) {
                     checkUseSelectedTaxonNode = new Button(selectNodeOrClassification, SWT.RADIO);
                 }
                 String taxonStr = "";
@@ -320,7 +326,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                         }
                     }
                 }
-                if (!wfoExport) {
+                if (!wfoBackboneExport) {
                     checkUseSelectedTaxonNode.setText("Export all selected subtree(s) (" + taxonStr + ")");
                     checkUseSelectedTaxonNode.addListener(SWT.Selection, e -> {
                         Button b = (Button) e.widget;
@@ -335,12 +341,16 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                     Composite wfoComp = new Composite(selectNodeOrClassification, SWT.NONE);
                     grid = new GridLayout();
                     grid.numColumns = 2;
+                    GridData gridDataWfo = new GridData(SWT.FILL, SWT.FILL, true, false);
+                    gridDataWfo.grabExcessHorizontalSpace=true;
+                   // gridDataWfo.horizontalSpan=2;
                     wfoComp.setLayout(grid);
+                    wfoComp.setLayoutData(gridDataWfo);
 
                     Label label = new Label(wfoComp, SWT.NONE);
                     label.setText("Export all selected subtree(s) (" + taxonStr + ")");
                     GridData gridData = new GridData();
-                    gridData.horizontalSpan = 2;
+                    gridData.horizontalSpan = 3;
                     gridData.grabExcessHorizontalSpace = true;
                     label.setLayoutData(gridData);
 
@@ -348,10 +358,24 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                     familyString.setText("Family");
                     text_familyString = new Text(wfoComp, SWT.BORDER);
                     text_familyString.setText(generateFamilyName(selectedNodes));
-                    text_familyString.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+                    GridData gridFamily = new GridData(SWT.FILL, SWT.FILL, true, false);
+
+                    text_familyString.setLayoutData(gridFamily);
+
+
+                    Label baseUrlString = new Label(wfoComp, SWT.NONE);
+                    baseUrlString.setText("Base url");
+                    text_baseUrl = new Text(wfoComp, SWT.BORDER);
+
+                    GridData gridDataBaseUrl = new GridData(SWT.FILL, SWT.FILL, true, false);
+
+                    text_baseUrl.setLayoutData(gridDataBaseUrl);
+                    text_baseUrl.setToolTipText("The base url without /cdm_dataportal/taxon/{uuid}  e.g. https://portal.cybertaxonomy.org/salvador");
+
+
 
                 }
-            }else if (wfoExport) {
+            }else if (wfoBackboneExport) {
 
                 Label label = new Label(composite, SWT.NONE);
                 label.setText("WFO Backbone export is only available for subtrees, not for classifications");
@@ -387,10 +411,10 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                 });
             }
 
-            if (node != null && !wfoExport) {
+            if (node != null && !wfoBackboneExport) {
                 selectedClassification = node.getClassification();
             }
-            if (!wfoExport) {
+            if (!wfoBackboneExport) {
                 createClassificationSelectionCombo(selectNodeOrClassification);
             }
             if (cdmLightExport) {
@@ -494,7 +518,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                 }
             }
         });
-        if (!cdmLightExport) {
+        if (!cdmLightExport && !wfoBackboneExport) {
 
             Label fileLabel = new Label(composite, SWT.NONE);
             fileLabel.setText("Filename");
@@ -562,9 +586,6 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
         return text_exportFileName.getText();
     }
 
-    /**
-     * @return the familyString
-     */
     public String getFamilyString() {
         return text_familyString.getText();
     }
@@ -573,6 +594,10 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
         return text_folder.getText();
     }
 
+    public String get_baseUrl() {
+        return text_baseUrl.getText();
+    }
+
     public Text getFolderComposite() {
         return text_folder;
     }
@@ -654,6 +679,6 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
 
     @Override
     public boolean canFlipToNextPage() {
-        return getFolderText() != null && !(wfoExport && configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty());
+        return getFolderText() != null && !(wfoBackboneExport && configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty());
     }
 }