2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.taxeditor
.io
.wizard
;
12 import java
.io
.FileInputStream
;
13 import java
.io
.FileNotFoundException
;
14 import java
.io
.IOException
;
15 import java
.util
.ArrayList
;
16 import java
.util
.List
;
17 import java
.util
.UUID
;
19 import org
.apache
.commons
.io
.IOUtils
;
20 import org
.apache
.log4j
.Logger
;
21 import org
.eclipse
.core
.runtime
.jobs
.Job
;
22 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
23 import org
.eclipse
.ui
.IWorkbench
;
25 import eu
.etaxonomy
.cdm
.common
.URI
;
26 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
27 import eu
.etaxonomy
.cdm
.io
.distribution
.excelupdate
.ExcelDistributionUpdateConfigurator
;
28 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
29 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
35 public class ExcelDistributionUpdateWizard
extends AbstractImportWizard
<ExcelDistributionUpdateConfigurator
> {
36 private ExcelDistributionUpdateConfigurator configurator
;
38 private static final Logger logger
= Logger
.getLogger(ExcelDistributionUpdateWizard
.class);
40 private ImportFromFileAndChooseVocIdWizardPage dataSourcePage
;
43 public ExcelDistributionUpdateConfigurator
getConfigurator() {
48 public boolean performFinish() {
49 URI source
= dataSourcePage
.getUri();
50 // configurator.setSource(source);
51 configurator
.setDbSchemaValidation(DbSchemaValidation
.CREATE
);
52 File file
= source
.toFile();
53 FileInputStream fis
= null;
56 fis
= new FileInputStream(file
);
57 } catch (FileNotFoundException e
) {
58 logger
.error("Error while reading file" + source
.toString());
61 configurator
.setStream(IOUtils
.toByteArray(fis
));
62 } catch (IOException e
) {
63 // TODO Auto-generated catch block
66 UUID vocUuid
= dataSourcePage
.getVocUuid();
68 configurator
.setAreaVocabularyUuid(vocUuid
);
69 //CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
70 Job job
= CdmStore
.getImportManager().createIOServiceJob(configurator
);
71 CdmStore
.getImportManager().run(job
);
77 public void init(IWorkbench workbench
, IStructuredSelection selection
) {
78 super.init(workbench
, selection
);
79 configurator
= CdmStore
.getImportManager().ExcelDistributionUpdateConfigurator();
84 public void addPages() {
85 addConfiguratorPage();
90 protected void addConfiguratorPage(){
91 List
<String
> ignoreMethods
= new ArrayList
<>();
92 ignoreMethods
.add("setIgnoreNull");
93 ignoreMethods
.add("setInteractWithUser");
94 ignoreMethods
.add("setUseClassification");
95 pageConfiguration
= GenericConfiguratorWizardPage
.Import(CONFIGURATION_PAGE
, getConfigurator(), ignoreMethods
, Messages
.ExcelDistributionUpdateWizard_ConfiguratorWizard_label
);
96 addPage(pageConfiguration
);
99 private void addDataSourcePage(){
100 dataSourcePage
= new ImportFromFileAndChooseVocIdWizardPage("Choose Excel File",
101 "Please choose an xls file in the Distribution Update format.", new String
[]{"*.xlsx", "*.xls", "*.*"});
102 addPage(dataSourcePage
);