Как создать мастера многостраничного рабочего набора - PullRequest
0 голосов
/ 06 марта 2020

Я разрабатываю подключаемый модуль Eclipse, который работает с пользовательскими рабочими наборами. Прямо сейчас пользователь может создать эти рабочие наборы, запустив многостраничный мастер с помощью File > New > Other... > Custom Working Set.

По умолчанию рабочие наборы также можно создавать в диалоговом окне выбора рабочего набора с помощью Project Explorer > Select Working Set... > New. Те рабочие наборы "волшебники" (например, Java Working-Set, Resource Working-Set, ...) состоят из одной страницы. Технически есть следующая кнопка, но она не работает после выбора типа рабочего набора.

Есть ли способ переопределить это поведение для включения многостраничных мастеров? Я считаю, что мне нужно работать с классом WorkingSetNewWizard или с интерфейсом IWorkingSetNewWizard, но я не уверен, как.

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Элемент workingSet точки расширения org.eclipse.ui.workingSets, используемый для определения нового типа рабочего набора, имеет атрибут pageClass, который используется для указания класса, реализующего вторую страницу мастера создания нового рабочего набора.

Класс страницы должен реализовывать org.eclipse.ui.dialogs.IWorkingSetPage.

Пример в справке Eclipse:

<extension point="org.eclipse.ui.workingSets">
    <workingSet
        id="org.eclipse.ui.resourceWorkingSetPage"
        name="Resource"
        description="Contains basic resources (files, folders, and projects)"
        icon="icons/resworkset.png"
        pageClass="org.eclipse.ui.internal.dialogs.ResourceWorkingSetPage"
        updaterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetUpdater"
        elementAdapterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetElementAdapter">
    </workingSet>
 </extension>

Примечание: WorkingSetNewWizard является внутренним классом, поэтому Вы не должны ссылаться на это в своем коде.

0 голосов
/ 10 марта 2020

Так что мне удалось заставить эту штуку работать!

Так же, как указал greg-449, добавление пользовательского рабочего набора может быть достигнуто путем определения его в точке расширения org.eclipse.ui.workingSets и реализации класса страницы. что расширяет "WizardPage" реализует org.eclipse.ui.dialogs.IWorkingSetPage.

Класс, который обрабатывает создание рабочего набора, WorkingSetNewWizard. По умолчанию он создает мастер, состоящий из двух страниц - выбора типа рабочего набора и определенной страницы рабочего набора, соответствующей выбору пользователя (поэтому в этом GUI есть кнопка Next) .

Чтобы добавить другую страницу, вы должны переопределить WizardPage.getNextPage (еще раз спасибо greg-449) в этом классе страниц. Передача нужной страницы не работает "из коробки", потому что вы должны добавить мастер создания в новый IWizardPage:

@Override
public IWizardPage getNextPage() {
    IWizardPage page = new WizardPage2();
    page.setWizard(getWizard());
    return page;
}

При этом второй странице не нужно реализовывать IWorkingSetPage потому что нажатие кнопки fini sh вызовет функцию finish() на первой странице.

...