JFace Viewer API CheckboxTreeViewer

2024-02-04 21:58

本文主要是介绍JFace Viewer API CheckboxTreeViewer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TreeViewer
TreeViewer 类封装了tree控件。树查看器按照父子关系来显示分等级的对象列表。此查看器需要设置标签供给器和内容供给器。The CheckboxTreeViewer加入了对个别条目泛灰的支持,还可以选中和反选与条目相关联的复选框。常用的API包括:
add(Object, Object) 为查看器中指定元素添加子元素。

add(Object, Object[]) 为查看器中指定元素添加若干子元素。

addTreeListener(ITreeViewerListener)为查看器添加展开收缩事件监听器。

collapseAll() 收缩树查看器的所有节点,只显示根节点。

collapseToLevel(Object, int) 以指定元素为根,收缩到指定层次。

expandAll() 从根节点开始,展开所有节点。

expandToLevel(int)将查看器展开到指定层次。

expandToLevel(Object, int) 展开指定元素的所有父节点,使指定元素可见。并以指定元素为根,展开到指定层次。

getExpandedElements() 返回查看器中展开节点对应元素的列表,包括那些被标记为展开状态,但是因为父节点是收缩的,所以当前隐藏的元素。

getExpandedState(Object) 返回指定元素对应的节点是展开还是收缩状态。

Tree getTree() 返回树查看器的树控件。

getVisibleExpandedElements() 获取用户可见的展开元素。

isExpandable(Object) 返回指定元素对应的节点是否可以被展开。

remove(Object) 从查看器中删除指定元素。

remove(Object[])从查看器中删除指定元素。

reveal(Object) 滚动查看器,确保指定元素被显示。

scrollDown(int, int) Scrolls the viewer's control down by one item from the given display-relative coordinates.

scrollUp(int, int) Scrolls the viewer's control up by one item from the given display-relative coordinates.

setAutoExpandLevel(int) 设置自动展开层次级别。

setContentProvider(IContentProvider) AbstractTreeViewer实现该方法,确保输入的内容查看器为 ITreeContentProvider。

setExpandedElements(Object[]) 设置展开的节点。

setExpandedState(Object, boolean) 设置指定元素对应的节点为展开还是收缩。

setLabelProvider(IBaseLabelProvider) 树查看器实现Viewer 框架的该方法确保输入的标签查看器为ILabelProvider。

CheckboxTreeViewer 增加了如下API:
addCheckStateListener(ICheckStateListener) 为查看器增加选中状态改变监听器。

getChecked(Object)返回指定元素的选中状态。

getCheckedElements() 返回查看器的选中元素列表,包括那些被标记为选中状态,但是因为父节点是收缩的,所以当前隐藏的元素。

getGrayed(Object) 返回指定元素 的泛灰状态。

getGrayedElements() 返回查看器的泛灰元素列表,包括那些被标记为泛灰状态,但是因为父节点是收缩的,所以当前隐藏的元素。

setChecked(Object, boolean)设置指定元素的选中状态。

setCheckedElements(Object[]) 设置查看器的选中元素。

setGrayChecked(Object, boolean) 设置指定元素被选中并泛灰,等同于调用setGrayed 和 setChecked方法。

setGrayed(Object, boolean) 设置指定元素的泛灰状态。

setGrayedElements(Object[]) 设置指定元素为泛灰状态。

setParentsGrayed(Object, boolean) 设置指定元素和其父元素为泛灰状态。

setSubtreeChecked(Object, boolean) 设置指定元素和其子元素的选中状态。

下面的程序例子展示了怎样构建一个树查看器。(参见 Figure 5-10)。
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class TreeViewerExample {
   public static void main(String[] args) {
      Display display = new Display();
      Shell shell = new Shell(display);
      shell.setText("Tree Viewer Example");
      shell.setBounds(100, 100, 200, 200);
      shell.setLayout(new FillLayout());

      final TreeViewer treeViewer =
         new TreeViewer(shell, SWT.SINGLE);
      treeViewer.setLabelProvider(
         new PersonListLabelProvider());
      treeViewer.setContentProvider(
         new PersonTreeContentProvider());
      treeViewer.setInput(Person.example());

      shell.open();
      while (!shell.isDisposed()) {
         if (!display.readAndDispatch()) display.sleep();
      }
      display.dispose();
   }
}Figure 5-10. TreeViewer 样例

创建树查看器后,使用setLabelProvider()方法设置标签供给器,使用setContentProvider()方法设置内容供给器。 PersonTreeContentProvider, 返回每个节点的父节点和子节点。 程序如下:

import org.eclipse.jface.viewers.*;

public class PersonTreeContentProvider
   extends ArrayContentProvider
   implements ITreeContentProvider {

   public Object[] getChildren(Object parentElement) {
      Person person = (Person) parentElement;
      return person.children;
   }

   public Object getParent(Object element) {
      Person person = (Person) element;
      return person.parent;
   }

   public boolean hasChildren(Object element) {
      Person person = (Person) element;
      return person.children.length > 0;
   }
}

这篇关于JFace Viewer API CheckboxTreeViewer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678905

相关文章

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

如何更优雅地对接第三方API

如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等。第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Restful API 原理以及实现

先说说API 再说啥是RESRFUL API之前,咱先说说啥是API吧。API大家应该都知道吧,简称接口嘛。随着现在移动互联网的火爆,手机软件,也就是APP几乎快爆棚了。几乎任何一个网站或者应用都会出一款iOS或者Android APP,相比网页版的体验,APP确实各方面性能要好很多。 那么现在问题来了。比如QQ空间网站,如果我想获取一个用户发的说说列表。 QQ空间网站里面需要这个功能。

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

Docker远程连接和Docker Remote Api

在Docker生态系统中一共有3种API:Registry API、Docker Hub API、Docker Remote API 这三种API都是RESTful风格的。这里Remote API是通过程序与Docker进行集成和交互的核心内容。 Docker Remote API是由Docker守护进程提供的。默认情况下,Docker守护进程会绑定到一个所在宿主机的套接字:unix:///v

基于MinerU的PDF解析API

基于MinerU的PDF解析API - MinerU的GPU镜像构建- 基于FastAPI的PDF解析接口 支持一键启动,已经打包到镜像中,自带模型权重,支持GPU推理加速,GPU速度相比CPU每页解析要快几十倍不等 主要功能 删除页眉、页脚、脚注、页码等元素,保持语义连贯对多栏输出符合人类阅读顺序的文本保留原文档的结构,包括标题、段落、列表等提取图像、图片标题、表格、表格标题自动识别

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs