Revision 26d19e4f
Added by Cherian Mathew over 8 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
package eu.etaxonomy.taxeditor.io; |
12 | 12 |
|
13 |
import java.io.File; |
|
14 |
import java.io.FileOutputStream; |
|
15 |
import java.util.List; |
|
16 |
|
|
13 | 17 |
import org.eclipse.core.runtime.Assert; |
14 | 18 |
import org.eclipse.core.runtime.IProgressMonitor; |
15 | 19 |
import org.eclipse.core.runtime.IStatus; |
... | ... | |
18 | 22 |
import org.eclipse.swt.widgets.Display; |
19 | 23 |
import org.eclipse.ui.IWorkbenchPart; |
20 | 24 |
|
25 |
import eu.etaxonomy.cdm.api.application.CdmApplicationState; |
|
21 | 26 |
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; |
22 | 27 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
23 | 28 |
import eu.etaxonomy.cdm.io.common.CdmDefaultExport; |
29 |
import eu.etaxonomy.cdm.io.common.ExportResult; |
|
24 | 30 |
import eu.etaxonomy.cdm.io.common.IExportConfigurator; |
25 | 31 |
import eu.etaxonomy.cdm.io.common.IIoConfigurator; |
26 | 32 |
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator; |
27 | 33 |
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator; |
34 |
import eu.etaxonomy.cdm.io.service.IIOService; |
|
28 | 35 |
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter; |
29 | 36 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
30 | 37 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
38 |
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; |
|
31 | 39 |
|
32 | 40 |
/** |
33 | 41 |
* <p> |
... | ... | |
157 | 165 |
return job; |
158 | 166 |
} |
159 | 167 |
|
168 |
/* (non-Javadoc) |
|
169 |
* @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator) |
|
170 |
*/ |
|
171 |
@Override |
|
172 |
public Job createIOServiceJob(final IExportConfigurator configurator, final File exportFile) { |
|
173 |
Assert.isNotNull(configurator, "Configuration may not be null"); |
|
174 |
|
|
175 |
final Display display = Display.getCurrent(); |
|
176 |
|
|
177 |
Job job = new Job("Export: " + configurator.getClass().getSimpleName()) { |
|
178 |
@Override |
|
179 |
protected IStatus run(IProgressMonitor monitor) { |
|
180 |
monitor.beginTask("Exporting database. This will take some time.", IProgressMonitor.UNKNOWN); |
|
181 |
try { |
|
182 |
IIOService ioService = CdmApplicationState.getIOService(); |
|
183 |
|
|
184 |
ExportResult result = ioService.export(configurator); |
|
185 |
List<byte[]> dataList = result.getExportData(); |
|
186 |
byte[] exportData = dataList.get(0); |
|
187 |
|
|
188 |
FileOutputStream stream = new FileOutputStream(exportFile); |
|
189 |
try { |
|
190 |
stream.write(exportData); |
|
191 |
} finally { |
|
192 |
stream.close(); |
|
193 |
} |
|
194 |
|
|
195 |
} catch (Exception e) { |
|
196 |
MessagingUtils.errorDialog("Error exporting data", |
|
197 |
this, |
|
198 |
e.getMessage(), |
|
199 |
TaxeditorStorePlugin.PLUGIN_ID, |
|
200 |
e, |
|
201 |
true); |
|
202 |
} |
|
203 |
return Status.OK_STATUS; |
|
204 |
} |
|
205 |
}; |
|
206 |
return job; |
|
207 |
} |
|
160 | 208 |
/** |
161 | 209 |
* @param jaxb |
162 | 210 |
* @return |
... | ... | |
198 | 246 |
return (SDDExportConfigurator) getConfigurator(TYPE.Sdd); |
199 | 247 |
} |
200 | 248 |
|
249 |
|
|
250 |
|
|
201 | 251 |
} |
Also available in: Unified diff
#5129 Extend export ui for remoting