Creating Composite Widgets using GWT

This example describes the Basics for creating composite widgets using GWT.

Creating Composite Widgets using GWT

Creating Composite Widgets using GWT

     

This example describes the Basics for creating composite widgets using GWT. The steps involved in Building the Composite widgets are described below:-

final Label label = new Label("Click the Node to view Tree structure")
Here we are declaring label. Label is a widget that contains text.

private TextBox tb = new TextBox();
Declaring a new TextBox as tb.

private CheckBox cb = new CheckBox();
Declaring a new CheckBox as cb.

VerticalPanel panel = new VerticalPanel()
Creating a Vertical panel named as panel.

panel.add(cb)
This is the method of the panel class for adding checkbox to the panel.

RootPanel.get().add(label1)
By this method we are adding label to the rootpanel.Root panel is a panel to which all other widgets must  be added. it is not created directly.

Compositewidgetex.java

package org.yournamehere.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class Compositewidgetex implements EntryPoint{
private static class OptionalTextBox extends Composite 
  
implements ClickListener {

  
  private TextBox tb = new TextBox();
  private CheckBox cb = new CheckBox();

  public OptionalTextBox(String caption) {

  VerticalPanel panel = new VerticalPanel();
  panel.add(cb);
  panel.add(tb);

  cb.setText(caption);
  cb.setChecked(true);
  cb.addClickListener(this);
  initWidget(panel);
  }

  public void onClick(Widget sender) {
  if (sender == cb) {
  tb.setEnabled(cb.isChecked());
  }
  }
  public void setCaption(String caption) {
  cb.setText(caption);
  }
  public String getCaption() {
  return cb.getText();
  }
  }

  public void onModuleLoad() {
 final Label label = 
  new 
Label("Example to show Composite widgets");
  final Label label1 = 
   new 
Label("   ");
  OptionalTextBox optionalTextBox = 
 
new OptionalTextBox("Check this to enable");
  RootPanel.get().add(label);
  RootPanel.get().add(label1);
  RootPanel.get().add(optionalTextBox);
  
  }
}

Main.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module>
  <inherits name="com.google.gwt.user.User"/>
  <entry-point class="org.yournamehere.client.Compositewidgetex"/>
  
</module>

Output of the program :

   

Download sourcecode