Project

General

Profile

« Previous | Next » 

Revision 26d19e4f

Added by Cherian Mathew over 8 years ago

#5129 Extend export ui for remoting

View differences:

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