Merge branch 'develop' into featureTreeEditor
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / io / wizard / ExcelNormalExplicitTaxaImportWizard.java
index f6d43baf8a87ad54781bc3133d77849036a302b3..46ab6ef20299348a40a61bb9cf950ca87e5bc6a9 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2007 EDIT
 * European Distributed Institute of Taxonomy
 package eu.etaxonomy.taxeditor.io.wizard;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.net.URI;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -35,6 +41,7 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
        private NormalExplicitImportConfigurator configurator;
 
        private ImportFromFileDataSourceWizardPage dataSourcePage;
+       private static final Logger logger = Logger.getLogger(ExcelNormalExplicitTaxaImportWizard.class);
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
@@ -54,14 +61,23 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
                URI source = dataSourcePage.getUri();
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-                   CdmStore.getImportManager().run(job);
-               } else {
-                   CdmStore.getImportManager().run(configurator);
+               configurator.setSourceReferenceTitle(dataSourcePage.getTextReferenceString().getText());
+               File file = new File(source);
+               FileInputStream fis = null;
+
+               try {
+                       fis = new FileInputStream(file);
+               } catch (FileNotFoundException e) {
+                       logger.error("Error while reading file" + source.toString());
                }
-
+               try {
+            configurator.setStream(IOUtils.toByteArray(fis));
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+           Job job = CdmStore.getImportManager().createIOServiceJob(configurator,file , SOURCE_TYPE.INPUTSTREAM);
+           CdmStore.getImportManager().run(job);
 
                return true;
        }
@@ -74,6 +90,11 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
     public void init(IWorkbench workbench, IStructuredSelection selection) {
                super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
+               if (selection instanceof TreeSelection && !selection.isEmpty()){
+                       TaxonNode node = (TaxonNode)selection.getFirstElement();
+                       configurator.setParentUUID(node.getTaxon().getUuid());
+                       configurator.setClassificationUuid(node.getClassification().getUuid());
+               }
        }
 
        /* (non-Javadoc)