GWT: веб-страница с вкладками

Веб-страница с вкладками в последнее время без преувеличения стала одним из доминирующих шаблонов.


В GWT есть специальные классы для того, чтобы быстро такой макет реализовать: TabPanel и TabLayoutPanel.

TabLayout появился на ранних этапах развития GWT и всем, вроде, был хорош, за исключением того, что при реализации вкладок использовались тэги <table>, что в нынешнюю эпоху «дивной верстки» счтается некошерным. Поэтому TabPanel обозван в документации всякими нехорошими словами (типа «quirk» и чуть ли не «deprecated»).

TabLayoutPanel, появившийся в свежих версиях GWT (начиная с 2.0) и призванный прийти на замену TabPanel, формируется уже на чистых div'ах, но на него много жалуются разработчики: высота объекта получается фиксированной и если в отведенное пространство что-то не влезает, то просто подрезается, причем даже без появления полос прокрутки. Может от нас что-то скрывают, но найти корректного решения так и не удалось. Пришлось накидать собственный класс, который, кроме всего прочего, может считывать содержимое вкладок в формате JSON. Это очень удобно для управления контентом.


( Читать дальше )