@Override protected void finishPressed() { // if there are no more states, do nothing if (getWorkflowWizard().getWorkflow().isFinished()) return; /* * what happens if the page is driven by the state? I * guess it means the state knows that it can pass so * go for it. */ if (!getCurrentPage().leavingPage()) { return; } // move workflow to next state, start up a new thread to do it. final Workflow pipe = getWizard().getWorkflow(); try { run( false, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { pipe.run(monitor); } }); } catch (Exception e) { CatalogUIPlugin.log("Exception while moving workflow forward", e); // $NON-NLS-1$ } }
@Override protected void nextPressed() { // if there are no more states, do nothing if (getWorkflowWizard().getWorkflow().isFinished()) { return; } if (!getCurrentPage().leavingPage()) { return; } // move workflow to next state, start up a new thread to do it. final Workflow pipe = getWizard().getWorkflow(); try { // don't fork, can cancel during transition run( false, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { pipe.next(monitor); // progress through the workflow } }); } catch (Exception e) { CatalogUIPlugin.log("Exception while moving workflow forward", e); // $NON-NLS-1$ } }
@Override protected void backPressed() { // move workflow to previous state, start up a new thread to do it. final Workflow pipe = getWizard().getWorkflow(); if (pipe.getCurrentState().getPreviousState() == null) { // this means that this wizard is part of a larger wizard and we need to return control // to it. See setAdapter for details workflowWizardAdapter.backPressed(); } IRunnableWithProgress runnable = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { pipe.previous(monitor); } }; try { run(false, true, runnable); } catch (InvocationTargetException e) { CatalogUIPlugin.log(e.getLocalizedMessage(), e); } catch (InterruptedException e) { CatalogUIPlugin.log(e.getLocalizedMessage(), e); } }