установка текста по умолчанию для GWT ListBox - PullRequest
2 голосов
/ 01 апреля 2011

Я пытаюсь создать ListBox с помощью GWT. Я использую UiBinder для создания поля.

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

Есть ли способ сделать это, используя Uibinder или методы ListBox?

Ответы [ 2 ]

4 голосов
/ 24 апреля 2011

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

Что вы можете сделать, это добавить первый элемент, который будет содержать значение по умолчанию. Вы можете сделать это грамматически, используя addItem в коде или используя:

<g:Listbox> 
    <g:item value="-1">Default text</g:item>
</g:Listbox>

работает с gwt 2.1 +

Значение все еще можно выбрать. Вы можете игнорировать его или добавить атрибут «disabled» со значением «disabled» к элементу option:

listbox.getElement().getFirstChildElement().setAttribute("disabled" ,"disabled" )

надеюсь, это немного поможет :)

0 голосов
/ 29 февраля 2012

Вы также можете использовать средство рендеринга для управления отображением, если выбрано 'Null'.

(Вдохновлено: Как добавить элементы в GWT ListBox в шаблоне Uibinder .ui.xml?)

private class SimpleRenderer implements Renderer<T>{
    private String emptyValue = "Select a value";

    @Override
    public String render(T val) {
        if(val == null) {
            return emptyValue;
        }
        return val.toString();
    }

    @Override
    public void render(T val, Appendable appendable) throws IOException {
        appendable.append(render(val));
    }

    public void setEmptyValue(String emptyValue) {
        this.emptyValue = emptyValue;
    }


}
...