package com.eas.bound; import com.eas.client.converters.StringValueConverter; import com.eas.core.Utils; import com.eas.ui.HasEmptyText; import com.eas.widgets.WidgetsUtils; import com.eas.widgets.boxes.NullableTextArea; import com.google.gwt.core.client.JavaScriptObject; import com.eas.ui.HasScroll; import com.eas.ui.HorizontalScrollFiller; import com.eas.ui.VerticalScrollFiller; public class ModelTextArea extends ModelDecoratorBox<String> implements HasScroll, HorizontalScrollFiller, VerticalScrollFiller, HasEmptyText { protected String emptyText; public ModelTextArea() { super(new NullableTextArea()); //((NullableTextArea) decorated).getElement().getStyle().setProperty("wordWrap", "normal"); ((NullableTextArea) decorated).getElement().getStyle().setProperty("resize", "none"); } @Override public String convert(Object aValue) { StringValueConverter c = new StringValueConverter(); return c.convert(aValue); } @Override public String getEmptyText() { return emptyText; } @Override public void setEmptyText(String aValue) { emptyText = aValue; WidgetsUtils.applyEmptyText(getElement(), emptyText); } @Override public void setPublished(JavaScriptObject aValue) { super.setPublished(aValue); if (published != null) { publish(this, published); } } protected native static void publish(ModelTextArea aWidget, JavaScriptObject aPublished)/*-{ aPublished.redraw = function(){ aWidget.@com.eas.bound.ModelTextArea::rebind()(); }; Object.defineProperty(aPublished, "emptyText", { get : function() { return aWidget.@com.eas.ui.HasEmptyText::getEmptyText()(); }, set : function(aValue) { aWidget.@com.eas.ui.HasEmptyText::setEmptyText(Ljava/lang/String;)(aValue != null ? '' + aValue : null); } }); Object.defineProperty(aPublished, "value", { get : function() { return aWidget.@com.eas.bound.ModelTextArea::getValue()(); }, set : function(aValue) { if (aValue != null) aWidget.@com.eas.bound.ModelTextArea::setValue(Ljava/lang/String;)('' + aValue); else aWidget.@com.eas.bound.ModelTextArea::setValue(Ljava/lang/String;)(null); } }); Object.defineProperty(aPublished, "text", { get : function() { return aWidget.@com.eas.bound.ModelTextArea::getText()(); }, set : function(aValue) { if (aValue != null) aWidget.@com.eas.bound.ModelTextArea::setValue(Ljava/lang/String;)('' + aValue); else aWidget.@com.eas.bound.ModelTextArea::setValue(Ljava/lang/String;)(null); } }); }-*/; public String getText() { String v = getValue(); return v == null ? "" : v; } @Override public void setText(String text) { setValue(text); } @Override public String getValue() { return super.getValue(); } @Override public void setValue(String value) { super.setValue(value); } @Override public Object getJsValue() { return Utils.toJs(getValue()); } @Override public void setJsValue(Object aValue) throws Exception { Object javaValue = Utils.toJava(aValue); setValue(convert(javaValue), true); } @Override protected void setReadonly(boolean aValue) { ((NullableTextArea)decorated).getElement().setPropertyBoolean("readOnly", aValue); } @Override protected boolean isReadonly() { return ((NullableTextArea)decorated).getElement().getPropertyBoolean("readOnly"); } }