Ejemplo n.º 1
0
    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
     */
    @Override
    public void widgetSelected(SelectionEvent arg0) {
      if ((arg0.detail & SWT.CHECK) == SWT.CHECK) {
        try {

          TreeItem tree = (TreeItem) arg0.item;
          ICPEType cpc = (ICPEType) tree.getData();
          cpc.setEnabled(tree.getChecked());
          System.out.println("Selection: " + arg0.item + " -> " + cpc.isEnabled());
          TreeItem parentItem = tree.getParentItem();
          if (!tree.getChecked()) {
            if (parentItem.getChecked()) {
              parentItem.setGrayed(true);
            } else {

            }
          } else {
            tree.setGrayed(false);
          }
          updateChildCheckboxes(tree);
          makeChecksConsistentWithChildren();
        } catch (ClassCastException e) {
          e.printStackTrace();
        }
      }
    }
Ejemplo n.º 2
0
 /**
  * Update all the children TreeItems of the given parent to be the same check as the parent.
  *
  * @param parent the parent
  */
 protected void updateChildCheckboxes(TreeItem parent) {
   for (TreeItem child : parent.getItems()) {
     child.setChecked(parent.getChecked());
     child.setGrayed(false);
     updateChildCheckboxes(child);
   }
 }
Ejemplo n.º 3
0
 /**
  * Invokes the appropriate asserts to verify the state of a TestElement's associated TreeItem
  *
  * @param te
  * @param item the item representing <code>te</code>
  * @param shift the shift parameter being used
  */
 private void checkState(String comment, TestElement te, TreeItem item, int shift) {
   assertEquals(
       "Wrong checkstate: " + comment,
       CheckStateProviderTestsUtil.shouldBeChecked(te, shift),
       item.getChecked());
   assertEquals(
       "Wrong checkstate: " + comment,
       CheckStateProviderTestsUtil.shouldBeGrayed(te, shift),
       item.getGrayed());
 }
 /**
  * Adds the view infos.
  *
  * @param root the root
  * @param infos the infos
  */
 protected void addViewInfos(TreeItem root, Collection<Integer> infos) {
   for (TreeItem item : root.getItems()) {
     if (item.getChecked() == false) {
       Object data = item.getData();
       if (data instanceof ViewInfo) {
         infos.add(((ViewInfo) data).getVisualID());
       }
     }
     addViewInfos(item, infos);
   }
 }
 protected void treeItemSelected(SelectionEvent e) {
   if (e.detail == SWT.CHECK && isChecking == false) {
     isChecking = true;
     try {
       Object data = e.item.getData();
       ViewInfo viewInfo =
           (ViewInfo) Platform.getAdapterManager().getAdapter(data, ViewInfo.class);
       TreeItem item = (TreeItem) Platform.getAdapterManager().getAdapter(e.item, TreeItem.class);
       if (viewInfo != null && item != null && getTreeViewer().getTree().getItems() != null) {
         if (viewInfo.isSelectable()) {
           setAllVisualIDsChecked(
               getTreeViewer().getTree().getItems(), viewInfo.getVisualID(), item.getChecked());
         } else {
           item.setChecked(!item.getChecked());
         }
       }
     } finally {
       isChecking = false;
     }
   }
 }
Ejemplo n.º 6
0
 /**
  * Make check marks consistent with children.
  *
  * @param item the item
  * @return null if checkbox should be gray, true if checked, false if unchecked
  */
 private Boolean makeChecksConsistentWithChildren(TreeItem item) {
   Boolean ret = item.getChecked();
   for (TreeItem child : item.getItems()) {
     Boolean current = makeChecksConsistentWithChildren(child);
     if (current != ret) {
       ret = null;
     }
   }
   item.setChecked(!Boolean.FALSE.equals(ret));
   item.setGrayed(ret == null);
   return ret;
 }
 /**
  * Sets the checked state of all items to correspond to the given set of checked elements.
  *
  * @param checkedElements the set (element type: <code>Object</code>) of elements which are
  *     checked
  * @param widget the widget
  */
 private void internalSetChecked(CustomHashtable checkedElements, Widget widget) {
   Item[] items = getChildren(widget);
   for (int i = 0; i < items.length; i++) {
     TreeItem item = (TreeItem) items[i];
     Object data = item.getData();
     if (data != null) {
       boolean checked = checkedElements.containsKey(data);
       if (checked != item.getChecked()) {
         item.setChecked(checked);
       }
     }
     internalSetChecked(checkedElements, item);
   }
 }
  /* (non-Javadoc)
   * Method declared on StructuredViewer.
   */
  protected void handleDoubleSelect(SelectionEvent event) {

    if (lastClickedItem != null) {
      TreeItem item = lastClickedItem;
      Object data = item.getData();
      if (data != null) {
        boolean state = item.getChecked();
        setChecked(data, !state);
        fireCheckStateChanged(new CheckStateChangedEvent(this, data, !state));
      }
      lastClickedItem = null;
    } else {
      super.handleDoubleSelect(event);
    }
  }
  /* (non-Javadoc)
   * Method declared on StructuredViewer.
   */
  protected void handleSelect(SelectionEvent event) {

    lastClickedItem = null;
    if (event.detail == SWT.CHECK) {
      TreeItem item = (TreeItem) event.item;
      lastClickedItem = item;
      super.handleSelect(event);

      Object data = item.getData();
      if (data != null) {
        fireCheckStateChanged(new CheckStateChangedEvent(this, data, item.getChecked()));
      }
    } else {
      super.handleSelect(event);
    }
  }
  /** @param e */
  private void checkSelection(final SelectionEvent e) {
    TreeItem selItem = null;
    TreeItem[] items = null;

    selItem = (TreeItem) e.item;
    if (selItem.getChecked()) {
      items = this.interfaceTree.getItems();
      for (TreeItem element : items) {
        element.setChecked(false);
      }

      selItem.setChecked(true);
    }

    this.isComplete = true;
    this.updateStatus(null);
  }
 /** Builds the selected. */
 protected void buildSelected() {
   selected = new ArrayList<Integer>();
   if (getTreeViewer() == null
       || getTreeViewer().getTree() == null
       || getTreeViewer().getTree().getItems().length <= 0) {
     return;
   }
   for (TreeItem item : getTreeViewer().getTree().getItems()) {
     if (item.getChecked() == false) {
       Object data = item.getData();
       if (data instanceof ViewInfo) {
         selected.add(((ViewInfo) data).getVisualID());
       }
     }
     addViewInfos(item, selected);
   }
   return;
 }
Ejemplo n.º 12
0
  private void testSpecificState(final boolean isChecked, final boolean isGrayed) {
    CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;

    ctv.setCheckStateProvider(
        new ICheckStateProvider() {
          public boolean isChecked(Object element) {
            return isChecked;
          }

          public boolean isGrayed(Object element) {
            return isGrayed;
          }
        });

    TreeItem item = ctv.getTree().getItem(0);

    assertEquals(item.getChecked(), isChecked);
    assertEquals(item.getGrayed(), isGrayed);
  }
 /**
  * Gathers the checked and grayed states of the given widget and its descendents.
  *
  * @param checked a writable set of elements (element type: <code>Object</code>)
  * @param grayed a writable set of elements (element type: <code>Object</code>)
  * @param widget the widget
  */
 private void gatherState(CustomHashtable checked, CustomHashtable grayed, Widget widget) {
   Item[] items = getChildren(widget);
   for (int i = 0; i < items.length; i++) {
     Item item = items[i];
     if (item instanceof TreeItem) {
       Object data = item.getData();
       if (data != null) {
         TreeItem ti = (TreeItem) item;
         if (ti.getChecked()) {
           checked.put(data, data);
         }
         if (ti.getGrayed()) {
           grayed.put(data, data);
         }
       }
     }
     gatherState(checked, grayed, item);
   }
 }