/** * Returns the object associated with this hyperlink. * * @see #setHref * @return the hyperlink object reference */ public Object getHref() { return getData("href"); //$NON-NLS-1$ }
@Override public void setEnabled (boolean enabled) { boolean needsRedraw = enabled != getEnabled(); super.setEnabled(enabled); if (needsRedraw) redraw(); } }
private void handleMouseUp(Event e) { if (!armed || e.button != 1) return; Point size = getSize(); // Filter out mouse up events outside // the link. This can happen when mouse is // clicked, dragged outside the link, then // released. if (e.x < 0) return; if (e.y < 0) return; if (e.x >= size.x) return; if (e.y >= size.y) return; handleActivate(e); }
addListener(SWT.KeyDown, e -> { if (e.character == '\r') { handleActivate(e); addPaintListener(e -> paint(e)); addListener(SWT.Traverse, e -> { switch (e.detail) { case SWT.TRAVERSE_PAGE_NEXT: case SWT.FocusIn: hasFocus = true; handleEnter(e); break; case SWT.FocusOut: hasFocus = false; handleExit(e); break; case SWT.DefaultSelection: handleActivate(e); break; case SWT.MouseEnter: handleEnter(e); break; case SWT.MouseExit: handleExit(e); break; case SWT.MouseDown: handleMouseDown(e); break;
/** * Called when hyperlink has been activated. Subclasses that override this * method must call 'super'. */ protected void handleActivate(Event e) { // disarm link, back to normal state armed = false; if (listeners == null) return; setCursor(FormsResources.getBusyCursor()); HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkActivated(he); } if (!isDisposed()) { setCursor(FormsResources.getHandCursor()); triggerAccessible(); } }
/** * Called when hyperlink is entered. Subclasses that override this method * must call 'super'. */ protected void handleEnter(Event e) { redraw(); if (listeners == null) return; HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkEntered(he); } }
/** * Paints the control as a reaction to the provided paint event. * * @param e * the paint event */ protected void paint(PaintEvent e) { GC gc = e.gc; Rectangle clientArea = getClientArea(); if (clientArea.width == 0 || clientArea.height == 0) return; paintHyperlink(gc); if (paintFocus && hasFocus) { Rectangle carea = getClientArea(); gc.setForeground(getForeground()); gc.drawFocus(0, 0, carea.width, carea.height); } }
addListener(SWT.KeyDown, new Listener() { @Override public void handleEvent(Event e) { addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { addListener(SWT.Traverse, new Listener() { @Override public void handleEvent(Event e) { addListener(SWT.MouseEnter, listener); addListener(SWT.MouseExit, listener); addListener(SWT.MouseDown, listener); addListener(SWT.MouseUp, listener); addListener(SWT.MouseMove, listener); addListener(SWT.FocusIn, listener); addListener(SWT.FocusOut, listener); setCursor(FormsResources.getHandCursor());
private void handleMouseMove(Event e) { // disarm link if we move out of bounds if (armed) { Point size = getSize(); armed = (e.x >= 0 && e.y >= 0 && e.x < size.x && e.y < size.y); } }
void triggerAccessible() { getAccessible().setFocus(ACC.CHILDID_SELF); }
/** * Called when hyperlink has been activated. Subclasses that override this * method must call 'super'. */ protected void handleActivate(Event e) { // disarm link, back to normal state armed = false; if (listeners == null) return; setCursor(FormsResources.getBusyCursor()); HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkActivated(he); } if (!isDisposed()) { setCursor(FormsResources.getHandCursor()); triggerAccessible(); } }
/** * Called when hyperlink is entered. Subclasses that override this method * must call 'super'. */ protected void handleEnter(Event e) { redraw(); if (listeners == null) return; HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkEntered(he); } }
/** * Paints the control as a reaction to the provided paint event. * * @param e * the paint event */ protected void paint(PaintEvent e) { GC gc = e.gc; Rectangle clientArea = getClientArea(); if (clientArea.width == 0 || clientArea.height == 0) return; paintHyperlink(gc); if (paintFocus && hasFocus) { Rectangle carea = getClientArea(); gc.setForeground(getForeground()); gc.drawFocus(0, 0, carea.width, carea.height); } }
private void handleMouseMove(Event e) { // disarm link if we move out of bounds if (armed) { Point size = getSize(); armed = (e.x >= 0 && e.y >= 0 && e.x < size.x && e.y < size.y); } }
void triggerAccessible() { getAccessible().setFocus(ACC.CHILDID_SELF); }
/** * Called when hyperlink is exited. Subclasses that override this method * must call 'super'. */ protected void handleExit(Event e) { // disarm the link; won't activate on mouseup armed = false; redraw(); if (listeners == null) return; HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkExited(he); } }
@Override public void setEnabled (boolean enabled) { boolean needsRedraw = enabled != getEnabled(); super.setEnabled(enabled); if (needsRedraw) redraw(); } }
private void handleMouseUp(Event e) { if (!armed || e.button != 1) return; Point size = getSize(); // Filter out mouse up events outside // the link. This can happen when mouse is // clicked, dragged outside the link, then // released. if (e.x < 0) return; if (e.y < 0) return; if (e.x >= size.x) return; if (e.y >= size.y) return; handleActivate(e); }
/** * Returns the object associated with this hyperlink. * * @see #setHref * @return the hyperlink object reference */ public Object getHref() { return getData("href"); //$NON-NLS-1$ }
/** * Called when hyperlink is exited. Subclasses that override this method * must call 'super'. */ protected void handleExit(Event e) { // disarm the link; won't activate on mouseup armed = false; redraw(); if (listeners == null) return; HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(), e.stateMask); for (IHyperlinkListener listener : listeners) { listener.linkExited(he); } }