Есть ли способ сделать кнопку Google Web Toolkit (GWT) похожей на гиперссылку HTML? - PullRequest
1 голос
/ 14 марта 2010

Я планирую добавить некоторые комментарии к тексту, для этого, во-первых, мне нужен соответствующий текст, чтобы он действовал как кнопка для запуска всплывающего окна, которое, в свою очередь, показывает комментарий. Чтобы это произошло, мне нужно, чтобы соответствующий текст работал как кнопка в GWT, но по некоторым эстетическим причинам я не хочу, чтобы она выглядела как обычная кнопка GWT, вместо этого я предпочитаю, чтобы она выглядела как любая нормальная HTML-гиперссылка, которая при нажатии на нее действует точно так же, как кнопка GWT, которая, в свою очередь, отображает комментарий во всплывающем окне. Так есть ли способ сделать кнопку GWT более похожей на гиперссылку HTML? Или, как минимум, можно ли преобразовать соответствующий текст в формат .JPG для его вставки в кнопку изображения в GWT?

Ответы [ 3 ]

3 голосов
/ 14 марта 2010

То, что вы, вероятно, ищете, это Anchor (хех, это было просто;)). Он реализует интерфейс HasClickHandlers, поэтому вы можете добавить ClickHandler примерно так:

Anchor a = new Anchor("This is some text", false); // Set to true if the text contains HTML tags
a.addClickHandler(new ClickHandler() {
    onClick(ClickEvent event) {
        //Do some stuff
    }
});

Обновление:
Другим решением является использование FocusPanel - преимущество в том, что FocusPanel - это SimplePanel, что означает, что вы можете установить в него другую панель, что облегчит вставку других виджетов GWT в это (в случае, если вы хотите что-то большее, чем просто текст в интерактивной области - конечно, вы можете поместить любой HTML-код в Anchor, но мой способ менее «хакерский» ИМХО).

HorizontalPanel hPanel = new HorizontalPanel();
hPanel.add(new Image("images/img.png"));
hPanel.add(new Label("Some text"));

FocusPanel focusPanel = new FocusPanel(hPanel);
focusPanel.addClickHandler(new ClickHandler() {
    onClick(ClickEvent event) {
        //Event fired when clicked anywhere in the hPanel - meaning the image and label
        //Do some stuff, maybe show a PopupPanel
    }
});

Кстати, если вам нужно всплывающее окно, проверьте виджет PopupPanel.

0 голосов
/ 14 марта 2010

Я бы никогда не работал с GWT, но когда у вас есть что-то на веб-странице, вы можете изменить фасад управления с помощью CSS таким образом, чтобы никто не мог угадать, что вы использовали.

Я предлагаю использовать следующий блок кода CSS и скажите мне, хорошо это для вас или нет

#GWTButtonToLinkConverter
{
backgound-color: Transparent;
border: 0px;
border-collapse: collapse;
color: blue;
text-decoration: underline;
padding: 0px;
margin : 0px;
}
0 голосов
/ 14 марта 2010

Теперь я не очень хорошо знаком с GWT, но, вероятно, способ, которым работает кнопка GWT, заключается в том, что она запускает событие, которое показывает всплывающее окно (на самом деле я совершенно уверен, что именно так это и делается).

Если вы немного покопаетесь в коде кнопки GWT, у вас не должно возникнуть проблем с прикреплением подобного обработчика событий к обычному <a>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...