/* * (non-Javadoc) react to check/uncheck events and check/uncheck and gray/ungray children and dependent metrics * * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse .swt.events.SelectionEvent) */ public void widgetSelected(SelectionEvent e) { TableTreeItem item = (TableTreeItem) e.item; if (item != null) { boolean checked = item.getChecked(); if (e.detail == 32) { // check to see if metric can be enabled and undo check if // it can't TableTreeItem parent = item.getParentItem(); if (parent == null) { if (checked) { if (allowEnable(item)) { enableItem(item, true, false); } else { // undo damage done by UI item.setChecked(false); item.setGrayed(true); } } else { enableItem(item, false, false); } } else { // disable and gray a folder if metric is disabled if (!parent.getChecked()) { item.setChecked(false); item.setGrayed(true); } } } addPattern.setEnabled(item.getChecked() && !item.getGrayed()); } else { addPattern.setEnabled(false); } }