ToggleLink.java revision 8a7f36583afe076a7198d1b34fe109aa491dc277
1package autotest.common.ui; 2 3import com.google.gwt.event.dom.client.ClickEvent; 4import com.google.gwt.event.dom.client.ClickHandler; 5import com.google.gwt.event.dom.client.DomEvent; 6import com.google.gwt.event.shared.HandlerRegistration; 7import com.google.gwt.user.client.Event; 8import com.google.gwt.user.client.ui.Anchor; 9import com.google.gwt.user.client.ui.Composite; 10 11public class ToggleLink extends Composite implements ClickHandler, ToggleControl { 12 private String activateText; 13 private String deactivateText; 14 private Anchor link; 15 16 public ToggleLink(String activateText, String deactivateText) { 17 this.activateText = activateText; 18 this.deactivateText = deactivateText; 19 20 link = new Anchor(activateText); 21 link.addClickHandler(this); 22 initWidget(link); 23 } 24 25 public boolean isActive() { 26 return link.getText().equals(deactivateText); 27 } 28 29 public void setActive(boolean active) { 30 link.setText(active ? deactivateText : activateText); 31 } 32 33 @Override 34 public HandlerRegistration addClickHandler(ClickHandler handler) { 35 return addHandler(handler, ClickEvent.getType()); 36 } 37 38 @Override 39 public void onClick(ClickEvent event) { 40 setActive(!isActive()); 41 // re-fire the event with this as the source 42 DomEvent.fireNativeEvent(Event.getCurrentEvent(), this); 43 } 44} 45