コード例 #1
0
  private void updateTreeCheckboxesForItem(TreeItem item) {
    ICheckboxTreeContentProvider contentProvider = contentProvider();

    while (item != null) {
      item.setChecked(contentProvider.isChecked(item.getData()));
      item = ((TreeViewerAccess) treeViewer).getNextItem(item, true);
    }
  }
コード例 #2
0
  public void updateTableCheckboxes() {
    ICheckboxTreeContentProvider contentProvider = contentProvider();
    Table table = tableViewer.getTable();
    int count = table.getItemCount();

    for (int i = 0; i < count; i++) {
      TableItem item = table.getItem(i);

      item.setChecked(contentProvider.isChecked(item.getData()));
    }
  }
コード例 #3
0
  public void updateTreeCheckboxesForAncestor(Object element) {
    ICheckboxTreeContentProvider contentProvider = contentProvider();

    if (element != null) {
      treeViewer.setChecked(element, contentProvider.isChecked(element));
    }

    if (element == null) {
      TreeItem[] items = treeViewer.getTree().getItems();

      for (int i = 0, count = items.length; i < count; i++) {
        updateTreeCheckboxesForItem(items[i]);
      }
    } else {
      TreeItem item = ((TreeViewerAccess) treeViewer).itemForElement(element);

      updateTreeCheckboxesForItem(item);
    }
  }
コード例 #4
0
  public void checkStateChanged(CheckStateChangedEvent event) {
    if (ignoreCheckStateChanges) {
      return;
    }

    ICheckboxTreeContentProvider contentProvider = contentProvider();
    Object element = event.getElement();

    // Update the model
    contentProvider.setCheckedState(element, event.getChecked());

    // Update the UI
    ignoreCheckStateChanges = true;
    try {
      updateTreeCheckboxesForAncestor(element);
      updateTableCheckboxes();
    } finally {
      ignoreCheckStateChanges = false;
    }
  }