4 package eu
.etaxonomy
.taxeditor
.printpublisher
.wizard
;
6 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
7 import org
.eclipse
.core
.runtime
.IStatus
;
8 import org
.eclipse
.core
.runtime
.Status
;
9 import org
.eclipse
.core
.runtime
.jobs
.Job
;
10 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
11 import org
.eclipse
.jface
.wizard
.Wizard
;
12 import org
.eclipse
.ui
.IExportWizard
;
13 import org
.eclipse
.ui
.IWorkbench
;
15 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
16 import eu
.etaxonomy
.cdm
.print
.PublishConfigurator
;
17 import eu
.etaxonomy
.cdm
.print
.Publisher
;
18 import eu
.etaxonomy
.cdm
.print
.out
.IPublishOutputModule
;
19 import eu
.etaxonomy
.taxeditor
.model
.CdmProgressMonitorAdapter
;
20 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
23 * <p>AbstractPublishWizard class.</p>
26 * @created Apr 1, 2010
29 public class AbstractPublishWizard
extends Wizard
implements IExportWizard
{
31 /** Constant <code>PAGE_SERVICE="PAGE_SERVICE"</code> */
32 public static final String PAGE_SERVICE
= "PAGE_SERVICE";
33 /** Constant <code>PAGE_TAXA="PAGE_TAXA"</code> */
34 public static final String PAGE_TAXA
= "PAGE_TAXA";
35 /** Constant <code>PAGE_OPTIONS="PAGE_OPTIONS"</code> */
36 public static final String PAGE_OPTIONS
= "PAGE_OPTIONS";
37 /** Constant <code>PAGE_FOLDER="PAGE_FOLDER"</code> */
38 public static final String PAGE_FOLDER
= "PAGE_FOLDER";
39 /** Constant <code>PAGE_OVERVIEW="PAGE_OVERVIEW"</code> */
40 public static final String PAGE_OVERVIEW
= "PAGE_OVERVIEW";
41 /** Constant <code>PAGE_FEATURETREE="PAGE_FEATURETREE"</code> */
42 public static final String PAGE_FEATURETREE
= "PAGE_FEATURETREE";
44 protected SelectServiceWizardPage pageService
;
45 protected SelectTaxaWizardPage pageTaxa
;
46 protected OptionsWizardPage pageOptions
;
47 protected SelectFeatureTreeWizardPage pageFeatureTree
;
48 protected SelectFolderWizardPage pageFolder
;
49 protected OverviewWizardPage pageOverview
;
51 private PublishConfigurator configurator
;
53 private IPublishOutputModule outputModule
;
56 * <p>Constructor for AbstractPublishWizard.</p>
58 public AbstractPublishWizard(){
59 setNeedsProgressMonitor(true);
63 * @see org.eclipse.jface.wizard.Wizard#performFinish()
67 public boolean performFinish() {
69 Job job
= new Job("Running Print Publisher") {
72 protected IStatus
run(IProgressMonitor monitor
) {
73 monitor
.beginTask("Print Publisher", getConfigurator().calculateNumberOfNodes() + 1);
74 ConversationHolder conversation
= null;
76 getConfigurator().setProgressMonitor(CdmProgressMonitorAdapter
.CreateMonitor(monitor
));
78 if(getConfigurator().isLocal()){
79 conversation
= CdmStore
.createConversation();
82 Publisher
.publish(getConfigurator());
86 if(conversation
!= null) conversation
.close();
88 return Status
.OK_STATUS
;
93 job
.setPriority(Job
.BUILD
);
101 public void addPages() {
104 pageService
= new SelectServiceWizardPage(PAGE_SERVICE
);
105 addPage(pageService
);
107 pageTaxa
= new SelectTaxaWizardPage(PAGE_TAXA
);
110 pageOptions
= new OptionsWizardPage(PAGE_OPTIONS
);
111 addPage(pageOptions
);
113 pageFeatureTree
= new SelectFeatureTreeWizardPage(PAGE_FEATURETREE
);
114 addPage(pageFeatureTree
);
116 pageFolder
= new SelectFolderWizardPage(PAGE_FOLDER
);
119 pageOverview
= new OverviewWizardPage(PAGE_OVERVIEW
);
120 addPage(pageOverview
);
124 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
127 public void init(IWorkbench workbench
, IStructuredSelection selection
) {
128 PrintUtil
.info("Instantiating wizard: " + this.getClass().getSimpleName());
135 public boolean canFinish() {
136 return pageService
.isPageComplete() &&
137 pageTaxa
.isPageComplete() &&
138 pageFeatureTree
.isPageComplete() &&
139 pageFolder
.isPageComplete();
143 * <p>Getter for the field <code>configurator</code>.</p>
145 * @return a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object.
147 protected PublishConfigurator
getConfigurator() {
152 * <p>Setter for the field <code>configurator</code>.</p>
154 * @param configurator a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object.
156 protected void setConfigurator(PublishConfigurator configurator
){
157 this.configurator
= configurator
;
161 * <p>Setter for the field <code>outputModule</code>.</p>
163 * @param outputModule a {@link eu.etaxonomy.cdm.print.out.IPublishOutputModule} object.
165 protected void setOutputModule(IPublishOutputModule outputModule
){
166 this.outputModule
= outputModule
;
170 * <p>Getter for the field <code>outputModule</code>.</p>
172 * @return a {@link eu.etaxonomy.cdm.print.out.IPublishOutputModule} object.
174 public IPublishOutputModule
getOutputModule(){