如何直观地禁用SWT.CHECK表中的复选框?
我知道SWT无法单独禁用每个表列的复选框,但我设法捕获每个CHECK事件以立即取消选中该复选框。另外,我将列的文本灰显,表示其禁用状态。即使无法再检查该复选框,它仍会在视觉上保持启用状态。这是困扰我这个解决方法的最后一点。
是否有任何黑客可以删除,禁用,隐藏或透支复选框?我设法在列中自定义绘制图像,但在下显示复选框,因此我驳回了这种方法。
myTable.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
logger.debug("Selection event fired.");
if (event.detail == SWT.CHECK) {
logger.debug("Item was checked.");
if (null != event.item && null != event.item.getData()) {
MyDataModel myModel = (MyDataModel)event.item.getData();
logger.debug("Got MyDataModel object.");
if (myModel.isDone()) {
acknowledgmentsTable.table.setRedraw(false);
((TableItem)event.item).setChecked(false);
logger.debug("Unchecked item.");
// TODO: How to visually disable checkbox?
acknowledgmentsTable.table.setRedraw(true);
}
}
}
}
});