gpt4 book ai didi

gwt - 禁用 CellTable 中的 CheckboxCell

转载 作者:行者123 更新时间:2023-12-02 11:30:29 26 4
gpt4 key购买 nike

我有一个 GWT CellTable<MyType> 。该表的行应显示 CheckBox 。这个CheckBox应根据 MyType 中的 getter 来选中或取消选中,但应该禁用它,以便用户无法单击它。有人知道如何实现吗?

一些代码片段:

Column<MyType, Boolean> checkboxColumn = new Column<MyType, Boolean>(new CheckboxCell()) {
@Override
public Boolean getValue(MyType object) {
return object.isItTrue();
}
};
CellTable<MyType> cellTable = new CellTable<MyType>();
cellTable.addColumn(checkboxColumn, "Header title");

最佳答案

CheckboxCell不支持此功能,但您可以制作自己的单元来支持此功能。未经测试的代码(大部分复制自CheckboxCell代码,版权所有Google(请参阅CheckboxCell许可证源))如下!重要的部分是渲染代码。您的新单元格将位于 Column<MyType, MyType> 中.

public class DisableableCheckboxCell extends AbstractEditableCell<MyType> {

/**
* An html string representation of a checked input box.
*/
private static final SafeHtml INPUT_CHECKED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\" checked/>");

/**
* An html string representation of an unchecked input box.
*/
private static final SafeHtml INPUT_UNCHECKED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\"/>");

private static final SafeHtml INPUT_CHECKED_DISABLED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\" checked disabled=\"disabled\"/>");

private static final SafeHtml INPUT_UNCHECKED_DISABLED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\" disabled=\"disabled\"/>");

/** You'd copy the rest of the code from CheckboxCell, or implement the other required functions yourself **/

@Override
public void render(Context context, MyType value, SafeHtmlBuilder sb) {
// Get the view data.
Object key = context.getKey();
MyType viewData = getViewData(key);
if (viewData != null && viewData.equals(value)) {
clearViewData(key);
viewData = null;
}

MyType relevantValue = viewData != null ? viewData : value;
boolean checked = relevantValue.shouldBeChecked();
boolean enabled = relevantValue.shouldBeEnabled();

if (checked && !enabled)) {
sb.append(INPUT_CHECKED_DISABLED);
} else if (!checked && !enabled) {
sb.append(INPUT_UNCHECKED_DISABLED);
} else if (checked && enabled) {
sb.append(INPUT_CHECKED);
} else if (!checked && enabled) {
sb.append(INPUT_UNCHECKED);
}
}

关于gwt - 禁用 CellTable 中的 CheckboxCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com