Как установить ширину первого столбца в GWT CellBrowser
Существует ошибка, препятствующая настройке ширины первого столбца виджета CellBrowser. Существует также обходной путь, объясненный здесь
http://groups.google.com/group/google-web-toolkit/browse_thread/thread/4fc39b5805833ea2
Очевидно, это работает, но кто-нибудь может объяснить, как создать подкласс CellBrowser, чтобы он работал? Пожалуйста, покажите мне код.
1 ответ
CellBrowser cellBrowser = new CellBrowser(model, null) {
// HACK: workaround for setDefaultColumnWidth not setting the width of the first column!
// SEE: https://groups.google.com/forum/?pli=1#!topic/google-web-toolkit/T8Ob...
public void setDefaultColumnWidth(int width) {
super.setDefaultColumnWidth(width);
SplitLayoutPanel splitPanel = (SplitLayoutPanel) getWidget();
splitPanel.setWidgetSize(splitPanel.getWidget(0), width);
}
};
cellBrowser.setDefaultColumnWidth(300);
- из ветки, на которую ссылается вопрос: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/4fc39b5805833ea2
Если вам нужен повторно используемый класс с этим исправлением (что, вероятно, будет хорошей идеей), достаточно просто преобразовать этот анонимный подкласс в обычный подкласс:
public class FixedCellBrowser<T> extends CellBrowser<T> {
public FixedCellBrowser(TreeViewModel model, T root) {
super(model, root);
}
public void setDefaultColumnWidth(int width) {
super.setDefaultColumnWidth(width);
SplitLayoutPanel splitPanel = (SplitLayoutPanel) getWidget();
splitPanel.setWidgetSize(splitPanel.getWidget(0), width);
}
}
(Примечание: я не пробовал компилировать этот код.)