001    package org.gwtbootstrap3.client.ui.base;
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.Anchor;
024    import org.gwtbootstrap3.client.ui.constants.IconFlip;
025    import org.gwtbootstrap3.client.ui.constants.IconPosition;
026    import org.gwtbootstrap3.client.ui.constants.IconRotate;
027    import org.gwtbootstrap3.client.ui.constants.IconSize;
028    import org.gwtbootstrap3.client.ui.constants.IconType;
029    import org.gwtbootstrap3.client.ui.constants.Toggle;
030    
031    import com.google.gwt.dom.client.Element;
032    import com.google.gwt.event.dom.client.ClickHandler;
033    import com.google.gwt.event.dom.client.HasClickHandlers;
034    import com.google.gwt.event.shared.HandlerRegistration;
035    import com.google.gwt.user.client.ui.Focusable;
036    
037    /**
038     * Base class for list items that contain an {@link org.gwtbootstrap3.client.ui.Anchor} link.
039     *
040     * @author Sven Jacobs
041     */
042    public abstract class AbstractAnchorListItem extends AbstractListItem
043            implements HasHref, HasTargetHistoryToken, HasClickHandlers, Focusable, HasDataToggle, HasIcon, HasIconPosition {
044    
045        protected final Anchor anchor;
046    
047        protected AbstractAnchorListItem() {
048            anchor = new Anchor();
049            add(anchor, (Element) getElement());
050        }
051    
052        @Override
053        public void setHref(final String href) {
054            anchor.setHref(href);
055        }
056    
057        @Override
058        public String getHref() {
059            return anchor.getHref();
060        }
061    
062        @Override
063        public void setTargetHistoryToken(final String targetHistoryToken) {
064            anchor.setTargetHistoryToken(targetHistoryToken);
065        }
066    
067        @Override
068        public String getTargetHistoryToken() {
069            return anchor.getTargetHistoryToken();
070        }
071    
072        @Override
073        public HandlerRegistration addClickHandler(final ClickHandler handler) {
074            return anchor.addClickHandler(handler);
075        }
076    
077        @Override
078        public int getTabIndex() {
079            return anchor.getTabIndex();
080        }
081    
082        @Override
083        public void setAccessKey(final char key) {
084            anchor.setAccessKey(key);
085        }
086    
087        @Override
088        public void setFocus(final boolean focused) {
089            anchor.setFocus(focused);
090        }
091    
092        @Override
093        public void setTabIndex(final int index) {
094            anchor.setTabIndex(index);
095        }
096    
097        @Override
098        public void setDataToggle(final Toggle toggle) {
099            anchor.setDataToggle(toggle);
100        }
101    
102        @Override
103        public Toggle getDataToggle() {
104            return anchor.getDataToggle();
105        }
106    
107    
108        @Override
109        public void setIcon(final IconType iconType) {
110            anchor.setIcon(iconType);
111        }
112    
113        @Override
114        public IconType getIcon() {
115            return anchor.getIcon();
116        }
117    
118        @Override
119        public void setIconPosition(final IconPosition iconPosition) {
120            anchor.setIconPosition(iconPosition);
121        }
122    
123        @Override
124        public IconPosition getIconPosition() {
125            return anchor.getIconPosition();
126        }
127    
128        @Override
129        public void setIconSize(final IconSize iconSize) {
130            anchor.setIconSize(iconSize);
131        }
132    
133        @Override
134        public IconSize getIconSize() {
135            return anchor.getIconSize();
136        }
137    
138        @Override
139        public void setIconFlip(final IconFlip iconFlip) {
140            anchor.setIconFlip(iconFlip);
141        }
142    
143        @Override
144        public IconFlip getIconFlip() {
145            return anchor.getIconFlip();
146        }
147    
148        @Override
149        public void setIconRotate(final IconRotate iconRotate) {
150            anchor.setIconRotate(iconRotate);
151        }
152    
153        @Override
154        public IconRotate getIconRotate() {
155            return anchor.getIconRotate();
156        }
157    
158        @Override
159        public void setIconBordered(final boolean iconBordered) {
160            anchor.setIconBordered(iconBordered);
161        }
162    
163        @Override
164        public boolean isIconBordered() {
165            return anchor.isIconBordered();
166        }
167    
168        @Override
169        public void setIconMuted(final boolean iconMuted) {
170            anchor.setIconMuted(iconMuted);
171        }
172    
173        @Override
174        public boolean isIconMuted() {
175            return anchor.isIconMuted();
176        }
177    
178        @Override
179        public void setIconLight(final boolean iconLight) {
180            anchor.setIconLight(iconLight);
181        }
182    
183        @Override
184        public boolean isIconLight() {
185            return anchor.isIconLight();
186        }
187    
188        @Override
189        public void setIconSpin(final boolean iconSpin) {
190            anchor.setIconSpin(iconSpin);
191        }
192    
193        @Override
194        public boolean isIconSpin() {
195            return anchor.isIconSpin();
196        }
197    
198        @Override
199        public void setIconFixedWidth(final boolean iconFixedWidth) {
200            anchor.setIconFixedWidth(iconFixedWidth);
201        }
202    
203        @Override
204        public boolean isIconFixedWidth() {
205            return anchor.isIconFixedWidth();
206        }
207    
208        @Override
209        public void setEnabled(final boolean enabled) {
210            super.setEnabled(enabled);
211            anchor.setEnabled(enabled);
212        }
213    }