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