Project

General

Profile

« Previous | Next » 

Revision 43527305

Added by Cherian Mathew over 8 years ago

#5130 Extend import wizards to import data via remoting and Add tests for the same

View differences:

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