В современных браузерах вы можете решить это независимо от GWT. Намного проще и чище. Просто используйте свойство CSS3 resize
и укажите значение overflow
, отличное от значения по умолчанию (visible
).
Обратите внимание, что вы, вероятно, захотите переопределить свойство resize
для дочерних элементов, чтобы они не все наследовали дескрипторы изменения размера.
В моем случае в моем файле .ui.xml
есть что-то подобное:
<g:HTMLPanel addStyleNames="myTableContainer">
<g:ScrollPanel>
<g:FlexTable ui:field="myTable"></g:FlexTable>
</g:ScrollPanel>
</g:HTMLPanel>
И что-то вроде этого в моей таблице стилей (GWT добавляет некоторые дополнительные div, поэтому вам может потребоваться настроить селекторы для работы в вашем случае):
.myTableContainer div {
resize: vertical;
overflow: auto;
}
.myTableContainer div div {
resize: none;
overflow: visible;
}
Это дает моей FlexTable
ручку изменения размера в правом нижнем углу, например:
Пользователи могут перетаскивать ручку вниз, чтобы вертикально изменить размер панели, содержащей мой FlexTable
. Конечно, вместо vertical
вы также можете разрешить изменение размера на horizontal
или both
.
Если вы предпочитаете делать все программно, а не UiBinder, я уверен, что вы можете адаптировать его, просто добавив соответствующие стили к вашим элементам в коде.
Downsides? Не работает в IE / Edge (эй, я сказал современные браузеры ... и CSS3 ), но в большинство других .