Package com.company.client.ui.widget

Source Code of com.company.client.ui.widget.TitledPanel

package com.company.client.ui.widget;

import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.Widget;

/**
* Borrowed from Beginning Google Web Toolkit Book
*/
public class TitledPanel extends Composite {

  private final static int TITLE_ROW = 0;
  private final static int CONTENT_ROW = 1;

    private final static String STYLE_NAME = "TitledPanel";
  private final static String TITLE_STYLE_NAME = "TitleText";
  private final static String CONTENT_STYLE_NAME = "Content";
  private final static String TOOLBAR_STYLE_NAME = "Toolbar";
  private final static String TOOL_BUTTON_STYLE_NAME = "ToolButton";
 
  private final Label titleLabel;
  private final Grid grid;
  private final DockPanel title;
  private final HorizontalPanel toolbar;

  public TitledPanel() {
    this("");
  }
 
  public TitledPanel(String titleText) {
    this(titleText, null);
  }

  public TitledPanel(String titleText, Widget content) {
    titleLabel = new Label(titleText);
        titleLabel.setStyleName(TITLE_STYLE_NAME);
    toolbar = new HorizontalPanel();
    toolbar.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
    toolbar.setSpacing(0);
    toolbar.setBorderWidth(0);
    toolbar.setStyleName(TOOLBAR_STYLE_NAME);
   
    title = new DockPanel();
    title.setStyleName(TITLE_STYLE_NAME);
    title.add(titleLabel, DockPanel.CENTER);
    title.setCellVerticalAlignment(titleLabel, DockPanel.ALIGN_MIDDLE);
    title.setCellWidth(titleLabel, "100%");
    title.add(toolbar, DockPanel.EAST);
    title.setWidth("100%");
   
        grid = new Grid(2, 1);
        grid.setBorderWidth(0);
        grid.setCellPadding(0);
        grid.setCellSpacing(0);
        grid.setWidget(TITLE_ROW, 0, title);
        grid.getCellFormatter().setWidth(TITLE_ROW, 0, "100%");
        if (content != null) {
          grid.setWidget(CONTENT_ROW, 0, content);
        }
        grid.getCellFormatter().setWidth(CONTENT_ROW, 0, "100%");
        grid.getCellFormatter().setHeight(CONTENT_ROW, 0, "100%");
        grid.getCellFormatter().setStyleName(CONTENT_ROW, 0, CONTENT_STYLE_NAME);
       
        initWidget(grid);
        setStyleName(STYLE_NAME);
  }
 
  public void setTitleText(String text) {
    titleLabel.setText(text);
  }
 
  public void setContent(Widget content) {
    grid.setWidget(CONTENT_ROW, 0, content);
  }
 
  public void setContentVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant alignment) {
    grid.getCellFormatter().setVerticalAlignment(CONTENT_ROW, 0, alignment);
  }
 
  public void setContentHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant alignment) {
    grid.getCellFormatter().setHorizontalAlignment(CONTENT_ROW, 0, alignment);
  }
 
  public PushButton addToolButton(String text, String title, ClickListener clickListener) {
    PushButton button = new PushButton(text, clickListener);
    if (title != null) {
      button.setTitle(title);
    }
    addToolButton(button);
    return button;
  }
 
  public PushButton addToolButton(Image image, ClickListener clickListener) {
    PushButton button = new PushButton(image, clickListener);
    addToolButton(button);
    return button;
  }
 
  public void addToolButton(PushButton button) {
    button.setStyleName(TOOL_BUTTON_STYLE_NAME);
    toolbar.add(button);
    toolbar.setCellVerticalAlignment(button, HorizontalPanel.ALIGN_MIDDLE);
  }

}

TOP

Related Classes of com.company.client.ui.widget.TitledPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.