Package com.ponysdk.ui.server.form2.formfield

Source Code of com.ponysdk.ui.server.form2.formfield.ListBoxFormField

package com.ponysdk.ui.server.form2.formfield;

import java.util.Map;
import java.util.Map.Entry;

import com.ponysdk.ui.server.basic.PListBox;
import com.ponysdk.ui.server.basic.PWidget;
import com.ponysdk.ui.server.form2.dataconverter.DataConverter;

public class ListBoxFormField<T> extends FormField<T> {

    private PListBox listBox;

    public ListBoxFormField() {
        this(new PListBox(), null);
    }

    public ListBoxFormField(final DataConverter<String, T> dataProvider) {
        this(new PListBox(), dataProvider);
    }

    public ListBoxFormField(final PListBox listBox) {
        this(listBox, null);
    }

    public ListBoxFormField(final Map<String, T> datas) {
        this(new PListBox(), null);
        for (final Entry<String, T> entry : datas.entrySet()) {
            listBox.addItem(entry.getKey(), entry.getValue());
        }
    }

    public ListBoxFormField(final PListBox listBox, final DataConverter<String, T> dataProvider) {
        super(dataProvider);
        this.listBox = listBox;
    }

    @SuppressWarnings("unchecked")
    @Override
    public T getValue() {
        if (dataProvider != null) return dataProvider.to(listBox.getSelectedItem());
        return (T) listBox.getSelectedValue();
    }

    @Override
    public void setValue(final T value) {
        if (dataProvider != null) listBox.setSelectedItem(dataProvider.from(value));
        else listBox.setSelectedValue(value);
    }

    @Override
    public PWidget asWidget() {
        return listBox;
    }

    @Override
    protected String getStringValue() {
        return listBox.getSelectedItem();
    }

    @Override
    public void reset0() {
        listBox.setSelectedIndex(-1);
    }

    public PListBox getListBox() {
        return listBox;
    }

}
TOP

Related Classes of com.ponysdk.ui.server.form2.formfield.ListBoxFormField

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.