List of usage examples for com.google.gwt.user.datepicker.client DateBox setValue
public void setValue(Date date, boolean fireEvents)
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; } } }