如果您的应用程序被封装为 Eclipse 产品,您可以调整该plugin.properties/plugin_customization.ini
文件。(由产品扩展点中的 ' ' 属性
引用的文件。)
此文件是 java.io.Properties 格式文件。通常,此文件用于设置作为插件公共 API 的一部分发布的首选项的值。
(此类文件的示例)preferenceCustomization
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 阿斯顿维拉确实证实了这一点(在评论中),但也表明(有序)ini 文件条目在内部被记录到偏好存储中,这意味着它们可以通过偏好存储 API检索:
PatformUI.getPreferenceStore().getDefault(
IWorkbenchPreferenceConstants.PERSPECTIVE_BAR_EXTRAS)
利物浦 5 - 0 阿斯顿维拉然后补充:
透视注册表(最初的“ PlatformUI.getWorkbench().getPerspectiveRegistry().getPerspectives();
”位)保持不变(并且无序)。
但是,您仍然可以通过偏好存储“轻松访问有序的视角列表” 。
因此,对于其他任务,我们可以使用存储有序透视 id 列表的有序变量,而不是遍历透视注册表(仍然是无序的)。
.
.
.
.
注意:另一种可能性是替换 RCP 应用程序中的透视切换器
=> 到:
您可以更轻松地在菜单或按钮中定义顺序。
极端解决方案:重新实现一个透视切换器。