fixes #862
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / io / AbstractExportWizard.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
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.
9 */
10
11 package eu.etaxonomy.taxeditor.io;
12
13 import org.apache.log4j.Logger;
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.jface.wizard.Wizard;
19 import org.eclipse.ui.IExportWizard;
20
21 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
22 import eu.etaxonomy.cdm.io.common.IExportConfigurator;
23 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
24
25 /**
26 * @author n.hoffmann
27 * @created 24.06.2009
28 * @version 1.0
29 */
30 public abstract class AbstractExportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IExportWizard{
31 private static final Logger logger = Logger
32 .getLogger(AbstractExportWizard.class);
33
34 protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
35
36 private GenericConfiguratorWizardPage pageConfiguration;
37
38 private CdmDefaultExport export;
39
40 public boolean doExport(final IExportConfigurator configurator){
41 export = new CdmDefaultExport();
42
43 Job exportJob = new Job("Export"){
44 @Override
45 protected IStatus run(IProgressMonitor monitor) {
46 return export.invoke(configurator) ? Status.OK_STATUS : Status.CANCEL_STATUS;
47 }
48 };
49
50 exportJob.schedule();
51
52 return true;
53 }
54
55 /* (non-Javadoc)
56 * @see org.eclipse.jface.wizard.Wizard#addPages()
57 */
58 @Override
59 public void addPages() {
60 super.addPages();
61
62 pageConfiguration = GenericConfiguratorWizardPage.Export(CONFIGURATION_PAGE, getConfigurator());
63 this.addPage(pageConfiguration);
64 }
65
66 public abstract CONFIG getConfigurator();
67 }