| 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); |
| } |
| } |