2009-04-28 3 views
3

어쨌든 전체 셸 (응용 프로그램)이 아닌보기에 모달 인 대화 상자를 만들 수 있습니까? 따라서 A라고하는 뷰가 B라는 다른 뷰를 오버레이하는 경우, A를 보려면 모달 인 대화 상자를 열고 싶습니다. 따라서 B 뷰로 전환하면 대화 상자와 뷰 A가 표시됩니다. B. 정상적인 관행이 아니더라도 어쨌든이 작업을 수행 할 수 있습니까?Eclipse RCP, SWT, JFace :보기에만 모달 인 대화 상자를 만드는 방법 (전체 셸이 아님)?

감사합니다.

답변

3

구현하기가 쉽지 않을 것이라고 생각합니다. 한 가지 가능성은 View A에서 모달 대화 상자를 사용하는 대신 TabFolder를 사용한다는 것입니다. 그런 다음 대화 상자의 내용을 대신 새 탭에서 열고이 탭을 닫을 때까지 맨 위에 머물러있게 할 수 있습니다. 이것은 당신이 필요로하는 것과 비슷한 행동입니다.

이것은 또한 당신이보기 A. 워크 벤치의 모든 생각은 복원

+0

감사! 유용했습니다. 그러나 나는 아마도 내 실제 문제가 무엇인지 설명해야한다고 생각 했으므로 아마 더 나은 그림을 가지고 다른 제안을 할 수있을 것입니다. 두 가지보기 A와 B가 있습니다. B보기를 얻는 유일한 방법은보기 A에있는 항목을 클릭하는 것입니다. 실제로보기 B의 입력은보기 A에서 클릭 한 항목에서 나옵니다. 보기 B는 응용 프로그램을 닫을 때 열리고 다음에 다시 실행될 때보기 B는 자동으로 열리 며 (setSaveAndRestore (true)), 입력이 없으면 비어있는 것으로 표시됩니다. – His

+0

(죄송합니다. 위의 의견이 얼마나 오래되었는지는 알지 못했습니다. 여기에 계속됩니다.) 위의 경우에 내가하고 싶은 것은 대화 (또는 다른 것)가 있었고 가능한 입력을 나열했습니다. 사용자가 선택할 수 있도록보기 B. 대화 상자를 무시하고 다른보기로 자유롭게 전환 할 수 있도록 대화 상자가 전체 앱을 차단하지 않기를 바랬습니다. TabFolder를 사용하는 것이 좋을 것 같아요.하지만보기 B 자체가 자체 제어 위젯을 가지고 있기 때문에 필요시 (입력이 없을 때) 뷰 B에 어떻게 통합 될지 확신 할 수 없습니다. 감사합니다. – His

1

로보기 B에서 무언가를 드래그 앤 드롭 할 수는 전 상태로 다시 워크 벤치를 넣어하는 것입니다. 모든 작은 세부 사항을 복원 할 필요는 없지만보기를 비워두기를 원하지 않으면 원래 상태로 복원해야합니다. 이는 뷰 B가 워크 벤치를 닫을 때와 동일한 입력으로 복원되어야 함을 의미합니다. 보기 A가 닫히고보기 A가 존재하는지 여부에 관계없이보기 B와 그 입력을 복원 할 수있는 후에보기 B와 그 입력이 계속 존재하면. 작업대를 복원하는 동안 대화 상자를 열지 않아야합니다. 그건 좋은 UI 디자인이 아니야. Eclipse는보기의 입력을 저장할 수있는 매우 사용하기 쉬운 기념 프레임 워크를 제공합니다. 그걸 써.

축하 카드에 익숙하지 않은 분은 http://wiki.eclipse.org/FAQ_How_does_a_view_persist_its_state_between_sessions%3F을 참조하십시오.

관련 문제