hi John,
no hacks, just using non-implemented "click" method from html
input[checkbox] element:
package com.mycompany.project.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class CHBTest implements EntryPoint, ClickListener {
// chbx
private CheckBox chb;
public void onModuleLoad() {
chb = new CheckBox("label");
// we do have listeners, do we?
chb.addClickListener(this);
// repeat for visual effect
new Timer() {
public void run() {
doClick(chb.getElement().getFirstChildElement());
}
}.scheduleRepeating(1000);
RootPanel.get().add(chb);
}
native void doClick(Element elem)
/*-{
if(elem && elem.click){
elem.click();
}
}-*/;
public void onClick(Widget sender) {
chb.setText(chb.isChecked() ? "checked" : "unchecked");
}
}
see bizarre "getElement()", that's because GWT checkbox consists of 3
widgets (parent +subelements), and actual input[checkbox] element is
subelement,
"click" is implemented in GWT ui button widget but not in other
widgets,
regards,
Peter