001package org.gwtbootstrap3.client.ui; 002 003/* 004 * #%L 005 * GwtBootstrap3 006 * %% 007 * Copyright (C) 2016 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 023import org.gwtbootstrap3.client.ui.base.AbstractInputGroupAddon; 024import org.gwtbootstrap3.client.ui.base.HasBadge; 025import org.gwtbootstrap3.client.ui.base.HasIcon; 026import org.gwtbootstrap3.client.ui.base.HasIconPosition; 027import org.gwtbootstrap3.client.ui.base.mixin.IconTextMixin; 028import org.gwtbootstrap3.client.ui.constants.BadgePosition; 029import org.gwtbootstrap3.client.ui.constants.IconFlip; 030import org.gwtbootstrap3.client.ui.constants.IconPosition; 031import org.gwtbootstrap3.client.ui.constants.IconRotate; 032import org.gwtbootstrap3.client.ui.constants.IconSize; 033import org.gwtbootstrap3.client.ui.constants.IconType; 034import org.gwtbootstrap3.client.ui.constants.Styles; 035 036import com.google.gwt.user.client.ui.HasText; 037 038/** 039 * Prepends or appends texts to input fields. 040 * <p/> 041 * For prepending/appending {@link Button} see {@link InputGroupButton}. 042 * Needs to be encapsulated in an {@link InputGroup}. 043 * <h3>UiBinder example</h3> 044 * <pre>{@code 045 * <b:InputGroup> 046 * <b:InputGroupAddon>Prepend something</b:InputGroupAddon> 047 * <b:TextBox/> 048 * <b:InputGroupAddon>Append something</b:InputGroupAddon> 049 * </b:InputGroup> 050 * }</pre> 051 * <p/> 052 * Also see Bootstrap <a href="http://getbootstrap.com/components/#input-groups">documentation</a>. 053 * 054 * @author Sven Jacobs 055 * @see InputGroup 056 * @see InputGroupButton 057 */ 058public class InputGroupAddon extends AbstractInputGroupAddon implements HasText, HasIcon, HasIconPosition, HasBadge { 059 060 IconTextMixin<InputGroupAddon> iconTextMixin = new IconTextMixin<>(this); 061 062 public InputGroupAddon() { 063 super(Styles.INPUT_GROUP_ADDON); 064 iconTextMixin.addTextWidgetToParent(); 065 } 066 067 @Override 068 public void setText(final String text) { 069 iconTextMixin.setText(text); 070 } 071 072 @Override 073 public String getText() { 074 return iconTextMixin.getText(); 075 } 076 077 @Override 078 public void setIcon(final IconType iconType) { 079 iconTextMixin.setIcon(iconType); 080 } 081 082 @Override 083 public IconType getIcon() { 084 return iconTextMixin.getIcon(); 085 } 086 087 @Override 088 public void setIconPosition(final IconPosition iconPosition) { 089 iconTextMixin.setIconPosition(iconPosition); 090 } 091 092 @Override 093 public IconPosition getIconPosition() { 094 return iconTextMixin.getIconPosition(); 095 } 096 097 @Override 098 public void setIconSize(final IconSize iconSize) { 099 iconTextMixin.setIconSize(iconSize); 100 } 101 102 @Override 103 public IconSize getIconSize() { 104 return iconTextMixin.getIconSize(); 105 } 106 107 @Override 108 public void setIconFlip(final IconFlip iconFlip) { 109 iconTextMixin.setIconFlip(iconFlip); 110 } 111 112 @Override 113 public IconFlip getIconFlip() { 114 return iconTextMixin.getIconFlip(); 115 } 116 117 @Override 118 public void setIconRotate(final IconRotate iconRotate) { 119 iconTextMixin.setIconRotate(iconRotate); 120 } 121 122 @Override 123 public IconRotate getIconRotate() { 124 return iconTextMixin.getIconRotate(); 125 } 126 127 @Override 128 public void setIconBordered(final boolean iconBordered) { 129 iconTextMixin.setIconBordered(iconBordered); 130 } 131 132 @Override 133 public boolean isIconBordered() { 134 return iconTextMixin.isIconBordered(); 135 } 136 137 /** {@inheritDoc} */ 138 @Override 139 public void setIconInverse(final boolean iconInverse) { 140 iconTextMixin.setIconInverse(iconInverse); 141 } 142 143 /** {@inheritDoc} */ 144 @Override 145 public boolean isIconInverse() { 146 return iconTextMixin.isIconInverse(); 147 } 148 149 @Override 150 public void setIconSpin(final boolean iconSpin) { 151 iconTextMixin.setIconSpin(iconSpin); 152 } 153 154 @Override 155 public boolean isIconSpin() { 156 return iconTextMixin.isIconSpin(); 157 } 158 159 @Override 160 public void setIconPulse(boolean iconPulse) { 161 iconTextMixin.setIconPulse(iconPulse); 162 } 163 164 @Override 165 public boolean isIconPulse() { 166 return iconTextMixin.isIconPulse(); 167 } 168 169 @Override 170 public void setIconFixedWidth(final boolean iconFixedWidth) { 171 iconTextMixin.setIconFixedWidth(iconFixedWidth); 172 } 173 174 @Override 175 public boolean isIconFixedWidth() { 176 return iconTextMixin.isIconFixedWidth(); 177 } 178 179 @Override 180 public void setBadgeText(String badgeText) { 181 iconTextMixin.setBadgeText(badgeText); 182 } 183 184 @Override 185 public String getBadgeText() { 186 return iconTextMixin.getBadgeText(); 187 } 188 189 @Override 190 public void setBadgePosition(BadgePosition badgePosition) { 191 iconTextMixin.setBadgePosition(badgePosition); 192 } 193 194 @Override 195 public BadgePosition getBadgePosition() { 196 return iconTextMixin.getBadgePosition(); 197 } 198}