net.refractions.udig.project.ui.tool
Class AbstractTool

java.lang.Object
  extended by net.refractions.udig.project.ui.tool.AbstractTool
All Implemented Interfaces:
java.util.EventListener, MapMouseListener, MapMouseMotionListener, MapMouseWheelListener, Tool
Direct Known Subclasses:
AbstractModalTool

public abstract class AbstractTool
extends java.lang.Object
implements Tool, MapMouseListener, MapMouseMotionListener, MapMouseWheelListener, java.util.EventListener

The Abstract base class for items. Provides support for enabling and disabling modal items.

Tool developers that extend this class override the event notification methods. This class handles registering the tool with the current map display.

Note: subclasses must have a single public parameterless constructor that calls the super constructor with a number indicating which event they want to listen for.

Example:


  super( MOUSE|MOTION ) indicates that the items will be receive all mouse and mouse motion commands.
 

Version:
$Revision: 1.9 $
Author:
Jesse Eichar
See Also:
Tool, MapMouseListener, MapMouseMotionListener, MapMouseWheelListener, EventListener

Field Summary
protected  IToolContext context
          The items to use for tool actions
static int DRAG_DROP
          Flag indicating that the tool can drag from the Map Editor.
protected  boolean enabled
          Enablement of the tool.
static int MOTION
          Flag indicating the tool is a MapMouseMotionListener
static int MOUSE
          Flag indicating the tool is a MapMouseListener
static int NONE
          Flag indicating that the tool does not listen for events from the ViewportPane
static int WHEEL
          Flag indicating the tool is a MapMouseWheelListener
 
Fields inherited from interface net.refractions.udig.project.ui.tool.Tool
EDIT, EXTENSION_ID, VIEW
 
Constructor Summary
AbstractTool(int targets)
          Assigns renderManager to field and registers as a listener with source.
 
Method Summary
 void addListener(ToolLifecycleListener listener)
          (non-Javadoc)
protected  void deregisterMouseListeners()
          Deregisters this object as a listener.
 void dispose()
          Releases resource, Cursor and image resources possibly.
protected  void fireEvent(ToolLifecycleEvent event)
           
 IToolContext getContext()
          This method does not need to be overridden by subclasses normally.
 java.lang.Object getProperty(java.lang.String key)
          Returns the property of the particular tool implementation.
 IMapEditorSelectionProvider getSelectionProvider()
           
 void init(IConfigurationElement element)
          Permits the tool to perform some initialization.
 boolean isEnabled()
          (non-Javadoc)
protected  boolean isNotifyListeners()
           
 void mouseDoubleClicked(MapMouseEvent event)
          This method may be overridden by subclasses
 void mouseDragged(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseEntered(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseExited(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseHovered(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseMoved(MapMouseEvent e)
          This method may be overridden by subclasses
 void mousePressed(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseReleased(MapMouseEvent e)
          This method may be overridden by subclasses
 void mouseWheelMoved(MapMouseWheelEvent e)
          This method may be overridden by subclasses
protected  void registerMouseListeners()
          Registers this object as a listener.
 void removeListener(ToolLifecycleListener listener)
          (non-Javadoc)
 void setContext(IToolContext tools)
          Called each time an eclipse editor is activated.
 void setEnabled(boolean enabled)
          (non-Javadoc)
protected  void setNotifyListeners(boolean isNotify)
           
 void setProperty(java.lang.String key, java.lang.Object value)
          Sets the tool's property value by key.
 void setSelectionProvider(IMapEditorSelectionProvider selectionProvider)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NONE

public static final int NONE
Flag indicating that the tool does not listen for events from the ViewportPane

See Also:
Constant Field Values

MOUSE

public static final int MOUSE
Flag indicating the tool is a MapMouseListener

See Also:
Constant Field Values

MOTION

public static final int MOTION
Flag indicating the tool is a MapMouseMotionListener

See Also:
Constant Field Values

WHEEL

public static final int WHEEL
Flag indicating the tool is a MapMouseWheelListener

See Also:
Constant Field Values

DRAG_DROP

public static final int DRAG_DROP
Flag indicating that the tool can drag from the Map Editor. (drag in terms of drag-drop)

See Also:
Constant Field Values

context

protected IToolContext context
The items to use for tool actions


enabled

protected boolean enabled
Enablement of the tool.

Constructor Detail

AbstractTool

public AbstractTool(int targets)
Assigns renderManager to field and registers as a listener with source. The target field is used to determine which type of listeners to register as.

Parameters:
targets - Used to determine which listeners to register as. The following choices from the following list can be combined using | and this tool will be registered as both types of listeners:
Method Detail

init

public void init(IConfigurationElement element)
Permits the tool to perform some initialization.

Default implementation does nothing

Parameters:
element - the configuration element that defines the tool extension

registerMouseListeners

protected final void registerMouseListeners()
Registers this object as a listener.

The events this object listens for are indicated by the targets parameter in the constructor. This method is called by setActive() and only needs to be called by client code if setActive is overridden and not called with super().

This method does not need to be overridden by subclasses normally.


deregisterMouseListeners

protected final void deregisterMouseListeners()
Deregisters this object as a listener.

The events this object listens for are indicated by the targets parameter in the constructor. This method is called by setActive() and only needs to be called by client code if setActive is overridden and not called with super().

This method does not need to be overridden by subclasses normally.


setContext

public void setContext(IToolContext tools)
Called each time an eclipse editor is activated. The RenderManager and ViewportPane are those that are associated with the newly actived Eclipse view. Intended to be used if something other just changing the current state happens. if false the tool is set as inactive and deregistered with the component. This method does not need to be overridden by subclasses normally.

Specified by:
setContext in interface Tool
Parameters:
items - The items that the tool can use in its operations
See Also:
IToolContext

getContext

public IToolContext getContext()
This method does not need to be overridden by subclasses normally.

Specified by:
getContext in interface Tool
Returns:
the AbstractContext that a tool can use in its operations.
See Also:
Tool.getContext(), IToolContext

dispose

public void dispose()
Description copied from interface: Tool
Releases resource, Cursor and image resources possibly.

Specified by:
dispose in interface Tool
See Also:
Tool.dispose()

getProperty

public java.lang.Object getProperty(java.lang.String key)
Description copied from interface: Tool
Returns the property of the particular tool implementation.

Specified by:
getProperty in interface Tool
Parameters:
key - the property key.
Returns:
See Also:
net.refractions.udig.project.ui.tool.Tool#getProperty()

isEnabled

public boolean isEnabled()
(non-Javadoc)

Specified by:
isEnabled in interface Tool
Returns:
See Also:
Tool.isEnabled()

setEnabled

public void setEnabled(boolean enabled)
(non-Javadoc)

Specified by:
setEnabled in interface Tool
See Also:
Tool.setEnabled(boolean)

setProperty

public void setProperty(java.lang.String key,
                        java.lang.Object value)
Description copied from interface: Tool
Sets the tool's property value by key.

Specified by:
setProperty in interface Tool
See Also:
net.refractions.udig.project.ui.tool.Tool#setProperty()

getSelectionProvider

public IMapEditorSelectionProvider getSelectionProvider()

setSelectionProvider

public void setSelectionProvider(IMapEditorSelectionProvider selectionProvider)

addListener

public void addListener(ToolLifecycleListener listener)
(non-Javadoc)

Specified by:
addListener in interface Tool
See Also:
Tool.addListener(net.refractions.udig.project.ui.tool.ToolLifecycleListener)

removeListener

public void removeListener(ToolLifecycleListener listener)
(non-Javadoc)

Specified by:
removeListener in interface Tool
See Also:
Tool.removeListener(net.refractions.udig.project.ui.tool.ToolLifecycleListener)

setNotifyListeners

protected void setNotifyListeners(boolean isNotify)

isNotifyListeners

protected boolean isNotifyListeners()
Returns:

fireEvent

protected void fireEvent(ToolLifecycleEvent event)
Parameters:
event -

mouseEntered

public void mouseEntered(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseEntered in interface MapMouseListener
Parameters:
e - the event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseListener#mouseEntered(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent

mouseExited

public void mouseExited(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseExited in interface MapMouseListener
Parameters:
e - the event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseListener#mouseExited(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent

mousePressed

public void mousePressed(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mousePressed in interface MapMouseListener
Parameters:
e - the event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseListener#mousePressed(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent

mouseReleased

public void mouseReleased(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseReleased in interface MapMouseListener
Parameters:
e - the event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseListener#mouseReleased(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent

mouseDragged

public void mouseDragged(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseDragged in interface MapMouseMotionListener
Parameters:
e - The event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseMotionListener#mouseDragged(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent

mouseMoved

public void mouseMoved(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseMoved in interface MapMouseMotionListener
Parameters:
e - The event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseMotionListener#mouseMoved(net.refractions.udig.project.render.displayAdapter.MapMouseEvent)

mouseHovered

public void mouseHovered(MapMouseEvent e)
This method may be overridden by subclasses

Specified by:
mouseHovered in interface MapMouseMotionListener
See Also:
MapMouseMotionListener.mouseHovered(MapMouseEvent)

mouseWheelMoved

public void mouseWheelMoved(MapMouseWheelEvent e)
This method may be overridden by subclasses

Specified by:
mouseWheelMoved in interface MapMouseWheelListener
Parameters:
e - The mouse wheel event.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseWheelListener#mouseWheelMoved(net.refractions.udig.project.render.displayAdapter.MapMouseWheelEvent), MapMouseEvent

mouseDoubleClicked

public void mouseDoubleClicked(MapMouseEvent event)
This method may be overridden by subclasses

Specified by:
mouseDoubleClicked in interface MapMouseListener
Parameters:
event - the event data.
See Also:
net.refractions.udig.project.ui.render.displayAdapter.MapMouseListener#mouseDoubleClicked(net.refractions.udig.project.render.displayAdapter.MapMouseEvent), MapMouseEvent