Как включить страницу настроек в диалог настроек - PullRequest
0 голосов
/ 25 марта 2019

Я знаю способ добавления страниц настроек в общий диалог настроек для приложения e3 RCP. У меня есть приложение e4 RCP, и я прочитал, что диалог настроек работает по-другому.

Я нашел способ открыть диалоговое окно общих настроек, но не нашел способа включить настроенную страницу настроек в диалог.

public class PreferenceHandler {

    @CanExecute
    public boolean canExecute()
    {
        return true;    
    }

    @Execute
    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,  E4PreferenceRegistry  prefReg,
            @Optional @Named("preferencePageId") String pageId) {
        PreferenceManager pm = prefReg.getPreferenceManager();
        // Can display the standard dialog.
        PreferenceDialog dialog = new PreferenceDialog(shell, pm);
        if (pageId != null)
        {
            dialog.setSelectedNode(pageId);
        }
        dialog.create();
        dialog.getTreeViewer().setComparator(new ViewerComparator());
        dialog.getTreeViewer().expandAll();
        dialog.open();
    }
}

1 Ответ

0 голосов
/ 25 марта 2019

Большая часть кода страницы настроек является частью e3 и недоступна в e4. Доступен только самый базовый код JFace.

Таким образом, вам нужно будет добавить каждую страницу предпочтений непосредственно к PreferenceManager. Что-то вроде:

PreferenceManager pm = ... preference manager

IPreferencePage page = ... create your preference page

page.setTitle("title of the page");

IPreferenceNode node = new PreferenceNode("id of the page", page);

pm.addToRoot(node);
...