001 package org.gwtbootstrap3.client.ui;
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.base.AbstractListItem;
024 import org.gwtbootstrap3.client.ui.constants.Styles;
025 import org.gwtbootstrap3.client.ui.html.Text;
026
027 import com.google.gwt.dom.client.Element;
028 import com.google.gwt.user.client.ui.HasText;
029 import com.google.gwt.user.client.ui.HasWidgets;
030
031 /**
032 * Represents a list item with text contents
033 *
034 * @author Sven Jacobs
035 * @see DropDownMenu
036 * @see NavTabs
037 * @see NavPills
038 * @see Navbar
039 */
040 public class ListItem extends AbstractListItem implements HasWidgets, HasText {
041 private Text text;
042
043 /**
044 * Creates a default list item element
045 */
046 public ListItem() {
047 }
048
049 /**
050 * Creates a default list item element with the desired text
051 *
052 * @param text desired text for list item
053 */
054 public ListItem(final String text) {
055 this();
056 setText(text);
057 }
058
059 /**
060 * {@inheritDoc}
061 */
062 @Override
063 public void setText(final String text) {
064 this.text = new Text(text);
065 add(this.text, (Element) getElement());
066 }
067
068 /**
069 * {@inheritDoc}
070 */
071 @Override
072 public String getText() {
073 return text.getText();
074 }
075
076 /**
077 * {@inheritDoc}
078 */
079 @Override
080 protected void onAttach() {
081 super.onAttach();
082
083 // Adding styles to the list item depending on the parent
084 if (getParent() != null) {
085 if (getParent() instanceof MediaList) {
086 addStyleName(Styles.MEDIA);
087 }
088 }
089 }
090 }