I'm developing an Eclipse Plug-in that is working with custom working sets. Right now the user can create those working-sets by starting a multi-page wizard via File > New > Other... > Custom Working Set
.
By default, working-sets can also be created through the working-set selection dialog via Project Explorer > Select Working Set... > New
. Those working set "wizards" (e.g. Java
Working-Set
, Resource
Working-Set
, ...) all consist of a single page. Technically there is a next button, but it's disabled after working-set type selection.
Is there any way to override that behavior to enable multi-page wizards? I believe that I have to work with the WorkingSetNewWizard
class or with the IWorkingSetNewWizard
interface, but I'm not sure how.
So I managed to get this thing working!
Just as greg-449 pointed out, adding a custom working-set can be accomplished by defining it at the extension point org.eclipse.ui.workingSets
and implementing a page class that extends "WizardPage" implements org.eclipse.ui.dialogs.IWorkingSetPage
.
The class that's handling the working-set creation is WorkingSetNewWizard
. By default, it creates a wizard that consists of two pages - the working-set type selection and the defined working-set page, corresponding to the selection of the user (That's why there is a Next
button in that GUI).
To add another page, you have to override WizardPage.getNextPage
(Thanks again to greg-449) in this page class. Passing the desired page does not work out of the box, because you have to add the creation wizard to the new IWizardPage
:
@Override
public IWizardPage getNextPage() {
IWizardPage page = new WizardPage2();
page.setWizard(getWizard());
return page;
}
Doing it this way, the second page does not have to implement IWorkingSetPage, because pressing the finish button will trigger the finish()
function of the first page.