Если ваше приложение инкапсулировано как продукт Eclipse, вы можете настроить файл plugin.properties/plugin_customization.ini
.
(файл, на который ссылается свойство 'preferenceCustomization
' в вашем продукте точка расширения .)
Этот файл является файлом формата java.io.Properties. Обычно этот файл используется для установки значений для предпочтений, которые публикуются как часть общедоступного API плагина.
(Пример такого файла для org.eclipse.platform
)
Таким образом, если на строку, представляющую порядок перспективы, можно ссылаться как на свойство, вы можете определить там порядок по умолчанию.
Поскольку исходный код IWorkbenchPreferenceConstants
упоминает:
/**
* Lists the extra perspectives to show in the perspective bar.
* The value is a comma-separated list of perspective ids.
* The default is the empty string.
*
* @since 3.2
*/
public static final String JavaDoc PERSPECTIVE_BAR_EXTRAS = "PERSPECTIVE_BAR_EXTRAS"; //$NON-NLS-1$
Может быть, строка в файле plugin_customization.ini
:
org.eclipse.ui/PERSPECTIVE_BAR_EXTRAS=perspectiveId1,perspectiveId2,perspectiveId3
позволит вам указать этот порядок без необходимости его жесткого кодирования.
Дополнительные примечания:
IPerspectiveRegistry (или PerspectiveRegistry ) не предназначены для записи чего-либо (особенно для перспективы, определенной в расширении)
Порядок можно найти в состоянии рабочего места (сохраняется в рабочем пространстве, а затем восстанавливается при его повторном запуске, .metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
)
Подтверждаете ли вы, что:
IPerspectiveRegistry registry = PlatformUI.getWorkbench().getPerspectiveRegistry();
IPerspectiveDescriptor[] perspectives = registry.getPerspectives();
не в правильном порядке, когда plugin_customization.ini
правильно определяет этот порядок?
Ливерпуль 5 - 0 Aston Villa подтверждает, что (в комментариях), но также указывает, что (упорядоченные) записи ini-файлов внутренне записываются в хранилище настроек , что означает, что они можно получить через API хранилища настроек :
PatformUI.getPreferenceStore().getDefault(
IWorkbenchPreferenceConstants.PERSPECTIVE_BAR_EXTRAS)
Ливерпуль 5 - 0 Астон Вилла, затем добавьте:
реестр перспективы (начальный бит "PlatformUI.getWorkbench().getPerspectiveRegistry().getPerspectives();
") остается неизменным (и неупорядоченным).
Но вы все еще можете " легко получить доступ к упорядоченному списку перспектив " через хранилище предпочтений .
Таким образом, для других задач вместо итераций в перспективном реестре (который все еще неупорядочен) мы можем использовать упорядоченную переменную, в которой хранится список упорядоченных соответствующих идентификаторов.
.
.
.
,
Примечание: еще одна возможность - Заменить переключатель перспективы в приложениях RCP
=> до:
Вы можете более легко определить порядок в меню или в кнопках там.
Экстремальное решение: повторно реализовать переключатель перспективы .