Eclipse RCP JFace
阅读数:103 评论数:0
跳转到新版页面分类
python/Java
正文
JFace是基于SWT的一组plug-ins,但是JFace不会隐藏SWT的API。JFace提供了viewers框架,它可以简化数据模型和可视化显示的匹配。
JFace也提供了帮助类,用于有效管理系统资源,如colors、images和fonts。
Colors、Fonts和Images的JFace的资源管理器
colors、fonts和images需要显示的被释放,JFace提供了LocalResourceManager类可以用于这个操作。
LocalResourceManager类的实例会引用一个Composite,如果这个Composite被释放了,LocalResourceManager创建的资源也会被释放。
// create the manager and bind to a widget
LocalResourceManager resManager =
new LocalResourceManager(JFaceResources.getResources(), composite);
// create resources
Color color = resManager.createColor(new RGB(200, 100, 0));
Font font = resManager.
createFont(FontDescriptor.createFrom("Arial", 10, SWT.BOLD));
// get an imageDescriptor and create Image object
Image image = resManager.createImage(imageDescriptor);
ControlDecoration
ControlDecoration允许在SWT control上添加image decorations来显示control额外的信息,当用户把鼠标放在其上时,会显示描述信息。
// create the decoration for the text UI component
final ControlDecoration deco =
new ControlDecoration(text, SWT.TOP | SWT.RIGHT);
// re-use an existing image
Image image = FieldDecorationRegistry.
getDefault().
getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).
getImage();
// set description and image
deco.setDescriptionText("This is a tooltip text");
deco.setImage(image);
// hide deco if not in focus
deco.setShowOnlyOnFocus(true);
field关联的用户输入提示
org.eclipse.jface.fieldassit包提供了用于组件用户输入的辅助,ContentProposalAdapter类用于提供可能的输入值。
JFace viewer framework
JFace viewer framework允许你在一个标准SWT组件中显示domain model,一个viewer允许设置一个提供数据的content provider,也可以设置至少一个label provider,用于定义模型中的数据怎样在viewer中显示。
标准的JFace viewer
这些viewer位于org.eclipse.jface.viewers包中。
(1)ComboViewer
(2)ListViewer
(3)TreeViewer
(4)TableViewer
标准的Content provider
(1)IStructuredContentProvider(接口)
默认实现为ArrayContentProvider,用于List-,Combo-和TableViewer。
(2)ITreeContentProvider(接口)
没有默认的实现,用于TreeViewer
标准的Label provider
(1)LabelProvider
用于list和tree,可以为每个元素返回一个icon和label。
(2)ColumnLabelProvider
用于tables,为每一列定义一个label。