blob: 1b3e8e7c9c7f6bafdb6eeca7b0268424e9a353e9 [file] [log] [blame]
package autotest.common.ui;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.DomEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
public class ToggleLink extends Composite implements ClickHandler, ToggleControl {
private String activateText;
private String deactivateText;
private Anchor link;
public ToggleLink(String activateText, String deactivateText) {
this.activateText = activateText;
this.deactivateText = deactivateText;
link = new Anchor(activateText);
link.addClickHandler(this);
initWidget(link);
}
public boolean isActive() {
return link.getText().equals(deactivateText);
}
public void setActive(boolean active) {
link.setText(active ? deactivateText : activateText);
}
@Override
public HandlerRegistration addClickHandler(ClickHandler handler) {
return addHandler(handler, ClickEvent.getType());
}
@Override
public void onClick(ClickEvent event) {
setActive(!isActive());
// re-fire the event with this as the source
DomEvent.fireNativeEvent(Event.getCurrentEvent(), this);
}
}