3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.io
;
13 import org
.eclipse
.core
.runtime
.Assert
;
14 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
15 import org
.eclipse
.core
.runtime
.IStatus
;
16 import org
.eclipse
.core
.runtime
.Status
;
17 import org
.eclipse
.core
.runtime
.jobs
.Job
;
18 import org
.eclipse
.swt
.widgets
.Display
;
20 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplicationConfiguration
;
21 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplicationDefaultConfiguration
;
22 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultImport
;
23 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
;
24 import eu
.etaxonomy
.cdm
.io
.excel
.taxa
.NormalExplicitImportConfigurator
;
25 import eu
.etaxonomy
.cdm
.io
.jaxb
.JaxbImportConfigurator
;
26 import eu
.etaxonomy
.cdm
.io
.reference
.endnote
.in
.EndnoteImportConfigurator
;
27 import eu
.etaxonomy
.cdm
.io
.sdd
.in
.SDDImportConfigurator
;
28 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206ImportConfigurator
;
29 import eu
.etaxonomy
.cdm
.io
.specimen
.excel
.in
.SpecimenCdmExcelImportConfigurator
;
30 import eu
.etaxonomy
.cdm
.io
.tcsxml
.in
.TcsXmlImportConfigurator
;
31 import eu
.etaxonomy
.taxeditor
.model
.CdmProgressMonitorAdapter
;
32 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
33 import eu
.etaxonomy
.taxeditor
.store
.StoreUtil
;
37 * ImportHandler class.
41 * @created Sep 11, 2009
44 public class ImportManager
extends AbstractIOManager
<IImportConfigurator
> {
47 * @param applicationConfiguration
49 private ImportManager(ICdmApplicationConfiguration applicationConfiguration
) {
50 super(applicationConfiguration
);
58 * @param applicationConfiguration
60 * {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
62 * @return a {@link eu.etaxonomy.taxeditor.io.ImportManager} object.
64 public static ImportManager
NewInstance(
65 ICdmApplicationConfiguration applicationConfiguration
) {
66 return new ImportManager(applicationConfiguration
);
70 * Use when importing data into the current application context
73 * a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
75 * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
78 protected Job
createIOJob(final IImportConfigurator configurator
) {
79 Assert
.isNotNull(configurator
, "Configuration may not be null");
81 final Display display
= Display
.getDefault();
83 Job job
= new Job("Import: " + configurator
.getClass().getSimpleName()) {
86 protected IStatus
run(IProgressMonitor monitor
) {
87 monitor
.beginTask("Importing data", 100);
88 configurator
.setProgressMonitor(CdmProgressMonitorAdapter
89 .CreateSubMonitor(monitor
, 70));
93 CdmDefaultImport
<IImportConfigurator
> importer
= new CdmDefaultImport
<IImportConfigurator
>();
94 importer
.setCdmAppController((ICdmApplicationDefaultConfiguration
) applicationConfiguration
);
98 importer
.invoke(configurator
);
100 } catch (RuntimeException e
) {
101 StoreUtil
.errorDialog(
102 "Error importing data",
104 "An error occured while"
105 + "importing from source '"
106 + configurator
.getSourceNameString()
108 + "Please check error log for details.", e
);
114 display
.asyncExec(new Runnable() {
118 CdmStore
.getContextManager().notifyContextRefresh();
122 return Status
.OK_STATUS
;
130 private IImportConfigurator
getConfigurator(TYPE type
) {
131 Assert
.isNotNull(type
, "Type should not be null");
135 return JaxbImportConfigurator
.NewInstance(null, null);
137 return TcsXmlImportConfigurator
.NewInstance(null, null);
139 return EndnoteImportConfigurator
.NewInstance(null, null);
141 return NormalExplicitImportConfigurator
.NewInstance(null, null,
144 return Abcd206ImportConfigurator
.NewInstance(null, null);
146 return SDDImportConfigurator
.NewInstance(null, null);
147 case SpecimenCdmExcel
:
148 return SpecimenCdmExcelImportConfigurator
.NewInstance(null, null);
150 StoreUtil
.notImplementedMessage(this);
151 throw new IllegalArgumentException("Import not supported yet");
161 * @return a {@link eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator} object.
163 public final JaxbImportConfigurator
JaxbConfigurator() {
164 return (JaxbImportConfigurator
) getConfigurator(TYPE
.Jaxb
);
172 * @return a {@link eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator}
175 public final TcsXmlImportConfigurator
TcsConfigurator() {
176 return (TcsXmlImportConfigurator
) getConfigurator(TYPE
.Tcs
);
181 * EndnoteConfigurator
185 * {@link eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator}
188 public final EndnoteImportConfigurator
EndnoteConfigurator() {
189 return (EndnoteImportConfigurator
) getConfigurator(TYPE
.Endnote
);
194 * NormalExplicitConfigurator
198 * {@link eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator}
201 public final NormalExplicitImportConfigurator
NormalExplicitConfigurator() {
202 return (NormalExplicitImportConfigurator
) getConfigurator(TYPE
.Excel_Taxa
);
210 * @return a {@link eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator}
213 public final SDDImportConfigurator
SddConfigurator() {
214 return (SDDImportConfigurator
) getConfigurator(TYPE
.Sdd
);
223 * {@link eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator}
226 public final Abcd206ImportConfigurator
AbcdConfigurator() {
227 return (Abcd206ImportConfigurator
) getConfigurator(TYPE
.Abcd
);
230 public SpecimenCdmExcelImportConfigurator
SpecimenCdmExcelImportConfigurator() {
231 return (SpecimenCdmExcelImportConfigurator
) getConfigurator(TYPE
.SpecimenCdmExcel
);