У меня довольно своеобразная проблема. Я использую CellTable из выпуска GWT 2.2. CellTable настроен для фиксированной разметки. У меня есть редактируемый столбец (TextInputCell) в таблице.
В настоящее время я использую метод setColumnWidth в CellTabel, чтобы зафиксировать ширину столбца. Это хорошо работает, но не применяет ограничение ширины для входного текстового элемента . В результате поле ввода редактора переполняется под столбцом, создавая впечатление, что оно вырезано.
Вот пример кода из документации GWT, модифицированный для демонстрации проблемы. Обратите внимание, что поле имени не изменяется и переполняется внутри таблицы.
Открытый класс Trial реализует EntryPoint
{
приватный статический класс
{
private static int nextId = 0;
private final int id;
private final String address;
private Date birthday;
private String name;
private Long number;
public Contact( String name, Date birthday, String address, Long number )
{
nextId++;
this.id = nextId;
this.name = name;
this.birthday = birthday;
this.address = address;
this.number = number;
}
}
private static final List<Contact> CONTACTS = Arrays.asList( new Contact( "John", new Date( 80, 4, 12 ), "123 Fourth Avenue", 0L ), new Contact( "Joe",
new Date( 85, 2, 22 ), "22 Lance Ln", 1L ), new Contact( "George", new Date( 46, 6, 6 ), "1600 Pennsylvania Avenue", 2L ) );
public void onModuleLoad( )
{
final CellTable<Contact> table = new CellTable<Contact>( 10 );
table.setWidth( "60px", true );
ListDataProvider<Contact> listPrvdr;
final TextInputCell nameCell = new TextInputCell( );
Column<Contact, String> nameColumn = new Column<Contact, String>( nameCell )
{
@Override
public String getValue( Contact object )
{
return object.name;
}
};
table.addColumn( nameColumn, "Name" );
table.setColumnWidth( nameColumn, "60px" );
nameColumn.setFieldUpdater( new FieldUpdater<Contact, String>( )
{
public void update( int index, Contact object, String value )
{
object.name = value;
table.redraw( );
}
} );
listPrvdr = new ListDataProvider<Contact>( );
listPrvdr.addDataDisplay( table );
RootPanel.get( ).add( table );
listPrvdr.getList( ).addAll( CONTACTS );
}
}

Что мне не хватает? Как применить ограничение ширины для поля ввода, а не только для столбца хоста?