package ilarkesto.gwt.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.HasHTML;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.impl.HyperlinkImpl;
public class HyperlinkWithoutHistory extends Widget implements HasHTML, HasClickHandlers {
private static HyperlinkImpl impl = GWT.create(HyperlinkImpl.class);
private final Element anchorElem = DOM.createAnchor();
public HyperlinkWithoutHistory() {
this(DOM.createDiv());
}
protected HyperlinkWithoutHistory(Element elem) {
if (elem == null) {
setElement(anchorElem);
} else {
setElement(elem);
DOM.appendChild(getElement(), anchorElem);
}
sinkEvents(Event.ONCLICK);
setStyleName("gwt-Hyperlink");
}
@Deprecated
public HandlerRegistration addClickHandler(ClickHandler handler) {
return addHandler(handler, ClickEvent.getType());
}
public String getHTML() {
return DOM.getInnerHTML(anchorElem);
}
public String getText() {
return DOM.getInnerText(anchorElem);
}
@Override
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
if (DOM.eventGetType(event) == Event.ONCLICK && impl.handleAsClick(event)) {
DOM.eventPreventDefault(event);
}
}
public void setHTML(String html) {
DOM.setInnerHTML(anchorElem, html);
}
public void setText(String text) {
DOM.setInnerText(anchorElem, text);
}
@Override
protected void onEnsureDebugId(String baseID) {
ensureDebugId(anchorElem, "", baseID);
ensureDebugId(getElement(), baseID, "wrapper");
}
}