Вы должны создать свой собственный виджет SuggestBox, после чего вы можете установить для него атрибут placeholder. Например:
public class CustomSuggestBox extends SuggestBox {
private String placeHolderText = "";
public String getPlaceHolderText() {
return placeHolderText;
}
public void setPlaceHolderText(String text) {
placeHolderText = text;
getTextBox().getElement().setAttribute("placeHolder", placeHolderText);
}
}
Итак, вы можете установить это свойство в связывателе пользовательского интерфейса.
<widgets:CustomSuggestBox ui:field="cSuggestBox" placeHolderText="someText" />
PS: работает только в современном браузере. Для правильной реализации этого в старых браузерах, также проверьте стороннюю библиотеку lib wogwt , у нее есть TextBoxWithPlaceholder класс, расширяющий TextBox:
/**
* A text box that displays a placeholder string when empty
*
* <h3>CSS Style Rules</h3>
* <ul class='css'>
* <li>.wogwt-TextBoxWithPlaceholder { primary style }</li>
* <li>.wogwt-TextBoxWithPlaceholder-placeholder { dependent style set when
* the placeholder is displayed }</li>
* </ul>
*/
В этом случае вы можете отправить этот экземпляр TextBoxWithPlaceholder
в конструктор SuggestBox(SuggestOracle oracle, TextBoxBase box)
.