*jface的内部日志服务

---功能

默认实现是在System.err输出异常信息.

通过Policy.setLog(ILogger logger)定制,由于对Policy而言是赋给一个静态ILog实例,故调用这个方法就改变了jface内部类的异常输出方式.

默认log实现

 

---使用方式

ILogger getLog(),或者logException

 

*显示Status信息

---功能

默认对Status的处理方式,是出现一个对话框显示status的信息.对话框实质是ErrorDialog.

---使用实例

这是PreferenceDialog中的代码

Policy.getStatusHandler().show(
                        new Status(IStatus.ERROR, Policy.JFACE, message, e),
                        JFaceResources.getString("Error"));

 

*定制Status的显示

---在jface的ErrorDialog中createSupportArea(Composite parent)给ErrorSupportProvider传递参数,

所以若通过void setErrorSupportProvider(ErrorSupportProvider provider)就可以自定义Status的展现.

jface默认没有使用设个功能.

 

*提供viewer的比较器

---static Comparator getComparator()

这个Comparator的默认实现将对象强制为String,利用String的int compareTo(String anotherString)比较

 

*提供对Control的控制

---功能

实现通过AnimatorFactory类提供对Control的处理,AnimatorFactory默认实现了对Control的可见性的控制.

---通过setAnimatorFactory(AnimatorFactory factory),和继承AnimatorFactory来扩展这个功能.

jface自己的控件没有使用这个功能.

 

*总结

Policy提供了一些静态方法,思想是对jface中的类提供一些常用的一致的服务.我们可以使用这些默认实现功能,也可以根据需要定制他们的处理方式.

我觉得这个类的价值在于当我们扩展控件时,可以使用它,保持和jface控件的一致处理方式,如日志处理,报错.

posted on 2010-11-11 16:21  戴忠  阅读(207)  评论(0编辑  收藏  举报