Изменение содержимого метки в зависимости от размера панели

еще раз у меня есть вопрос. Поскольку я использую Google Web Toolkit (GWT) на работе (вместе с сервлетами Java), в настоящее время я создаю некоторый пользовательский интерфейс с GWT (на Java).

У меня есть некоторые проблемы, хотя. Я использую SplitLayoutPanel, который содержит ScrollPanel слева и еще один справа.

В левой ScrollPanel есть VerticalPanel с несколькими метками, различающимися по ширине. Чего я хочу добиться, так это: если текст метки не помещается в одну строку, он должен отображать как можно больше символов и иметь "..." в конце, если это не так полностью отображается.

Я собираюсь добавить обработчик событий CustomEvent для метки, который можно запускать всякий раз, когда метке необходимо изменить свое содержимое. Однако теперь проблема в том, что мне нужно будет запускать событие всякий раз, когда изменяется размер ScrollPanel или его внутренней VerticalPanel (путем перетаскивания SplitLayoutPanel-Splitter).

Теперь вопрос: можно ли переопределить какое-то событие "onResize" или, по крайней мере, "onMouseMove" внутри панели VerticalPanel, чтобы я мог запускать метод "changeLabelSize()" для каждая метка внутри этой VerticalPanel?

Как бы я поступил? Спасибо всем за ваше время заранее! Пожалуйста, спрашивайте что-нибудь неясное, чтобы я мог это уточнить.

С уважением, Игорь.


person Igor    schedule 02.09.2010    source источник


Ответы (1)


Это можно легко сделать с помощью свойства CSS text-overflow: ellipsis;.

Поддерживается IE7-, Safari и Konqueror.

И его можно эмулировать в Firefox.

person Jason Hall    schedule 02.09.2010
comment
Большое спасибо - это действительно решило одну часть проблемы. Поскольку мне нужно поддерживать только IE8, все в порядке - большое вам спасибо! :). Однако у меня все еще есть другая (незначительная) проблема: SplitLayoutPanel.addWest ожидает виджет и размер. Я хочу, чтобы виджет, который я добавляю с помощью addWest, имел переменный размер. Я не придумал, как это сделать, но я пытаюсь - у вас есть подсказка? Спасибо большое за помощь. - person Igor; 03.09.2010