javax.swing.text.html
Class HTMLEditorKit.LinkController

java.lang.Object
  extended byjava.awt.event.MouseAdapter
      extended byjavax.swing.text.html.HTMLEditorKit.LinkController
All Implemented Interfaces:
EventListener, MouseListener, MouseMotionListener, Serializable
Enclosing class:
HTMLEditorKit

public static class HTMLEditorKit.LinkController
extends MouseAdapter
implements MouseMotionListener, Serializable

Class to watch the associated component and fire hyperlink events on it when appropriate.

See Also:
Serialized Form

Field Summary
private  Position.Bias[] bias
          This is used by viewToModel to avoid allocing a new array each time.
private  Element curElem
           
private  boolean curElemImage
          If true, the current element (curElem) represents an image.
private  int curOffset
          Current offset.
private  String href
           
 
Constructor Summary
HTMLEditorKit.LinkController()
           
 
Method Summary
protected  void activateLink(int pos, JEditorPane editor)
          Calls linkActivated on the associated JEditorPane if the given position represents a link.
(package private)  void activateLink(int pos, JEditorPane html, int x, int y)
          Calls linkActivated on the associated JEditorPane if the given position represents a link.
(package private)  HyperlinkEvent createHyperlinkEvent(JEditorPane html, HTMLDocument hdoc, String href, AttributeSet anchor, Element element)
          Creates and returns a new instance of HyperlinkEvent.
private  boolean doesElementContainLocation(JEditorPane editor, Element e, int offset, int x, int y)
          Returns true if the View representing e contains the location x, y.
(package private)  void fireEvents(JEditorPane editor, HTMLDocument doc, String href, Element lastElem)
           
private  String getMapHREF(JEditorPane html, HTMLDocument hdoc, Element elem, AttributeSet attr, int offset, int x, int y)
          Returns a string anchor if the passed in element has a USEMAP that contains the passed in location.
 void mouseClicked(MouseEvent e)
          Called for a mouse click event.
 void mouseDragged(MouseEvent e)
          Invoked when a mouse button is pressed on a component and then dragged.
 void mouseMoved(MouseEvent e)
          Invoked when the mouse cursor has been moved onto a component but no buttons have been pushed.
 
Methods inherited from class java.awt.event.MouseAdapter
mouseEntered, mouseExited, mousePressed, mouseReleased
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

curElem

private Element curElem

curElemImage

private boolean curElemImage
If true, the current element (curElem) represents an image.


href

private String href

bias

private Position.Bias[] bias
This is used by viewToModel to avoid allocing a new array each time.


curOffset

private int curOffset
Current offset.

Constructor Detail

HTMLEditorKit.LinkController

public HTMLEditorKit.LinkController()
Method Detail

mouseClicked

public void mouseClicked(MouseEvent e)
Called for a mouse click event. If the component is read-only (ie a browser) then the clicked event is used to drive an attempt to follow the reference specified by a link.

Specified by:
mouseClicked in interface MouseListener
Overrides:
mouseClicked in class MouseAdapter
Parameters:
e - the mouse event
See Also:
MouseListener.mouseClicked(java.awt.event.MouseEvent)

mouseDragged

public void mouseDragged(MouseEvent e)
Description copied from interface: MouseMotionListener
Invoked when a mouse button is pressed on a component and then dragged. MOUSE_DRAGGED events will continue to be delivered to the component where the drag originated until the mouse button is released (regardless of whether the mouse position is within the bounds of the component).

Due to platform-dependent Drag&Drop implementations, MOUSE_DRAGGED events may not be delivered during a native Drag&Drop operation.

Specified by:
mouseDragged in interface MouseMotionListener

mouseMoved

public void mouseMoved(MouseEvent e)
Description copied from interface: MouseMotionListener
Invoked when the mouse cursor has been moved onto a component but no buttons have been pushed.

Specified by:
mouseMoved in interface MouseMotionListener

getMapHREF

private String getMapHREF(JEditorPane html,
                          HTMLDocument hdoc,
                          Element elem,
                          AttributeSet attr,
                          int offset,
                          int x,
                          int y)
Returns a string anchor if the passed in element has a USEMAP that contains the passed in location.


doesElementContainLocation

private boolean doesElementContainLocation(JEditorPane editor,
                                           Element e,
                                           int offset,
                                           int x,
                                           int y)
Returns true if the View representing e contains the location x, y. offset gives the offset into the Document to check for.


activateLink

protected void activateLink(int pos,
                            JEditorPane editor)
Calls linkActivated on the associated JEditorPane if the given position represents a link.

This is implemented to forward to the method with the same name, but with the following args both == -1.

Parameters:
pos - the position
editor - the editor pane

activateLink

void activateLink(int pos,
                  JEditorPane html,
                  int x,
                  int y)
Calls linkActivated on the associated JEditorPane if the given position represents a link. If this was the result of a mouse click, x and y will give the location of the mouse, otherwise they will be < 0.

Parameters:
pos - the position
html - the editor pane

createHyperlinkEvent

HyperlinkEvent createHyperlinkEvent(JEditorPane html,
                                    HTMLDocument hdoc,
                                    String href,
                                    AttributeSet anchor,
                                    Element element)
Creates and returns a new instance of HyperlinkEvent. If hdoc is a frame document a HTMLFrameHyperlinkEvent will be created.


fireEvents

void fireEvents(JEditorPane editor,
                HTMLDocument doc,
                String href,
                Element lastElem)