001 /*
002 * Copyright 2006 Mat Gessel <mat.gessel@gmail.com>
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package asquare.gwt.tk.client.ui;
017
018 import asquare.gwt.tk.client.util.DomUtil;
019
020 import com.google.gwt.user.client.ui.SimplePanel;
021 import com.google.gwt.user.client.ui.Widget;
022
023 /**
024 * A panel which wraps a single widget. This differs from
025 * {@link com.google.gwt.user.client.ui.Composite Composite} in that BorderPanel
026 * wraps the widget's element with its own element.
027 *
028 * <h3>CSS Style Rules</h3>
029 * <ul class='css'>
030 * <li>.tk-BorderPanel { }</li>
031 * </ul>
032 */
033 public class BorderPanel extends SimplePanel
034 {
035 /**
036 * Creates an empty BorderPanel. Call
037 * {@link SimplePanel#setWidget(com.google.gwt.user.client.ui.Widget) setWidget()} to
038 * set the widget.
039 */
040 public BorderPanel()
041 {
042 this(null);
043 }
044
045 /**
046 * Creates an empty BorderPanel with the specified child widget.
047 */
048 public BorderPanel(Widget child)
049 {
050 addStyleName("tk-BorderPanel");
051 if (child != null)
052 {
053 setWidget(child);
054 }
055 }
056
057 /**
058 * Sets a unique id for referencing this specific panel.
059 *
060 * @param id a unique id
061 * @see DomUtil#setId(com.google.gwt.user.client.ui.UIObject, String)
062 */
063 public void setId(String id)
064 {
065 DomUtil.setId(this, id);
066 }
067 }