/* * Copyright 2009 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.user.client.ui; import com.google.gwt.dom.client.Element; import com.google.gwt.text.shared.testing.PassthroughParser; import com.google.gwt.text.shared.testing.PassthroughRenderer; /** * Abstract base class for most text entry widgets. * * <p> * The names of the static members of {@link TextBoxBase}, as well as simple * alignment names (<code>left</code>, <code>center</code>, <code>right</code>, * <code>justify</code>), can be used as values for a <code>textAlignment</code> * attribute. * <p> * For example, * * <pre> * <g:TextBox textAlignment='ALIGN_RIGHT'/> * <g:TextBox textAlignment='right'/> * </pre> */ public class TextBoxBase extends ValueBoxBase<String> implements SourcesChangeEvents { /** * Legacy wrapper for {@link ValueBoxBase.TextAlignment}, soon to be deprecated. * @deprecated use {@link #setAlignment(ValueBoxBase.TextAlignment)} */ @Deprecated public static class TextAlignConstant { private TextAlignment value; private TextAlignConstant(TextAlignment value) { this.value = value; } TextAlignment getTextAlignString() { return value; } } /** * Center the text. */ public static final TextAlignConstant ALIGN_CENTER = new TextAlignConstant( TextAlignment.CENTER); /** * Justify the text. */ public static final TextAlignConstant ALIGN_JUSTIFY = new TextAlignConstant( TextAlignment.JUSTIFY); /** * Align the text to the left edge. */ public static final TextAlignConstant ALIGN_LEFT = new TextAlignConstant( TextAlignment.LEFT); /** * Align the text to the right. */ public static final TextAlignConstant ALIGN_RIGHT = new TextAlignConstant( TextAlignment.RIGHT); /** * Creates a text box that wraps the given browser element handle. This is * only used by subclasses. * * @param elem the browser element to wrap */ protected TextBoxBase(Element elem) { super(elem, PassthroughRenderer.instance(), PassthroughParser.instance()); } /** * @deprecated Use {@link #addChangeHandler} instead */ @Deprecated public void addChangeListener(ChangeListener listener) { addChangeHandler(new ListenerWrapper.WrappedChangeListener(listener)); } /** * Overridden to return "" from an empty text box. */ @Override public String getValue() { String raw = super.getValue(); return raw == null ? "" : raw; } /** * Legacy wrapper for {@link #setAlignment(TextAlignment)}. * * @deprecated use {@link #setAlignment(TextAlignment)} */ @Deprecated public void setTextAlignment(TextAlignConstant align) { setAlignment(align.value); } }