private static void setGrayed()

in java/com/google/devtools/bazel/e4b/wizard/DirectoryTreeContentProvider.java [155:176]


  private static void setGrayed(CheckboxTreeViewer tv, Object element) {
    if (element == null) {
      return;
    }
    DirectoryTreeContentProvider provider = (DirectoryTreeContentProvider) tv.getContentProvider();
    boolean checked = tv.getChecked(element);
    boolean grayed = false;
    for (Object object : provider.getChildren(element)) {
      grayed = grayed || tv.getGrayed(object) || tv.getChecked(object);
      checked = checked && tv.getChecked(object) && !tv.getGrayed(element);
    }
    if (checked) {
      tv.setChecked(element, true);
      tv.setGrayed(element, false);
    } else if (grayed) {
      tv.setGrayChecked(element, true);
    } else {
      tv.setChecked(element, false);
      tv.setGrayed(element, false);
    }
    setGrayed(tv, provider.getParent(element));
  }