好多Dialog

最近的一个feature request又需要做一个Dialog,我又一次面临在Eclipse平台的众多Dialog里选择一个来实现功能。借此再把这些dialog整理一下

1,SWT的Dialog

   (1) 最简单的Dialog,只是封装了一个Shell。完全就可以当成一个Shell。

   (2) 我还一直以为它和JFace的dialog差不多重。悲惨的是我的一个dialog就是用的swt的dialog,还自己负责readAndDispatch()

2,JFace的Window

   (1) 也是对一个Shell的封装,地位和SWT的Dialog。

   (2) 它open()方法里封装readAndDispatch(),Client可以只关心Dialog了

   (3) 维护了parentShell,处理有有关模态和非模态的逻辑

3,JFace的Dialog

   (1) 继承JFace的Window,也就是说,JFace的Dialog和SWT的Dialog一点关系都没有

   (2) 最简单的Dialog,只有两个button:OK 或 Cancel

   (3) TrayDialog, 继承于Dialog,实现Help相关的内容,比如经常在Dialog里看到的小问号

   (4) TitleAreaDialog,继承于TrayDialog,实现一个Title Area,可以放图片,Message等,一般比较重的Dialog用它

   (5) WizardDialog,继承于TitleAreaDialog,越来越重了。

猜你喜欢

转载自crazycow.iteye.com/blog/1149896