我有一个包含顶视图的透视图和一个带有两个堆叠视图的文件夹:
当在顶视图中进行选择时,文件夹中的视图都需要更新。这是通过添加选择侦听器来完成的。但是,只有实际显示的视图才会对选择做出反应。当我选择另一个视图时,它仍然是空的。
添加选择侦听器的代码放置在视图的 init() 方法中,显然只有在加载透视图时文件夹中的第一个视图才会调用此方法。
有没有办法关闭这种“延迟加载”,以便在创建透视图时创建所有视图(并调用它们的 init() 方法)?
提前感谢您的帮助,
我有一个包含顶视图的透视图和一个带有两个堆叠视图的文件夹:
当在顶视图中进行选择时,文件夹中的视图都需要更新。这是通过添加选择侦听器来完成的。但是,只有实际显示的视图才会对选择做出反应。当我选择另一个视图时,它仍然是空的。
添加选择侦听器的代码放置在视图的 init() 方法中,显然只有在加载透视图时文件夹中的第一个视图才会调用此方法。
有没有办法关闭这种“延迟加载”,以便在创建透视图时创建所有视图(并调用它们的 init() 方法)?
提前感谢您的帮助,
这不是一个错误,它是一个功能。Eclipse 极大地受益于这种行为,因为并非所有插件/视图/等。只要它们不是真正需要的,它们就会被加载。这就是您的听众最近注册的原因(一旦真正创建了视图内容)。
但回到您的问题:您可以尝试手动创建/激活所有这些。
只需调用
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(<ViewID>)
对于他们每一个人。如果它们没有被激活并被带到前面(但显示在堆栈的背景中),那么请查看带有 secID(可以为 null)和附加特定模式标志的重载 showView() 方法。