*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控件的一致处理方式,如日志处理,报错.