Пользовательское текстовое поле Gwt с всплывающим окном

как создать пользовательское текстовое поле в веб-инструментарии Google (gwt) с функцией всплывающего окна для отображения сообщений об ошибках?

я использую веб-инструментарий Google (gwt) в java на eclipse, и я не вижу никакой функции, обеспечивающей эту функциональность.


person user2559651    schedule 12.08.2013    source источник
comment
Что вы подразумеваете под функцией воздушного шара?   -  person Dilantha    schedule 12.08.2013
comment
под baloon я имею в виду отображение сообщения об ошибке с всплывающим окном (всплывающая подсказка)   -  person user2559651    schedule 12.08.2013
comment
Проверьте это examples.roughian.com/index.htm#Widgets~PopupPanel.   -  person Dilantha    schedule 12.08.2013


Ответы (1)


Вы должны реализовать свой собственный «композит». Чтобы «составить» «воздушную подсказку»/всплывающую подсказку с входными данными вашей формы.

Вот пример ui.xml для текстовой области с использованием Gwt-bootstrap. (Сделать то же самое в простом GWT несложно, если нет, я буду рад преобразовать этот пример).

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui"
    xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">    
<b:WellForm>
        <b:Fieldset>
            <b:ControlGroup>
                <b:Label styleName="field_label" ui:field="label" />
                <b:TextArea ui:field="myWidget"/>
                <b:HelpInline ui:field="errorMessage" visible="false" />                    
            </b:ControlGroup>
        </b:Fieldset>
    </b:WellForm>

Если под «выноской» вы подразумеваете «подсказку», то добавьте mouseOverHandler и mouseOutHandler для отображения/скрытия сообщения об ошибке (HelpInline здесь, но может быть любым виджетом), когда есть одно для отображения.

Если вы удовлетворены этим, вы должны реализовать некоторый механизм наследования, чтобы повторно использовать все вокруг этого тега.

<b:TextArea b:id="textArea" ui:field="textArea"/>

для всех видов виджетов.

Используя композит, вы можете повторно использовать одну строку для всех сообщений об ошибках («выноски» или что-то еще) для всех ваших виджетов ввода и легко переключаться между HelpInline, Label и т. д.

ИЗМЕНИТЬ

Пример кода с простым GWT

 <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
        xmlns:g="urn:import:com.google.gwt.user.client.ui">   
 <g:HorizontalPanel ui:field="widgetContainer">
      <g:Label styleName="field_label" ui:field="label" />
      <g:TextArea ui:field="myWidget"/>
      <g:Label ui:field="errorMessage" visible="false" />
 </g:HorizontalPanel> 

Я предлагаю использовать HorizontalPanel для отображения метки поля (ui:field="label"), самого поля ввода (ui:field="myWidget") и сообщения об ошибке (ui:field="errorMessage") в одной строке, но возможны и другие типы панелей, или вы можете использовать CSS для позиционирования элементов по своему усмотрению.

person otonglet    schedule 12.08.2013
comment
вы можете сделать в простом GWT, как вы упомянули? - person user2559651; 12.08.2013
comment
Конечно. Я отредактировал свой ответ. Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать. В этом примере используется UiBinder. Если вы не привыкли к UiBinder, возможно, вы предпочитаете обычную Java? - person otonglet; 12.08.2013
comment
я не могу этого понять. Можете ли вы рассказать мне процедуру использования плагина javascript, css или jquery. Я хочу создать новое настраиваемое текстовое поле, расширяющее старое с помощью всплывающей подсказки. Мне нужно, когда при наборе текста возникает какая-то ошибка, и когда мы нажимаем кнопку отправки, всплывающая подсказка отображается рядом с текстовым полем, отображающим ошибку - person user2559651; 14.08.2013
comment
Извините, я долго не прикасался к JQuery. Вы можете либо попытаться опубликовать новый вопрос с тегом jquery, либо попытаться объяснить, что вы не понимаете (это материал ui: UiBinder? Логика программирования позади? ...) - person otonglet; 14.08.2013
comment
проблема в том, что я хочу отобразить всплывающую подсказку пузырькового типа, но вы говорите об отображении ярлыка, похожего на материал. - person user2559651; 15.08.2013
comment
Вы можете создать метку (просто ‹span›) в виде пузыря с помощью CSS. - person otonglet; 17.08.2013