Example usage for com.google.gwt.user.datepicker.client DateBox setValue

List of usage examples for com.google.gwt.user.datepicker.client DateBox setValue

Introduction

In this page you can find the example usage for com.google.gwt.user.datepicker.client DateBox setValue.

Prototype

public void setValue(Date date, boolean fireEvents) 

Source Link

Usage

From source file:org.bonitasoft.forms.client.view.widget.FormFieldWidget.java

License:Open Source License

/**
 * Set the value of the widget/*from  w w w.  jav a  2s  .c  o m*/
 *
 * @param fieldValue
 */
public void setValue(final FormFieldValue fieldValue) {
    if (fieldValue.getValue() != null) {
        Collection<String> values = null;
        boolean fireEvents = true;
        switch (widgetType) {
        case TEXTBOX:
            final TextBox textBox = (TextBox) fieldWidget;
            if (SupportedFieldTypes.JAVA_DATE_CLASSNAME.equals(fieldValue.getValueType())) {
                textBox.setValue(getDateAsText(fieldValue), fireEvents);
            } else {
                textBox.setValue(getStringValue(fieldValue), fireEvents);
            }
            break;
        case TEXTAREA:
            final TextArea textArea = (TextArea) fieldWidget;
            if (SupportedFieldTypes.JAVA_DATE_CLASSNAME.equals(fieldValue.getValueType())) {
                textArea.setValue(getDateAsText(fieldValue), fireEvents);
            } else {
                textArea.setValue(getStringValue(fieldValue), fireEvents);
            }
            break;
        case RICH_TEXTAREA:
            final RichTextWidget richTextWidget = (RichTextWidget) fieldWidget;
            if (SupportedFieldTypes.JAVA_DATE_CLASSNAME.equals(fieldValue.getValueType())) {
                richTextWidget.setValue(getDateAsText(fieldValue));
            } else {
                richTextWidget.setValue(getStringValue(fieldValue));
            }
            break;
        case TEXT:
            final HTML text = (HTML) fieldWidget;
            if (text.getHTML() != null && text.getHTML().equals(fieldValue.getValue())
                    || fieldValue.getValue() != null && fieldValue.getValue().equals(text.getHTML())) {
                fireEvents = false;
            }
            if (SupportedFieldTypes.JAVA_DATE_CLASSNAME.equals(fieldValue.getValueType())) {
                text.setText(getDateAsText(fieldValue));
            } else {
                text.setHTML(getStringValue(fieldValue));
            }
            if (fireEvents) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), text);
            }
            break;
        case PASSWORD:
            final PasswordTextBox passwordTextBox = (PasswordTextBox) fieldWidget;
            passwordTextBox.setValue(getStringValue(fieldValue), fireEvents);
            break;
        case CHECKBOX:
            final CheckBox checkBox = (CheckBox) fieldWidget;
            try {
                checkBox.setValue((Boolean) fieldValue.getValue(), fireEvents);
            } catch (final Exception e) {
                checkBox.setValue(false, fireEvents);
                Window.alert("initial value for checkbox " + widgetId + " should be a Boolean.");
            }
            break;
        case RADIOBUTTON_GROUP:
            final RadioButtonGroupWidget radioButtonGroupWidget = (RadioButtonGroupWidget) fieldWidget;
            radioButtonGroupWidget.setValue(getStringValue(fieldValue), fireEvents);
            break;
        case LISTBOX_SIMPLE:
            final ListBox listBox = (ListBox) fieldWidget;
            final int index = listBox.getSelectedIndex();
            if (index < 0) {
                fireEvents = false;
            } else {
                if (listBox.getValue(index).equals(getStringValue(fieldValue))) {
                    fireEvents = false;
                }
            }
            for (int i = 0; i < listBox.getItemCount(); i++) {
                if (listBox.getItemText(i).equals(getStringValue(fieldValue))) {
                    listBox.setItemSelected(i, true);
                    break;
                }
            }
            if (fireEvents) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), listBox);
            }
            break;
        case LISTBOX_MULTIPLE:
            final ListBox listBoxMulti = (ListBox) fieldWidget;
            values = getStringValues(fieldValue);
            boolean valueChanged = false;
            for (int i = 0; i < listBoxMulti.getItemCount(); i++) {
                if (values != null && values.contains(listBoxMulti.getItemText(i))) {
                    if (!listBoxMulti.isItemSelected(i)) {
                        valueChanged = true;
                        listBoxMulti.setItemSelected(i, true);
                    }
                } else {
                    if (listBoxMulti.isItemSelected(i)) {
                        valueChanged = true;
                        listBoxMulti.setItemSelected(i, false);
                    }
                }
            }
            if (fireEvents && valueChanged) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), listBoxMulti);
            }
            break;
        case SUGGESTBOX:
            final SuggestBox suggestBox = (SuggestBox) fieldWidget;
            final String stringValue = getStringValue(fieldValue);
            String labelValue = null;
            for (final Entry<String, String> suggestionEntry : suggestionsMap.entrySet()) {
                if (suggestionEntry.getValue() != null && suggestionEntry.getValue().equals(stringValue)) {
                    labelValue = suggestionEntry.getKey();
                }
            }
            if (labelValue != null) {
                suggestBox.setValue(labelValue, fireEvents);
            } else {
                suggestBox.setValue(stringValue, fireEvents);
            }
            break;
        case SUGGESTBOX_ASYNC:
            final AsyncSuggestBoxWidget formAsyncSuggestBoxWidget = (AsyncSuggestBoxWidget) fieldWidget;
            formAsyncSuggestBoxWidget.setValue(getStringValue(fieldValue), fireEvents);
            break;
        case CHECKBOX_GROUP:
            final CheckboxGroupWidget checkboxGroupWidget = (CheckboxGroupWidget) fieldWidget;
            values = getStringValues(fieldValue);
            checkboxGroupWidget.setValue(values, fireEvents);
            break;
        case DATE:
            final DateBox dateBox = (DateBox) fieldWidget;
            try {
                dateBox.setValue((Date) fieldValue.getValue(), fireEvents);
            } catch (final Exception e) {
                dateBox.setValue(null, fireEvents);
                Window.alert("initial value for date " + widgetId + " should be a Date.");
            }
            break;
        case DURATION:
            final DurationWidget durationWidget = (DurationWidget) fieldWidget;
            Long duration = null;
            try {
                duration = (Long) fieldValue.getValue();
            } catch (final Exception e) {
                duration = 0L;
                Window.alert("The initial value for duration widget " + widgetId + " should be a Long.");
            }
            durationWidget.setValue(duration, fireEvents);
            break;
        case IMAGE:
            final ImageWidget image = (ImageWidget) fieldWidget;
            image.setValue(fieldValue.getDocumentId(), getStringValue(fieldValue), fireEvents);
            break;
        case TABLE:
            final TableWidget table = (TableWidget) fieldWidget;
            table.setValue(getTableValue(fieldValue), fireEvents);
            if (fireEvents) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), table);
            }
            break;
        case EDITABLE_GRID:
            final EditableGridWidget grid = (EditableGridWidget) fieldWidget;
            grid.setValue(getGridValue(fieldValue));
            if (fireEvents) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), grid);
            }
            break;
        case HIDDEN:
            final Hidden hidden = (Hidden) fieldWidget;
            if (hidden.getValue() != null && hidden.getValue().equals(fieldValue.getValue())
                    || fieldValue.getValue() != null && fieldValue.getValue().equals(hidden.getValue())) {
                fireEvents = false;
            }
            hidden.setValue(getStringValue(fieldValue));
            if (fireEvents) {
                DomEvent.fireNativeEvent(Document.get().createChangeEvent(), hidden);
            }
            break;
        default:
            Window.alert("The modification of the value of a " + widgetType + " widget is not supported.");
            break;
        }
    }
}