private String lastDownURL;
public void mouseUp(MouseEvent e) {
mouseDown = false;
if (lastStringPrinter != null) {
URLInfo hitUrl = lastStringPrinter.getHitUrl(e.x, e.y);
if (hitUrl != null) {
SWTSkinObjectText_UrlClickedListener[] listeners = listUrlClickedListeners.toArray(new SWTSkinObjectText_UrlClickedListener[0]);
for (SWTSkinObjectText_UrlClickedListener l : listeners) {
if (l.urlClicked(hitUrl)) {
return;
}
}
String url = hitUrl.url;
try {
if (url.startsWith("/")) {
url = ConstantsVuze.getDefaultContentNetwork().getExternalSiteRelativeURL(
url, true);
}
if (url.contains("?")) {
url += "&";
} else {
url += "?";
}
url += "fromWeb=false&os.version="
+ UrlUtils.encode(System.getProperty("os.version"))
+ "&java.version=" + UrlUtils.encode(Constants.JAVA_VERSION);
} catch (Throwable t) {
// ignore
}
Utils.launch(url);
}
}
}
public void mouseDown(MouseEvent e) {
mouseDown = true;
if (lastStringPrinter != null) {
URLInfo hitUrl = lastStringPrinter.getHitUrl(e.x, e.y);
String curURL = hitUrl == null ? "" : hitUrl.url;
if (curURL.equals(lastDownURL)) {
lastDownURL = curURL;
canvas.redraw();
}
}
}
public void mouseDoubleClick(MouseEvent e) {
}
});
canvas.addMouseMoveListener(new MouseMoveListener() {
public void mouseMove(MouseEvent e) {
if (lastStringPrinter != null && lastStringPrinter.hasHitUrl()) {
URLInfo hitUrl = lastStringPrinter.getHitUrl(e.x, e.y);
canvas.setCursor(hitUrl == null ? null
: canvas.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
}
}
});