ref #6774 Fix term treee export via context menu
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 29 May 2019 06:17:19 +0000 (08:17 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 29 May 2019 06:17:19 +0000 (08:17 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/FeatureTreeExportOntologyHandler.java

index 89d3109936617c92dce5e7b387c8ccfdb094d115..234158cfea4afc7d77a41e395cbe7fa46bd4d7f8 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.featuretree.e4.handler;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import javax.inject.Named;
 
@@ -22,7 +23,7 @@ import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.progress.IProgressConstants;
 
@@ -51,13 +52,28 @@ public class FeatureTreeExportOntologyHandler {
             return;
         }
 
-        List<FeatureTree> featureTrees = new ArrayList<>();
-        selection.toList().stream().filter(o->o instanceof FeatureTree).forEach(tree->featureTrees.add((FeatureTree)tree));
-        DirectoryDialog dialog = new DirectoryDialog(shell);
-        String directoryString = dialog.open();
-        if(directoryString!=null){
+        List<UUID> featureTreeUuids = new ArrayList<>();
+        selection.toList().stream().filter(o->o instanceof FeatureTree).forEach(tree->featureTreeUuids.add(((FeatureTree)tree).getUuid()));
+
+        FileDialog dialog = new FileDialog(shell);
+        String[] filterNames = {
+                "Web Ontology Language (*.owl)",
+                "Extensible Markup Language (*.xml)",
+                "All files (*.*)"
+                };
+        String[] filterExtensions = { "*.owl", "*.xml", "*.*"};
+
+        dialog.setOverwrite(true);
+        dialog.setFilterNames(filterNames);
+        dialog.setFilterExtensions(filterExtensions);
+        String fileString = dialog.open();
+        if(fileString!=null){
             // create job
-            Job job = CdmStore.getExportManager().createIOServiceJob(StructureTreeOwlExportConfigurator.NewInstance(), new File(directoryString+"/term_trees.owl"));
+            StructureTreeOwlExportConfigurator configurator = StructureTreeOwlExportConfigurator.NewInstance();
+
+            configurator.setFeatureTreeUuids(featureTreeUuids);
+
+            Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(fileString));
             // configure the job
             job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
             job.setUser(true);