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));
}