我将 CellTable 与密码作为一列。我希望密码列是可编辑的。
我的代码如下
public class EditPasswordTextCell extends EditTextCell {
@Override
protected void edit(Context context, Element parent, String value) {
setValue(context, parent, value);
InputElement input = getInputElement(parent);
input.setAttribute("type", "password"); //$NON-NLS-1$ //$NON-NLS-2$
input.focus();
input.select();
}
}
单击单元格时会弹出一个密码框。但完成编辑后,列中显示的值是纯文本。然后我决定重写渲染器方法。但是 EditTextCell 类中的大多数方法都是私有的,所以我最终覆盖了
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
value = "******"; //$NON-NLS-1$
super.render(context, value, sb);
}
上面的代码适用于第一次渲染,而不适用于后续渲染。
现在问题出现了,我应该从 EditTextCell 还是 AbstractEditableCell 扩展?