Java/GWT/Composite
Create Custom Panel Based On Composite
<source lang="java">
package com.jexp.gwt.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.ruposite; 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%;
}
</source>
Extends Composite To Create Custom Component
<source lang="java">
package com.jexp.gwt.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.ruposite; public class GWTClient implements EntryPoint {
public void onModuleLoad() { MyComponent com = new MyComponent(); RootPanel.get().add(com); }
} class MyComponent extends Composite {
private Button dialogButton = new Button("Show Dialog"); private Button popupButton = new Button("Show Popup"); public MyComponent(){ VerticalPanel panel = new VerticalPanel(); panel.add(popupButton); panel.add(dialogButton); panel.setSpacing(8); initWidget(panel); }
}
</source>