Create Custom Panel Based On Composite : Composite « GWT « Java






Create Custom Panel Based On Composite



package com.java2s.gwt.client;

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

public class GWTClient implements EntryPoint{
  public void onModuleLoad() {
    LicensePanel e = new LicensePanel("License: scroll to enable the check box");
    
    RootPanel.get().add(e);
  }
}

class LicensePanel extends Composite {
    private VerticalPanel vPanel = new VerticalPanel(); 
    final Label text;
    private ScrollPanel sPanel = new ScrollPanel();
    private CheckBox accept = new CheckBox("Accept Terms");

    public LicensePanel(final String licenseText) {
        text = new Label(licenseText); 
        
        sPanel.setAlwaysShowScrollBars(true);
        sPanel.setHeight("100px");
        sPanel.setWidth("200px");        
        sPanel.add(text);   
        
        accept.setChecked(false);
        accept.setEnabled(false); // scroll to enable it
        
        vPanel.add(sPanel);
        vPanel.add(accept);

        initWidget(vPanel);
        
        sPanel.addScrollListener(new ScrollListener() {            
                public void onScroll(Widget sender, int x, int y) {
                    Widget textItem = sPanel.getWidget();
                    if (sPanel.getOffsetHeight() + y >= textItem.getOffsetHeight())
                    {
                        accept.setEnabled(true);
                    }                    
                }
            });        

        //setStyleName("licensePanel");
    }     
    
    public boolean isAccepted() {
        return accept.isChecked();
    }
}
/////////////
.layouts-Label {
  background-color: #C3D9FF;
  font-weight: bold;
  margin-top: 1em;
  padding: 2px 0px 2px 0px;
  width: 100%;
}


           
       








GWT-createCustomPanelBasedOnComposite.zip( 3 k)

Related examples in the same category

1.Extends Composite To Create Custom Component