001package 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
023import java.util.List;
024
025import org.gwtbootstrap3.client.ui.base.HasDataParent;
026import org.gwtbootstrap3.client.ui.base.HasDataTarget;
027import org.gwtbootstrap3.client.ui.base.HasDataToggle;
028import org.gwtbootstrap3.client.ui.base.mixin.DataParentMixin;
029import org.gwtbootstrap3.client.ui.base.mixin.DataTargetMixin;
030import org.gwtbootstrap3.client.ui.base.mixin.DataToggleMixin;
031import org.gwtbootstrap3.client.ui.constants.Styles;
032import org.gwtbootstrap3.client.ui.constants.Toggle;
033import org.gwtbootstrap3.client.ui.html.Div;
034import org.gwtbootstrap3.client.ui.html.Text;
035
036import com.google.gwt.user.client.ui.HasText;
037import com.google.gwt.user.client.ui.HasWidgets;
038import com.google.gwt.user.client.ui.Widget;
039
040/**
041 * @author Joshua Godi
042 */
043public class PanelHeader extends Div implements HasWidgets, HasText, HasDataToggle, HasDataTarget, HasDataParent {
044    private final DataParentMixin<PanelHeader> parentMixin = new DataParentMixin<PanelHeader>(this);
045    private final DataTargetMixin<PanelHeader> targetMixin = new DataTargetMixin<PanelHeader>(this);
046    private final DataToggleMixin<PanelHeader> toggleMixin = new DataToggleMixin<PanelHeader>(this);
047    private final Text text = new Text();
048
049    public PanelHeader() {
050        setStyleName(Styles.PANEL_HEADING);
051    }
052
053    /**
054     * {@inheritDoc}
055     */
056    @Override
057    public String getText() {
058        return text.getText();
059    }
060
061    /**
062     * {@inheritDoc}
063     */
064    @Override
065    public void setText(final String text) {
066        this.text.setText(text);
067        insert(this.text, 0);
068    }
069
070    @Override
071    public void setDataTargetWidgets(final List<Widget> widgets) {
072        targetMixin.setDataTargetWidgets(widgets);
073    }
074
075    @Override
076    public void setDataTargetWidget(final Widget widget) {
077        targetMixin.setDataTargetWidget(widget);
078    }
079
080    /**
081     * {@inheritDoc}
082     */
083    @Override
084    public void setDataTarget(final String dataTarget) {
085        targetMixin.setDataTarget(dataTarget);
086    }
087
088    /**
089     * {@inheritDoc}
090     */
091    @Override
092    public String getDataTarget() {
093        return targetMixin.getDataTarget();
094    }
095
096    /**
097     * {@inheritDoc}
098     */
099    @Override
100    public void setDataToggle(final Toggle toggle) {
101        toggleMixin.setDataToggle(toggle);
102    }
103
104    /**
105     * {@inheritDoc}
106     */
107    @Override
108    public Toggle getDataToggle() {
109        return toggleMixin.getDataToggle();
110    }
111
112    /**
113     * {@inheritDoc}
114     */
115    @Override
116    public void setDataParent(final String dataParent) {
117        parentMixin.setDataParent(dataParent);
118    }
119
120    /**
121     * {@inheritDoc}
122     */
123    @Override
124    public String getDataParent() {
125        return parentMixin.getDataParent();
126    }
127}