Eclipse RCP,SWT,JFace:如何创建仅对视图(而不是整个shell)模态的对话框?

StackOverflow https://stackoverflow.com/questions/800321

无论如何要创建一个视图模态的对话框而不是整个shell(应用程序)?所以如果说,我有一个名为A的视图覆盖了另一个名为B的视图,我想打开一个只能模态查看A的对话框,所以当我切换到视图B时,对话框和视图A将被覆盖观点B.无论如何我能做到这一点,即使这不是正常做法吗?

谢谢!

有帮助吗?

解决方案

我认为实施起来并不容易。一种可能性是,不使用View A中的模态对话框,而是使用TabFolder。然后,您可以在新选项卡中打开对话框的内容,并强制此选项卡保持在最顶层,直到您将其关闭为止。这与您需要的行为类似。

这也允许您将视图B中的内容拖放到视图A中。

其他提示

工作台恢复的整个想法是将工作台恢复到之前的状态。它不必恢复每个细节,但如果您不想将视图留空,则应将其恢复到原始状态。这意味着应该使用与关闭工作台时相同的输入来恢复视图B.如果在视图A关闭后视图B及其输入继续存在,则无论视图A是否存在,都可以恢复视图B及其输入。在工作台还原期间,您当然不应该打开对话框。这不是一个好的UI设计。 Eclipse提供了一个非常易于使用的memento框架,可以保存视图的输入。使用它。

如果您不熟悉mementos,请参阅 http://wiki.eclipse.org/ FAQ_How_does_a_view_persist_its_state_between_sessions%3F

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top