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;
       }
    }
  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/checkboxTreeView.html
Copyright © 2011-2022 走看看