001 package org.gwtbootstrap3.client.ui;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023 import org.gwtbootstrap3.client.ui.base.AbstractInputGroupAddon;
024 import org.gwtbootstrap3.client.ui.base.HasIcon;
025 import org.gwtbootstrap3.client.ui.base.HasIconPosition;
026 import org.gwtbootstrap3.client.ui.base.mixin.IconTextMixin;
027 import org.gwtbootstrap3.client.ui.constants.IconFlip;
028 import org.gwtbootstrap3.client.ui.constants.IconPosition;
029 import org.gwtbootstrap3.client.ui.constants.IconRotate;
030 import org.gwtbootstrap3.client.ui.constants.IconSize;
031 import org.gwtbootstrap3.client.ui.constants.IconType;
032 import org.gwtbootstrap3.client.ui.constants.Styles;
033
034 import com.google.gwt.user.client.ui.HasText;
035
036 /**
037 * Prepends or appends texts to input fields.
038 * <p/>
039 * For prepending/appending {@link Button} see {@link InputGroupButton}.
040 * Needs to be encapsulated in an {@link InputGroup}.
041 * <h3>UiBinder example</h3>
042 * <pre>{@code
043 * <b:InputGroup>
044 * <b:InputGroupAddon>Prepend something</b:InputGroupAddon>
045 * <b:TextBox/>
046 * <b:InputGroupAddon>Append something</b:InputGroupAddon>
047 * </b:InputGroup>
048 * }</pre>
049 * <p/>
050 * Also see Bootstrap <a href="http://getbootstrap.com/components/#input-groups">documentation</a>.
051 *
052 * @author Sven Jacobs
053 * @see InputGroup
054 * @see InputGroupButton
055 */
056 public class InputGroupAddon extends AbstractInputGroupAddon implements HasText, HasIcon, HasIconPosition {
057
058 IconTextMixin<InputGroupAddon> iconTextMixin = new IconTextMixin<InputGroupAddon>(this);
059
060 public InputGroupAddon() {
061 super(Styles.INPUT_GROUP_ADDON);
062 iconTextMixin.addTextWidgetToParent();
063 }
064
065 @Override
066 public void setText(final String text) {
067 iconTextMixin.setText(text);
068 }
069
070 @Override
071 public String getText() {
072 return iconTextMixin.getText();
073 }
074
075 @Override
076 public void setIcon(final IconType iconType) {
077 iconTextMixin.setIcon(iconType);
078 }
079
080 @Override
081 public IconType getIcon() {
082 return iconTextMixin.getIcon();
083 }
084
085 @Override
086 public void setIconPosition(final IconPosition iconPosition) {
087 iconTextMixin.setIconPosition(iconPosition);
088 }
089
090 @Override
091 public IconPosition getIconPosition() {
092 return iconTextMixin.getIconPosition();
093 }
094
095 @Override
096 public void setIconSize(final IconSize iconSize) {
097 iconTextMixin.setIconSize(iconSize);
098 }
099
100 @Override
101 public IconSize getIconSize() {
102 return iconTextMixin.getIconSize();
103 }
104
105 @Override
106 public void setIconFlip(final IconFlip iconFlip) {
107 iconTextMixin.setIconFlip(iconFlip);
108 }
109
110 @Override
111 public IconFlip getIconFlip() {
112 return iconTextMixin.getIconFlip();
113 }
114
115 @Override
116 public void setIconRotate(final IconRotate iconRotate) {
117 iconTextMixin.setIconRotate(iconRotate);
118 }
119
120 @Override
121 public IconRotate getIconRotate() {
122 return iconTextMixin.getIconRotate();
123 }
124
125 @Override
126 public void setIconBordered(final boolean iconBordered) {
127 iconTextMixin.setIconBordered(iconBordered);
128 }
129
130 @Override
131 public boolean isIconBordered() {
132 return iconTextMixin.isIconBordered();
133 }
134
135 @Override
136 public void setIconMuted(final boolean iconMuted) {
137 iconTextMixin.setIconMuted(iconMuted);
138 }
139
140 @Override
141 public boolean isIconMuted() {
142 return iconTextMixin.isIconMuted();
143 }
144
145 @Override
146 public void setIconLight(final boolean iconLight) {
147 iconTextMixin.setIconLight(iconLight);
148 }
149
150 @Override
151 public boolean isIconLight() {
152 return iconTextMixin.isIconLight();
153 }
154
155 @Override
156 public void setIconSpin(final boolean iconSpin) {
157 iconTextMixin.setIconSpin(iconSpin);
158 }
159
160 @Override
161 public boolean isIconSpin() {
162 return iconTextMixin.isIconSpin();
163 }
164
165 @Override
166 public void setIconFixedWidth(final boolean iconFixedWidth) {
167 iconTextMixin.setIconFixedWidth(iconFixedWidth);
168 }
169
170 @Override
171 public boolean isIconFixedWidth() {
172 return iconTextMixin.isIconFixedWidth();
173 }
174 }