如何在字段编辑时设置文本框的宽度?
EditTextCell febCell = new EditTextCell();
Column<DTO, String> febColumn = new Column<DTO, String>(febCell){
@Override
public String getValue(DTO object) {
return (String.valueOf(object.getFeb()));
}
};
febColumn.setFieldUpdater(new FieldUpdater<DTO, String>() {
public void update(int index, DTO object, String value) {
System.out.println("index="+index+" resourceId="+object.getId()+" feb="+value);
}
});
febColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LOCALE_END);
cellTable.addColumn(febColumn, "Feb");
cellTable.setColumnWidth(febColumn, 3, Unit.PCT);
Run Code Online (Sandbox Code Playgroud)
一切都运行良好,但是当我点击可编辑字段时,会出现一个非常大的文本框.那么,如何自定义此小部件以编辑数据?
如果我在PX中设置宽度而不是像PCT那样
cellTable.setColumnWidth(febColumn, 25, Unit.PX);
Run Code Online (Sandbox Code Playgroud)
编辑时单元格不会爆炸,但内部文本框仍然具有相同的长宽度,并且长字符串值隐藏在右侧后面.
好.可能我需要为每种类型的EditTextCell重新发明轮子:
MyEditTextCell extends AbstractEditableCell<String, MyEditTextCell.ViewData> ...
interface MyTemplate extends SafeHtmlTemplates {
@Template("<input type=\"text\" value=\"{0}\" tabindex=\"-1\" size=\"{1}\" maxlength=\"{1}\" style=\"{2}\"></input>")
SafeHtml input(String value, Integer maxLength, String style);
}
... …Run Code Online (Sandbox Code Playgroud)