001package org.gwtbootstrap3.client.ui.base.button;
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.HasBadge;
024import org.gwtbootstrap3.client.ui.base.HasIcon;
025import org.gwtbootstrap3.client.ui.base.HasIconPosition;
026import org.gwtbootstrap3.client.ui.base.mixin.IconTextMixin;
027import org.gwtbootstrap3.client.ui.constants.BadgePosition;
028import org.gwtbootstrap3.client.ui.constants.ButtonType;
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;
034
035import com.google.gwt.user.client.ui.HasText;
036
037/**
038 * Base class for buttons that can contain an icon.
039 *
040 * @author Sven Jacobs
041 * @see org.gwtbootstrap3.client.ui.Icon
042 */
043public abstract class AbstractIconButton extends AbstractButton implements HasText, HasIcon, HasIconPosition, HasBadge {
044
045    IconTextMixin<AbstractIconButton> iconTextMixin = new IconTextMixin<AbstractIconButton>(this);
046
047    protected AbstractIconButton() {
048    }
049
050    protected AbstractIconButton(final ButtonType type) {
051        super(type);
052    }
053
054    @Override
055    public void setText(final String text) {
056        iconTextMixin.setText(text);
057    }
058
059    @Override
060    public String getText() {
061        return iconTextMixin.getText();
062    }
063
064    @Override
065    public void setIcon(final IconType iconType) {
066        iconTextMixin.setIcon(iconType);
067    }
068
069    @Override
070    public IconType getIcon() {
071        return iconTextMixin.getIcon();
072    }
073
074    @Override
075    public void setIconPosition(final IconPosition iconPosition) {
076        iconTextMixin.setIconPosition(iconPosition);
077    }
078
079    @Override
080    public IconPosition getIconPosition() {
081        return iconTextMixin.getIconPosition();
082    }
083
084    @Override
085    public void setIconSize(final IconSize iconSize) {
086        iconTextMixin.setIconSize(iconSize);
087    }
088
089    @Override
090    public IconSize getIconSize() {
091        return iconTextMixin.getIconSize();
092    }
093
094    @Override
095    public void setIconFlip(final IconFlip iconFlip) {
096        iconTextMixin.setIconFlip(iconFlip);
097    }
098
099    @Override
100    public IconFlip getIconFlip() {
101        return iconTextMixin.getIconFlip();
102    }
103
104    @Override
105    public void setIconRotate(final IconRotate iconRotate) {
106        iconTextMixin.setIconRotate(iconRotate);
107    }
108
109    @Override
110    public IconRotate getIconRotate() {
111        return iconTextMixin.getIconRotate();
112    }
113
114    @Override
115    public void setIconBordered(final boolean iconBordered) {
116        iconTextMixin.setIconBordered(iconBordered);
117    }
118
119    @Override
120    public boolean isIconBordered() {
121        return iconTextMixin.isIconBordered();
122    }
123
124    /**
125     * {@inheritDoc}
126     */
127    @Override
128    public void setIconInverse(final boolean iconInverse) {
129        iconTextMixin.setIconInverse(iconInverse);
130    }
131
132    /**
133     * {@inheritDoc}
134     */
135    @Override
136    public boolean isIconInverse() {
137        return iconTextMixin.isIconInverse();
138    }
139
140    @Override
141    public void setIconSpin(final boolean iconSpin) {
142        iconTextMixin.setIconSpin(iconSpin);
143    }
144
145    @Override
146    public boolean isIconSpin() {
147        return iconTextMixin.isIconSpin();
148    }
149
150    @Override
151    public void setIconPulse(boolean iconPulse) {
152        iconTextMixin.setIconPulse(iconPulse);
153    }
154
155    @Override
156    public boolean isIconPulse() {
157        return iconTextMixin.isIconPulse();
158    }
159
160    @Override
161    public void setIconFixedWidth(final boolean iconFixedWidth) {
162        iconTextMixin.setIconFixedWidth(iconFixedWidth);
163    }
164
165    @Override
166    public boolean isIconFixedWidth() {
167        return iconTextMixin.isIconFixedWidth();
168    }
169
170    @Override
171    public void setBadgeText(String badgeText) {
172        iconTextMixin.setBadgeText(badgeText);
173    }
174
175    @Override
176    public String getBadgeText() {
177        return iconTextMixin.getBadgeText();
178    }
179
180    @Override
181    public void setBadgePosition(BadgePosition badgePosition) {
182        iconTextMixin.setBadgePosition(badgePosition);
183    }
184
185    @Override
186    public BadgePosition getBadgePosition() {
187        return iconTextMixin.getBadgePosition();
188    }
189}