X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/6116f71da29c748876d8fc33a10090a0fc25d96b..2cdb02439177127e8868a49c619b86ee57886fc2:/taxeditor-printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java diff --git a/taxeditor-printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java b/taxeditor-printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java index 944422855..1b50191f3 100644 --- a/taxeditor-printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java +++ b/taxeditor-printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java @@ -3,38 +3,42 @@ */ package eu.etaxonomy.taxeditor.printpublisher.wizard; -import java.lang.reflect.InvocationTargetException; - -import org.apache.log4j.Logger; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.ui.IExportWizard; import org.eclipse.ui.IWorkbench; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; -import eu.etaxonomy.cdm.print.IHarvestObserver; import eu.etaxonomy.cdm.print.PublishConfigurator; import eu.etaxonomy.cdm.print.Publisher; import eu.etaxonomy.cdm.print.out.IPublishOutputModule; +import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter; import eu.etaxonomy.taxeditor.store.CdmStore; /** - * + *

AbstractPublishWizard class.

+ * * @author n.hoffmann * @created Apr 1, 2010 * @version 1.0 */ public class AbstractPublishWizard extends Wizard implements IExportWizard{ - private static final Logger logger = Logger - .getLogger(AbstractPublishWizard.class); + /** Constant PAGE_SERVICE="PAGE_SERVICE" */ public static final String PAGE_SERVICE = "PAGE_SERVICE"; + /** Constant PAGE_TAXA="PAGE_TAXA" */ public static final String PAGE_TAXA = "PAGE_TAXA"; + /** Constant PAGE_OPTIONS="PAGE_OPTIONS" */ public static final String PAGE_OPTIONS = "PAGE_OPTIONS"; + /** Constant PAGE_FOLDER="PAGE_FOLDER" */ public static final String PAGE_FOLDER = "PAGE_FOLDER"; + /** Constant PAGE_OVERVIEW="PAGE_OVERVIEW" */ public static final String PAGE_OVERVIEW = "PAGE_OVERVIEW"; + /** Constant PAGE_FEATURETREE="PAGE_FEATURETREE" */ public static final String PAGE_FEATURETREE = "PAGE_FEATURETREE"; protected SelectServiceWizardPage pageService; @@ -48,6 +52,9 @@ public class AbstractPublishWizard extends Wizard implements IExportWizard{ private IPublishOutputModule outputModule; + /** + *

Constructor for AbstractPublishWizard.

+ */ public AbstractPublishWizard(){ setNeedsProgressMonitor(true); } @@ -55,54 +62,41 @@ public class AbstractPublishWizard extends Wizard implements IExportWizard{ /* (non-Javadoc) * @see org.eclipse.jface.wizard.Wizard#performFinish() */ + /** {@inheritDoc} */ @Override public boolean performFinish() { - IRunnableWithProgress runnable = new IRunnableWithProgress() { + Job job = new Job("Running Print Publisher") { - public void run(final IProgressMonitor monitor) - throws InvocationTargetException, InterruptedException { - monitor.beginTask("Exporting Printable Output", getConfigurator().calculateNumberOfNodes() + 1); - try{ - IHarvestObserver observer = new IHarvestObserver() { - - public void update(String taskName) { - monitor.setTaskName(taskName); - monitor.worked(1); - - } - }; - getConfigurator().addObserver(observer); + @Override + protected IStatus run(IProgressMonitor monitor) { + monitor.beginTask("Print Publisher", getConfigurator().calculateNumberOfNodes() + 1); + ConversationHolder conversation = null; + try{ + getConfigurator().setProgressMonitor(CdmProgressMonitorAdapter.CreateMonitor(monitor)); + + if(getConfigurator().isLocal()){ + conversation= CdmStore.createConversation(); + } + + Publisher.publish(getConfigurator()); - Publisher.publish(configurator); }finally{ monitor.done(); + if(conversation != null) conversation.close(); } - - } - }; - - ConversationHolder conversation = null; - - try { - if(getConfigurator().isLocal()){ - conversation= CdmStore.createConversation(); + return Status.OK_STATUS; } - getContainer().run(false, true, runnable); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }finally{ - if(conversation != null) conversation.close(); - } + }; + + job.setPriority(Job.BUILD); + job.schedule(); return true; } + /** {@inheritDoc} */ @Override public void addPages() { super.addPages(); @@ -129,12 +123,14 @@ public class AbstractPublishWizard extends Wizard implements IExportWizard{ /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) */ + /** {@inheritDoc} */ public void init(IWorkbench workbench, IStructuredSelection selection) { - logger.warn("Instantiating wizard: " + this.getClass().getSimpleName()); + PrintUtil.info("Instantiating wizard: " + this.getClass().getSimpleName()); } + /** {@inheritDoc} */ @Override public boolean canFinish() { return pageService.isPageComplete() && @@ -143,18 +139,38 @@ public class AbstractPublishWizard extends Wizard implements IExportWizard{ pageFolder.isPageComplete(); } + /** + *

Getter for the field configurator.

+ * + * @return a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object. + */ protected PublishConfigurator getConfigurator() { return configurator; } + /** + *

Setter for the field configurator.

+ * + * @param configurator a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object. + */ protected void setConfigurator(PublishConfigurator configurator){ this.configurator = configurator; } + /** + *

Setter for the field outputModule.

+ * + * @param outputModule a {@link eu.etaxonomy.cdm.print.out.IPublishOutputModule} object. + */ protected void setOutputModule(IPublishOutputModule outputModule){ this.outputModule = outputModule; } + /** + *

Getter for the field outputModule.

+ * + * @return a {@link eu.etaxonomy.cdm.print.out.IPublishOutputModule} object. + */ public IPublishOutputModule getOutputModule(){ return outputModule; }