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}