001package org.gwtbootstrap3.client.ui.gwt; 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.HasContextualBackground; 026import org.gwtbootstrap3.client.ui.base.HasDataSpy; 027import org.gwtbootstrap3.client.ui.base.HasDataTarget; 028import org.gwtbootstrap3.client.ui.base.HasId; 029import org.gwtbootstrap3.client.ui.base.HasInlineStyle; 030import org.gwtbootstrap3.client.ui.base.HasResponsiveness; 031import org.gwtbootstrap3.client.ui.base.helper.StyleHelper; 032import org.gwtbootstrap3.client.ui.base.mixin.DataSpyMixin; 033import org.gwtbootstrap3.client.ui.base.mixin.DataTargetMixin; 034import org.gwtbootstrap3.client.ui.base.mixin.IdMixin; 035import org.gwtbootstrap3.client.ui.constants.ContextualBackground; 036import org.gwtbootstrap3.client.ui.constants.DeviceSize; 037import org.gwtbootstrap3.client.ui.constants.Spy; 038 039import com.google.gwt.dom.client.Style; 040import com.google.gwt.safehtml.shared.SafeHtml; 041import com.google.gwt.user.client.ui.Widget; 042 043/** 044 * @author Sven Jacobs 045 * @author Grant Slender 046 * @author David Buhler 047 */ 048public class HTMLPanel extends com.google.gwt.user.client.ui.HTMLPanel implements HasId, HasDataSpy, HasDataTarget, HasResponsiveness, HasInlineStyle, HasContextualBackground { 049 050 private final DataSpyMixin<HTMLPanel> spyMixin = new DataSpyMixin<HTMLPanel>(this); 051 private final DataTargetMixin<HTMLPanel> targetMixin = new DataTargetMixin<HTMLPanel>(this); 052 private final IdMixin<HTMLPanel> idMixin = new IdMixin<HTMLPanel>(this); 053 054 public HTMLPanel(final String html) { 055 super(html); 056 } 057 058 public HTMLPanel(final SafeHtml safeHtml) { 059 super(safeHtml); 060 } 061 062 public HTMLPanel(final String tag, final String html) { 063 super(tag, html); 064 } 065 066 @Override 067 public void setId(final String id) { 068 idMixin.setId(id); 069 } 070 071 @Override 072 public String getId() { 073 return idMixin.getId(); 074 } 075 076 @Override 077 public void setDataSpy(final Spy spy) { 078 spyMixin.setDataSpy(spy); 079 } 080 081 @Override 082 public Spy getDataSpy() { 083 return spyMixin.getDataSpy(); 084 } 085 086 @Override 087 public void setDataTargetWidgets(final List<Widget> widgets) { 088 targetMixin.setDataTargetWidgets(widgets); 089 } 090 091 @Override 092 public void setDataTargetWidget(final Widget widget) { 093 targetMixin.setDataTargetWidget(widget); 094 } 095 096 @Override 097 public void setDataTarget(final String dataTarget) { 098 targetMixin.setDataTarget(dataTarget); 099 } 100 101 @Override 102 public String getDataTarget() { 103 return targetMixin.getDataTarget(); 104 } 105 106 @Override 107 public void setVisibleOn(final DeviceSize deviceSize) { 108 StyleHelper.setVisibleOn(this, deviceSize); 109 } 110 111 @Override 112 public void setHiddenOn(final DeviceSize deviceSize) { 113 StyleHelper.setHiddenOn(this, deviceSize); 114 } 115 116 @Override 117 public void setMarginTop(final double margin) { 118 getElement().getStyle().setMarginTop(margin, Style.Unit.PX); 119 } 120 121 @Override 122 public void setMarginLeft(final double margin) { 123 getElement().getStyle().setMarginLeft(margin, Style.Unit.PX); 124 } 125 126 @Override 127 public void setMarginRight(final double margin) { 128 getElement().getStyle().setMarginRight(margin, Style.Unit.PX); 129 } 130 131 @Override 132 public void setMarginBottom(final double margin) { 133 getElement().getStyle().setMarginBottom(margin, Style.Unit.PX); 134 } 135 136 @Override 137 public void setPaddingTop(final double padding) { 138 getElement().getStyle().setPaddingTop(padding, Style.Unit.PX); 139 } 140 141 @Override 142 public void setPaddingLeft(final double padding) { 143 getElement().getStyle().setPaddingLeft(padding, Style.Unit.PX); 144 } 145 146 @Override 147 public void setPaddingRight(final double padding) { 148 getElement().getStyle().setPaddingRight(padding, Style.Unit.PX); 149 } 150 151 @Override 152 public void setPaddingBottom(final double padding) { 153 getElement().getStyle().setPaddingBottom(padding, Style.Unit.PX); 154 } 155 156 /** 157 * {@inheritDoc} 158 */ 159 @Override 160 public void setColor(String color) { 161 getElement().getStyle().setColor(color); 162 } 163 164 /** 165 * {@inheritDoc} 166 */ 167 @Override 168 public void setContextualBackground(ContextualBackground contextualBackground) { 169 StyleHelper.addUniqueEnumStyleName(this, ContextualBackground.class, contextualBackground); 170 } 171 172 /** 173 * {@inheritDoc} 174 */ 175 @Override 176 public ContextualBackground getContextualBackground() { 177 return ContextualBackground.fromStyleName(getStyleName()); 178 } 179}