001 package org.gwtbootstrap3.client.ui;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 - 2014 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
024 import org.gwtbootstrap3.client.ui.base.HasType;
025 import org.gwtbootstrap3.client.ui.base.helper.StyleHelper;
026 import org.gwtbootstrap3.client.ui.constants.ImageType;
027 import org.gwtbootstrap3.client.ui.constants.Styles;
028
029 /**
030 * An anchor that contains an image as the click action, used in Media Objects
031 *
032 * @author Joshua Godi
033 * @see org.gwtbootstrap3.client.ui.MediaList
034 */
035 public class ImageAnchor extends Anchor implements HasType<ImageType> {
036 private final Image image = new Image();
037
038 /**
039 * Creates the base anchor with the image
040 */
041 public ImageAnchor() {
042 add(image);
043 }
044
045 /**
046 * {@inheritDoc}
047 */
048 @Override
049 public void setType(final ImageType type) {
050 StyleHelper.addEnumStyleName(this, type);
051 }
052
053 /**
054 * {@inheritDoc}
055 */
056 @Override
057 public ImageType getType() {
058 return ImageType.fromStyleName(getStyleName());
059 }
060
061 /**
062 * Set the image as responsive
063 *
064 * @param responsive boolean, whether or not the image has the responsive styles
065 */
066 public void setResponsive(final boolean responsive) {
067 StyleHelper.toggleStyleName(this, responsive, Styles.IMG_RESPONSIVE);
068 }
069
070 /**
071 * Set the image as a media object
072 *
073 * @param asMediaObject boolean, whether or not the image has the media object styles
074 */
075 public void setAsMediaObject(final boolean asMediaObject) {
076 StyleHelper.toggleStyleName(this, asMediaObject, Styles.MEDIA_OBJECT);
077 }
078
079 /**
080 * Set the URL of the image
081 *
082 * @param url String image url
083 */
084 public void setUrl(final String url) {
085 image.setUrl(url);
086 }
087
088 /**
089 * Gets the URL of the image
090 *
091 * @return String image url
092 */
093 public String getUrl() {
094 return image.getUrl();
095 }
096
097 /**
098 * Sets the alt text of the image
099 *
100 * @param alt String image alt text
101 */
102 public void setAlt(final String alt) {
103 image.setAltText(alt);
104 }
105
106 /**
107 * Gets the alt text of the image
108 *
109 * @return String image alt text
110 */
111 public String getAlt() {
112 return image.getAltText();
113 }
114 }