Как скрыть страницу предпочтений в RCP затмения - PullRequest
14 голосов
/ 22 сентября 2009

У меня есть eclipse rcp, и я хочу скрыть страницы настроек безопасности и помощи. Как я могу это сделать?

Ответы [ 2 ]

19 голосов
/ 24 ноября 2009

Я искал то же самое и нашел решение по этой ссылке:

http://sourceforge.net/apps/trac/fable/wiki/Preferences

Приветствия. Stefan


Отключить настройки справки

Поместите следующий код в ваш подкласс org.eclipse.ui.application.WorkbenchAdvisor, и он удалит группу «Справка» из диалогового окна настроек RCP:

public void postStartup() {
    PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager( );
    pm.remove( "org.eclipse.help.ui.browsersPreferencePage" );
}

"org.eclipse.help.ui.browsersPreferencePage" - это идентификатор точки расширения настроек.
Добавить параметры перспективы ¶

Примечание: чтобы найти настройки идентификатора плагина, выберите Window-->show view--> PDE Runtime--> Plugin Registry ..... и попробуйте найти то, что вы ищете .....
Например, для "Workbench preferences" посмотрите fable.eclipse.ui.ide и расширение org.eclipse.ui.preferencePages: id="org.eclipse.ui.preferencePages.Workbench"

Если вы хотите добавить только предпочтения (например), добавьте расширение предпочтений в MANIFEST.XML:

id : org.eclipse.ui.preferencePages.Perspectives
name:perspective(fable)
class:org.eclipse.ui.internal.ide.dialogs.IDEPerspectivesPreferencePage

//Add : org.eclipse.ui.ide in your Dependencies

В ApplicationWorkBenchAdvisor:

public void postStartup() {
    PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager( );

    pm.remove( ""org.eclipse.ui.preferencePages.Workbench"browsersPreferencePage" );
}

public String getInitialWindowPerspectiveId() {
    IPreferenceStore pref = Activator.getDefault().getPreferenceStore();
    String ret = pref.getDefaultString(IWorkbenchPreferenceConstants.DEFAULT_PERSPECTIVE_ID);
    ret=(ret==null || ret.equals(""))?"yourDefaultPerspectiveID":ret;
    return ret;
}//
6 голосов
/ 22 сентября 2009

Согласно этой записи , вы можете использовать механизм "рабочие места" и:

  • определяет отдельные действия, соответствующие различным уровням доступа
  • определяет ваши действия в регулярных наборах действий, сгруппированных в соответствии с уровнем доступа
  • связывает каждое действие с соответствующими наборами действий через activityPatternBinding элементов
  • установить включенные идентификаторы активности после аутентификации, в самом начале рабочего места жизненный цикл, например из вашего WorkbenchAdvisor preStartup() метода.

(Обратите внимание, что выше было для фильтрации на основе разрешений пользователя, но это может быть обобщено для других критериев.)


Что касается страниц настроек для хранения и справки, вы должны связать идентификатор этих страниц с активностью, которую, как вы знаете, вы можете отключить:

<activityPatternBinding
  activityId="org.eclipse.javaDevelopment"
  pattern="org\.eclipse\.help\..*/.*">
</activityPatternBinding>

отключит все меню / настройки / представления, связанные с помощью.

Если вы используете org.eclipse.help.ui.PrefPageHelp\..*, он будет связывать только prefPageHelp и prefPageHelpContent.

Если вы добавите другое расширение привязки активности с org.eclipse.equinox.security.ui.sec_storage_preferences_context, это также позаботится о странице настроек Secure Storage.

...