001 /*
002 * Copyright 2012 GWT-Bootstrap
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package com.github.gwtbootstrap.client.ui;
017
018 import com.github.gwtbootstrap.client.ui.base.HasAlternateSize;
019 import com.github.gwtbootstrap.client.ui.base.HasId;
020 import com.github.gwtbootstrap.client.ui.base.HasSize;
021 import com.github.gwtbootstrap.client.ui.base.HasStyle;
022 import com.github.gwtbootstrap.client.ui.base.InlineLabel;
023 import com.github.gwtbootstrap.client.ui.base.IsResponsive;
024 import com.github.gwtbootstrap.client.ui.base.IsSearchQuery;
025 import com.github.gwtbootstrap.client.ui.base.ResponsiveHelper;
026 import com.github.gwtbootstrap.client.ui.base.SearchQueryStyleHelper;
027 import com.github.gwtbootstrap.client.ui.base.SizeHelper;
028 import com.github.gwtbootstrap.client.ui.base.Style;
029 import com.github.gwtbootstrap.client.ui.base.StyleHelper;
030 import com.github.gwtbootstrap.client.ui.constants.AlternateSize;
031 import com.github.gwtbootstrap.client.ui.constants.Constants;
032 import com.github.gwtbootstrap.client.ui.constants.Device;
033 import com.google.gwt.dom.client.Element;
034 import com.google.gwt.i18n.shared.DirectionEstimator;
035 import com.google.gwt.user.client.ui.Label;
036
037
038
039 /**
040 * Uneditable style text input.
041 *
042 * @since 2.0.4.0
043 * @author ohashi keisuke
044 */
045 public class UneditableInput extends InlineLabel implements HasAlternateSize, IsSearchQuery, HasSize, HasId, HasStyle, IsResponsive {
046
047 /**
048 * Creates an empty widget.
049 */
050 public UneditableInput() {
051 super();
052 setStyleName(Constants.UNEDITABLE_INPUT);
053 }
054
055 /**
056 * This constructor may be used by subclasses to explicitly use an existing
057 * element. This element must be either a <div> <span> element.
058 *
059 * @param element
060 * the element to be used
061 */
062 protected UneditableInput(Element element) {
063 super(element);
064 }
065
066 /**
067 * Creates a label with the specified text and direction.
068 *
069 * @param text
070 * the new label's text
071 * @param dir
072 * the text's direction. Note: {@code Direction.DEFAULT} means
073 * direction should be inherited from the widget's parent
074 * element.
075 */
076 public UneditableInput(String text, Direction dir) {
077 super(text, dir);
078 }
079
080 /**
081 * Creates a label with the specified text and a default direction
082 * estimator.
083 *
084 * @param text
085 * the new label's text
086 * @param directionEstimator
087 * A DirectionEstimator object used for automatic direction
088 * adjustment. For convenience,
089 * {@link Label#DEFAULT_DIRECTION_ESTIMATOR} can be used.
090 */
091 public UneditableInput(String text, DirectionEstimator directionEstimator) {
092 super(text, directionEstimator);
093 }
094
095 /**
096 * Creates a widget with the specified text.
097 *
098 * @param text
099 * the new widget's text
100 */
101 public UneditableInput(String text) {
102 super(text);
103 }
104
105 /**
106 * {@inheritDoc}
107 */
108 @Override
109 public void setSearchQuery(boolean searchQuery) {
110 SearchQueryStyleHelper.setSearchQuery(this, searchQuery);
111 }
112
113 /**
114 * {@inheritDoc}
115 */
116 @Override
117 public boolean isSearchQuery() {
118 return SearchQueryStyleHelper.isSearchQuery(this);
119 }
120
121 /**
122 * {@inheritDoc}
123 */
124 @Override
125 public void setAlternateSize(AlternateSize size) {
126 StyleHelper.changeStyle(this, size, AlternateSize.class);
127 }
128
129 /**
130 * {@inheritDoc}
131 */
132 @Override
133 public void setSize(int size) {
134 SizeHelper.setSize(this, size);
135 }
136
137 /**
138 * {@inheritDoc}
139 */
140 @Override
141 public String getId() {
142 return getElement().getId();
143 }
144
145 /**
146 * {@inheritDoc}
147 */
148 @Override
149 public void setId(String id) {
150 getElement().setId(id);
151 }
152
153
154 /**
155 * {@inheritDoc}
156 */
157 @Override
158 public void setShowOn(Device device) {
159 ResponsiveHelper.setShowOn(this, device);
160 }
161
162 /**
163 * {@inheritDoc}
164 */
165 @Override
166 public void setHideOn(Device device) {
167 ResponsiveHelper.setHideOn(this, device);
168
169 }
170
171 /**
172 * {@inheritDoc}
173 */
174 @Override
175 public void setStyle(Style style) {
176 StyleHelper.setStyle(this, style);
177 }
178
179 /**
180 * {@inheritDoc}
181 */
182 @Override
183 public void addStyle(Style style) {
184 StyleHelper.addStyle(this, style);
185 }
186
187 /**
188 * {@inheritDoc}
189 */
190 @Override
191 public void removeStyle(Style style) {
192 StyleHelper.removeStyle(this, style);
193
194 }
195 }