001package org.gwtbootstrap3.client.ui.base;
002
003/*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 - 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.Anchor;
024import org.gwtbootstrap3.client.ui.constants.BadgePosition;
025import org.gwtbootstrap3.client.ui.constants.IconFlip;
026import org.gwtbootstrap3.client.ui.constants.IconPosition;
027import org.gwtbootstrap3.client.ui.constants.IconRotate;
028import org.gwtbootstrap3.client.ui.constants.IconSize;
029import org.gwtbootstrap3.client.ui.constants.IconType;
030import org.gwtbootstrap3.client.ui.constants.Toggle;
031
032import com.google.gwt.dom.client.Element;
033import com.google.gwt.event.dom.client.ClickEvent;
034import com.google.gwt.event.dom.client.ClickHandler;
035import com.google.gwt.event.dom.client.HasClickHandlers;
036import com.google.gwt.event.shared.HandlerRegistration;
037import com.google.gwt.user.client.ui.Focusable;
038
039/**
040 * Base class for list items that contain an {@link org.gwtbootstrap3.client.ui.Anchor} link.
041 *
042 * @author Sven Jacobs
043 * @author Drew Spencer
044 * @author Steven Jardine
045 */
046public abstract class AbstractAnchorListItem extends AbstractListItem
047        implements HasHref, HasTargetHistoryToken, HasClickHandlers, Focusable, HasDataToggle, HasIcon, HasIconPosition, HasBadge {
048
049    protected final Anchor anchor;
050
051    /**
052     * Constructor.
053     */
054    protected AbstractAnchorListItem() {
055        anchor = new Anchor();
056        anchor.addClickHandler(new ClickHandler() {
057            @Override
058            public void onClick(ClickEvent event) {
059                delegateEvent(AbstractAnchorListItem.this, event);
060            }
061        });
062        add(anchor, (Element) getElement());
063    }
064
065    /** {@inheritDoc} */
066    @Override
067    public HandlerRegistration addClickHandler(final ClickHandler handler) {
068        return anchor.addHandler(handler, ClickEvent.getType());
069    }
070
071    /** {@inheritDoc} */
072    @Override
073    public BadgePosition getBadgePosition() {
074        return anchor.getBadgePosition();
075    }
076
077    /** {@inheritDoc} */
078    @Override
079    public String getBadgeText() {
080        return anchor.getBadgeText();
081    }
082
083    /** {@inheritDoc} */
084    @Override
085    public Toggle getDataToggle() {
086        return anchor.getDataToggle();
087    }
088
089    /** {@inheritDoc} */
090    @Override
091    public String getHref() {
092        return anchor.getHref();
093    }
094
095    /** {@inheritDoc} */
096    @Override
097    public IconType getIcon() {
098        return anchor.getIcon();
099    }
100
101    /** {@inheritDoc} */
102    @Override
103    public IconFlip getIconFlip() {
104        return anchor.getIconFlip();
105    }
106
107    /** {@inheritDoc} */
108    @Override
109    public IconPosition getIconPosition() {
110        return anchor.getIconPosition();
111    }
112
113    /** {@inheritDoc} */
114    @Override
115    public IconRotate getIconRotate() {
116        return anchor.getIconRotate();
117    }
118
119    /** {@inheritDoc} */
120    @Override
121    public IconSize getIconSize() {
122        return anchor.getIconSize();
123    }
124
125    /** {@inheritDoc} */
126    @Override
127    public int getTabIndex() {
128        return anchor.getTabIndex();
129    }
130
131    /** {@inheritDoc} */
132    @Override
133    public String getTargetHistoryToken() {
134        return anchor.getTargetHistoryToken();
135    }
136
137    /** {@inheritDoc} */
138    @Override
139    public boolean isIconBordered() {
140        return anchor.isIconBordered();
141    }
142
143    /** {@inheritDoc} */
144    @Override
145    public boolean isIconFixedWidth() {
146        return anchor.isIconFixedWidth();
147    }
148
149    /** {@inheritDoc} */
150    @Override
151    public boolean isIconInverse() {
152        return anchor.isIconInverse();
153    }
154
155    /** {@inheritDoc} */
156    @Override
157    public boolean isIconPulse() {
158        return anchor.isIconPulse();
159    }
160
161    /** {@inheritDoc} */
162    @Override
163    public boolean isIconSpin() {
164        return anchor.isIconSpin();
165    }
166
167    /** {@inheritDoc} */
168    @Override
169    public void setAccessKey(final char key) {
170        anchor.setAccessKey(key);
171    }
172
173    /** {@inheritDoc} */
174    @Override
175    public void setBadgePosition(BadgePosition badgePosition) {
176        anchor.setBadgePosition(badgePosition);
177    }
178
179    /** {@inheritDoc} */
180    @Override
181    public void setBadgeText(String badgeText) {
182        anchor.setBadgeText(badgeText);
183    }
184
185    /** {@inheritDoc} */
186    @Override
187    public void setDataToggle(final Toggle toggle) {
188        anchor.setDataToggle(toggle);
189    }
190
191    /** {@inheritDoc} */
192    @Override
193    public void setEnabled(final boolean enabled) {
194        super.setEnabled(enabled);
195        anchor.setEnabled(enabled);
196    }
197
198    /** {@inheritDoc} */
199    @Override
200    public void setFocus(final boolean focused) {
201        anchor.setFocus(focused);
202    }
203
204    /** {@inheritDoc} */
205    @Override
206    public void setHref(final String href) {
207        anchor.setHref(href);
208    }
209
210    /** {@inheritDoc} */
211    @Override
212    public void setIcon(final IconType iconType) {
213        anchor.setIcon(iconType);
214    }
215
216    /** {@inheritDoc} */
217    @Override
218    public void setIconBordered(final boolean iconBordered) {
219        anchor.setIconBordered(iconBordered);
220    }
221
222    /** {@inheritDoc} */
223    @Override
224    public void setIconFixedWidth(final boolean iconFixedWidth) {
225        anchor.setIconFixedWidth(iconFixedWidth);
226    }
227
228    /** {@inheritDoc} */
229    @Override
230    public void setIconFlip(final IconFlip iconFlip) {
231        anchor.setIconFlip(iconFlip);
232    }
233
234    /** {@inheritDoc} */
235    @Override
236    public void setIconInverse(final boolean iconInverse) {
237        anchor.setIconInverse(iconInverse);
238    }
239
240    /** {@inheritDoc} */
241    @Override
242    public void setIconPosition(final IconPosition iconPosition) {
243        anchor.setIconPosition(iconPosition);
244    }
245
246    /** {@inheritDoc} */
247    @Override
248    public void setIconPulse(boolean iconPulse) {
249        anchor.setIconPulse(iconPulse);
250    }
251
252    /** {@inheritDoc} */
253    @Override
254    public void setIconRotate(final IconRotate iconRotate) {
255        anchor.setIconRotate(iconRotate);
256    }
257
258    /** {@inheritDoc} */
259    @Override
260    public void setIconSize(final IconSize iconSize) {
261        anchor.setIconSize(iconSize);
262    }
263
264    /** {@inheritDoc} */
265    @Override
266    public void setIconSpin(final boolean iconSpin) {
267        anchor.setIconSpin(iconSpin);
268    }
269
270    /** {@inheritDoc} */
271    @Override
272    public void setTabIndex(final int index) {
273        anchor.setTabIndex(index);
274    }
275
276    /** {@inheritDoc} */
277    @Override
278    public void setTargetHistoryToken(final String targetHistoryToken) {
279        anchor.setTargetHistoryToken(targetHistoryToken);
280    }
281
282}