Eclipse RCP, SWT, JFace: Как создать диалог, который является модальным только для вида (не для всей оболочки)? - PullRequest
3 голосов
/ 29 апреля 2009

Есть ли способ создать диалоговое окно, которое будет модальным для представления, а не для всей оболочки (приложения)? Итак, если, скажем, у меня есть одно представление с именем A, которое перекрывает другое представление с именем B, я хочу открыть диалоговое окно, которое является только модальным для представления A, поэтому при переключении на представление B диалоговое окно и представление A будут закрыты view B. Могу ли я в любом случае сделать это, даже если это не обычная практика?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 29 апреля 2009

Я думаю, что это будет не так легко реализовать. Одна возможность состоит в том, что вместо использования модального диалога в представлении A вы используете TabFolder. Затем вместо этого вы можете открыть содержимое диалога в новой вкладке и заставить эту вкладку оставаться наверху, пока не закроете ее. Это поведение похоже на то, что вам нужно.

Это также позволит вам перетаскивать что-либо из вида B в вид A.

1 голос
/ 07 мая 2009

Вся идея восстановления рабочего места заключается в том, чтобы вернуть рабочее место в прежнее состояние. Не нужно восстанавливать каждую мелкую деталь, но если вы не хотите оставлять представление пустым, вам следует восстановить его в исходное состояние. Это означает, что представление B должно быть восстановлено с тем же вводом, что и при закрытии рабочей среды. Если представление B и его входные данные продолжают существовать после закрытия представления A, то представление B и его входные данные могут быть восстановлены независимо от того, существует представление A или нет. Вы, конечно, не должны открывать диалоговые окна во время восстановления рабочего места. Это не было бы хорошим дизайном пользовательского интерфейса. Eclipse предоставляет очень простой в использовании каркас памяти, который может сохранить входные данные представления. Используйте это.

Если вы не знакомы с сувенирами, см. Например http://wiki.eclipse.org/FAQ_How_does_a_view_persist_its_state_between_sessions%3F.

...