zoukankan      html  css  js  c++  java
  • SWT的CheckBoxTreeView

    其实CheckBoxTreeView和TreeView基本上是一样的,他们共同的方法有:

    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;
       }
    }
  • 相关阅读:
    linux系统中只删除所有文件或只删除所有目录
    redhat7使用nmtui配置网络
    xshell,winscp,xftp无法用root用户登录
    windows无法访问指定设备路径或文件,你可能没有权限
    挂起/释放执行sap Job
    ALE,RFC和CPIC之间的关系
    CALL RFC synchronize and asychronize Examples
    关于BAPI
    ABAP调用SAP的单位转换函数进行单位转换
    BASIS--Client 锁定和解锁
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/checkboxTreeView.html
Copyright © 2011-2022 走看看