package gwt.material.design.client.ui; /* * #%L * GwtMaterial * %% * Copyright (C) 2015 - 2017 GwtMaterialDesign * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import com.google.gwt.dom.client.Document; import com.google.gwt.user.client.ui.Widget; import gwt.material.design.client.base.HasType; import gwt.material.design.client.base.MaterialWidget; import gwt.material.design.client.base.mixin.CssTypeMixin; import gwt.material.design.client.constants.CssName; import gwt.material.design.client.constants.FooterType; import gwt.material.design.client.ui.html.Div; //@formatter:off /** * Footers are a great way to organize a lot of site navigation and information at the end of a page. This is where the user will look once hes finished scrolling through the current page or is looking for additional information about your website. * <h3>UiBinder Usage:</h3> * <p> * <pre> * {@code * <m:MaterialFooter backgroundColor="BLUE"> * <m:MaterialRow> * <m:MaterialColumn grid="s12 m6 l6"> * <m:MaterialTitle fontSize="0.7em" color="WHITE" title="Join The Discussion" description="We provide Gitter Chat rooms in order for GWT Developers discussed and collaborate about GWT Material Design and Phonegap Integration."/> * <m:MaterialButton ui:field="btnChat" text="CHAT" backgroundColor="BLUE_LIGHTEN_2" waves="LIGHT"/> * </m:MaterialColumn> * <m:MaterialColumn grid="s12 m6 l6"> * <m:MaterialTitle fontSize="0.7em" color="WHITE" title="GWT Phonegap" description="We provide Gitter Chat rooms in order for GWT Developers discussed and collaborate about GWT Material Design and Phonegap Integration."/> * <m:MaterialButton ui:field="btnDownloadPhonegap" text="GWT Material APK" backgroundColor="BLUE_LIGHTEN_2" waves="LIGHT"/> * </m:MaterialColumn> * </m:MaterialRow> * * <m:MaterialFooterCopyright backgroundColor="BLUE_DARKEN_2"> * <m:MaterialLabel text=" © 2014 Copyright Text"/> * </m:MaterialFooterCopyright> * </m:MaterialFooter> } * </pre> * </p> * * @author kevzlou7979 * @author Ben Dol * @see <a href="http://gwtmaterialdesign.github.io/gwt-material-demo/#footer">Material Footer</a> */ //@formatter:on public class MaterialFooter extends MaterialWidget implements HasType<FooterType> { private Div container = new Div(); private CssTypeMixin<FooterType, MaterialFooter> typeMixin; public MaterialFooter() { super(Document.get().createElement("footer"), CssName.PAGE_FOOTER); } @Override protected void onLoad() { super.onLoad(); container.setStyleName(CssName.CONTAINER); super.insert(container, 0); } @Override public void add(Widget child) { if (child instanceof MaterialFooterCopyright) { super.add(child); } else { container.add(child); } } @Override public void setType(FooterType type) { getTypeMixin().setType(type); } @Override public FooterType getType() { return getTypeMixin().getType(); } public Div getContainer() { return container; } protected CssTypeMixin<FooterType, MaterialFooter> getTypeMixin() { if (typeMixin == null) { typeMixin = new CssTypeMixin<>(this); } return typeMixin; } }