Revision 43527305
Added by Cherian Mathew over 8 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java | ||
---|---|---|
11 | 11 |
package eu.etaxonomy.taxeditor.io; |
12 | 12 |
|
13 | 13 |
import java.io.File; |
14 |
import java.io.InputStream; |
|
15 |
import java.nio.file.Files; |
|
16 |
import java.nio.file.Path; |
|
17 |
import java.nio.file.Paths; |
|
14 | 18 |
|
19 |
import org.apache.commons.io.IOUtils; |
|
15 | 20 |
import org.eclipse.core.runtime.Assert; |
16 | 21 |
import org.eclipse.core.runtime.IProgressMonitor; |
17 | 22 |
import org.eclipse.core.runtime.IStatus; |
... | ... | |
19 | 24 |
import org.eclipse.core.runtime.jobs.Job; |
20 | 25 |
import org.eclipse.swt.widgets.Display; |
21 | 26 |
|
27 |
import eu.etaxonomy.cdm.api.application.CdmApplicationState; |
|
22 | 28 |
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; |
23 | 29 |
import eu.etaxonomy.cdm.io.common.CdmDefaultImport; |
24 | 30 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator; |
31 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE; |
|
25 | 32 |
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator; |
26 | 33 |
import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator; |
27 | 34 |
import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator; |
28 | 35 |
import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator; |
36 |
import eu.etaxonomy.cdm.io.service.IIOService; |
|
29 | 37 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator; |
30 | 38 |
import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator; |
31 | 39 |
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator; |
32 | 40 |
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter; |
33 | 41 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
34 | 42 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
43 |
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; |
|
35 | 44 |
|
36 | 45 |
/** |
37 | 46 |
* <p> |
... | ... | |
128 | 137 |
|
129 | 138 |
} |
130 | 139 |
|
140 |
public Job createIOServiceJob(IImportConfigurator configurator, InputStream is, SOURCE_TYPE type) { |
|
141 |
|
|
142 |
try { |
|
143 |
return createIOServiceJob(configurator, IOUtils.toByteArray(is), type); |
|
144 |
} catch (Exception e) { |
|
145 |
MessagingUtils.errorDialog("Error importing input stream", |
|
146 |
this, |
|
147 |
e.getMessage(), |
|
148 |
TaxeditorStorePlugin.PLUGIN_ID, |
|
149 |
e, |
|
150 |
true); |
|
151 |
} |
|
152 |
return null; |
|
153 |
} |
|
154 |
|
|
155 |
public Job createIOServiceJob(IImportConfigurator configurator, File importFile, SOURCE_TYPE type) { |
|
156 |
Path path = Paths.get(importFile.toURI()); |
|
157 |
try { |
|
158 |
return createIOServiceJob(configurator, Files.readAllBytes(path), type); |
|
159 |
} catch (Exception e) { |
|
160 |
MessagingUtils.errorDialog("Error importing file", |
|
161 |
this, |
|
162 |
e.getMessage(), |
|
163 |
TaxeditorStorePlugin.PLUGIN_ID, |
|
164 |
e, |
|
165 |
true); |
|
166 |
} |
|
167 |
return null; |
|
168 |
} |
|
169 |
|
|
170 |
public Job createIOServiceJob(final IImportConfigurator configurator, final byte[] data, final SOURCE_TYPE type) { |
|
171 |
Assert.isNotNull(configurator, "Configuration may not be null"); |
|
172 |
final Display display = Display.getDefault(); |
|
173 |
Job job = new Job("Import: " + configurator.getClass().getSimpleName()) { |
|
174 |
|
|
175 |
@Override |
|
176 |
protected IStatus run(IProgressMonitor monitor) { |
|
177 |
monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN); |
|
178 |
IIOService ioService = CdmApplicationState.getIOService(); |
|
179 |
|
|
180 |
ioService.importData(configurator, data, type); |
|
181 |
|
|
182 |
monitor.done(); |
|
183 |
|
|
184 |
display.asyncExec(new Runnable() { |
|
185 |
|
|
186 |
@Override |
|
187 |
public void run() { |
|
188 |
CdmStore.getContextManager().notifyContextRefresh(); |
|
189 |
} |
|
190 |
}); |
|
191 |
|
|
192 |
return Status.OK_STATUS; |
|
193 |
} |
|
194 |
}; |
|
195 |
|
|
196 |
return job; |
|
131 | 197 |
|
132 |
/* (non-Javadoc) |
|
133 |
* @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator) |
|
134 |
*/ |
|
135 |
@Override |
|
136 |
public Job createIOServiceJob(IImportConfigurator configurator, File importFile) { |
|
137 |
// TODO Auto-generated method stub |
|
138 |
return null; |
|
139 | 198 |
} |
140 | 199 |
|
141 | 200 |
private IImportConfigurator getConfigurator(TYPE type) { |
Also available in: Unified diff
#5130 Extend import wizards to import data via remoting and Add tests for the same