de.swm.commons.mobile.client.widgets.ReadOnlyBooleanBox Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swm-mobile Show documentation
Show all versions of swm-mobile Show documentation
GWT Bibliothek fuer Mobile Plattformen der SWM
package de.swm.commons.mobile.client.widgets;
import com.google.gwt.editor.client.IsEditor;
import com.google.gwt.editor.client.LeafValueEditor;
import com.google.gwt.editor.client.adapters.TakesValueEditor;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.user.client.ui.Label;
/**
* Defines a Label with yes no values bound to a boolean editor. Enables to display read only boolen values by editor
* binding.
*
* @author wiese.daniel
* copyright (C) 2012, SWM Services GmbH
*
*/
public class ReadOnlyBooleanBox extends SWMMobileWidgetBase implements IsEditor>,
HasValue, HasText {
// FIXME: Internationalization
private static final String YES_VALUE = "Ja";
private static final String NO_VALUE = "Nein";
private final Label view;
private boolean booleanValue;
private LeafValueEditor editor;
/**
* Default constructor.
*/
public ReadOnlyBooleanBox() {
view = new Label(NO_VALUE);
booleanValue = false;
initWidget(view);
}
@Override
public Boolean getValue() {
return booleanValue;
}
@Override
public void setValue(Boolean value) {
view.setText((value) ? YES_VALUE : NO_VALUE);
booleanValue = value;
}
@Override
public void setValue(Boolean value, boolean fireEvents) {
setValue(value);
}
@Override
public LeafValueEditor asEditor() {
if (editor == null) {
editor = TakesValueEditor.of(this);
}
return editor;
}
@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler handler) {
return view.addHandler(handler, ValueChangeEvent.getType());
}
@Override
public String getText() {
return view.getText();
}
@Override
public void setText(String text) {
if (text.equals(NO_VALUE) || text.equals(YES_VALUE)) {
view.setText(text);
}
}
}