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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo