com.esri.arcgis.controls
Class BaseTool

java.lang.Object
  extended by com.esri.arcgis.controls.BaseCommand
      extended by com.esri.arcgis.controls.BaseTool
All Implemented Interfaces:
ICommand, ITool, Serializable

public class BaseTool
extends BaseCommand
implements ITool

This is a helper class for creating custom tools. It implements the ITool interface and exteds the BaseCommand class. It forces the user to implement the OnCreate method. public class BaseTest extends BaseTool { public BaseTest() { bitmapPath = "icons/identify.bmp"; cursorPath = "icons/identify.cur"; caption = "Identify"; category = "Commands"; message = "Identifies the geographic features or place you click on"; name = "CustomCommands_Identify"; toolTip = "Identify"; enabled = true; } Then this Base test can be used as a tool and added to the ToolBarBean. Here toolbar is the ToolBarBean. toolbar.addItem(new BaseTest(),0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);

See Also:
Serialized Form

Field Summary
protected  String cursorPath
          Specify the location of the cursor file for your tool.
protected  boolean deactivate
          Activate or De-Activate the tool.
protected  boolean m_oncontextmenu
          The context menu.
 
Fields inherited from class com.esri.arcgis.controls.BaseCommand
bitmapPath, caption, category, enabled, helpFile, message, name, toolTip
 
Constructor Summary
BaseTool()
          Creates a new instance of BaseTool
 
Method Summary
 boolean deactivate()
          Causes the tool to no longer be the active tool.
 int getCursor()
          The mouse pointer for this tool.
 int getCursorFromLocation(String filename)
          It return the cursor from the given file location.
 boolean onContextMenu(int param, int param1)
          Context menu event occured at the given xy location.
 void onDblClick()
          Occurs when a mouse button is double clicked when this tool is active.
 void onKeyDown(int param, int param1)
          Occurs when a key on the keyboard is pressed when this tool is active.
 void onKeyUp(int param, int param1)
          Occurs when a key on the keyboard is released when this tool is active.
 void onMouseDown(int param, int param1, int param2, int param3)
          Occurs when a mouse button is pressed when this tool is active.
 void onMouseMove(int param, int param1, int param2, int param3)
          Occurs when the mouse is moved when this tool is active.
 void onMouseUp(int param, int param1, int param2, int param3)
          Occurs when a mouse button is released when this tool is active.
 void refresh(int param)
          Occurs when a screen display in the application is refreshed.
 
Methods inherited from class com.esri.arcgis.controls.BaseCommand
getBitmap, getCaption, getCategory, getHelpContextID, getHelpFile, getMessage, getName, getTooltip, isChecked, isEnabled, onClick, onCreate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cursorPath

protected String cursorPath
Specify the location of the cursor file for your tool. User need not implement the getCursor method if this is correctly specified.


deactivate

protected boolean deactivate
Activate or De-Activate the tool. If deactivate is set to False, the default, you cannot interact with any other tools because this tool cannot be interrupted by another tool.


m_oncontextmenu

protected boolean m_oncontextmenu
The context menu.

Constructor Detail

BaseTool

public BaseTool()
Creates a new instance of BaseTool

Method Detail

onMouseDown

public void onMouseDown(int param,
                        int param1,
                        int param2,
                        int param3)
Occurs when a mouse button is pressed when this tool is active.

Description

button specifies which mouse button is pressed. The button argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the mouse buttons are pressed. The values for button are as follows:

1 Left button
2 Right button
3 Left and Right buttons
4 Middle button
5 Left and Middle buttons
6 Right and Middle buttons
7 All buttons

Shift indicates whether the Shift key, Ctrl key, or Alt key is pressed when the mouse button is pressed. The Shift argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the keys are pressed. The values for Shift are as follows:

0 No key pressed
1 Shift key pressed
2 Ctrl key pressed
3 Shift and Ctrl keys pressed
4 Alt key pressed
5 Shift and Alt keys pressed
6 Ctrl and Atl keys pressed
7 Shift, Ctrl, and Alt keys pressed

X is the X coordinate, in device units, where the mouse button was pressed.

Y is the Y coordinate, in device units, where the mouse button was pressed.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when the left mouse button is pressed when this tool is the active tool in the OnMouseDown method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onMouseDown in interface ITool
Parameters:
button - The button (in)
shift - The shift (in)
x - The x (in)
y - The y (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

refresh

public void refresh(int param)
Occurs when a screen display in the application is refreshed.

Description

hDC is the handle to the display context which just got refreshed in the application.

Remarks

When implementing ITool to create a custom tool, write the code in the Refresh method that performs some action when a screen display in the application is refreshed while this tool is the active tool. When the current screen display in the application is refreshed, the handle to the device context that is associated with that screen display is passed into the Refresh method as an argument.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
refresh in interface ITool
Parameters:
hdc - The hdc (A COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onDblClick

public void onDblClick()
Occurs when a mouse button is double clicked when this tool is active.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when a mouse button is double-clicked when this tool is the active tool in the OnDblClick method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onDblClick in interface ITool
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onKeyUp

public void onKeyUp(int param,
                    int param1)
Occurs when a key on the keyboard is released when this tool is active.

Description

keyCode specifies which key on the keyboard was released.

Shift indicates whether the Shift key, Ctrl key, or Alt key was pressed when the mouse button was pressed. 0 for no keys pressed. 1 for Shift key pressed. 2 for Ctrl key pressed. 4 for Alt key pressed. If both the Shift key and the Ctrl key were pressed, Shift would be 3. If all three keys were pressed, Shift would be 7.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when a key on the keyboard is released when this tool is the active tool in the OnKeyUp method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onKeyUp in interface ITool
Parameters:
keyCode - The keyCode (in)
shift - The shift (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onMouseMove

public void onMouseMove(int param,
                        int param1,
                        int param2,
                        int param3)
Occurs when the mouse is moved when this tool is active.

Description

button specifies which mouse button was pressed while moving the mouse. The button argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the mouse buttons are pressed. The values for button are as follows:

1 Left button
2 Right button
3 Left and Right buttons
4 Middle button
5 Left and Middle buttons
6 Right and Middle buttons
7 All buttons

Shift indicates whether the Shift key, Ctrl key, or Alt key is pressed when the mouse is moved. The Shift argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the keys are pressed. The values for Shift are as follows:

0 No key pressed
1 Shift key pressed
2 Ctrl key pressed
3 Shift and Ctrl keys pressed
4 Alt key pressed
5 Shift and Alt keys pressed
6 Ctrl and Atl keys pressed
7 Shift, Ctrl, and Alt keys pressed


X is the X coordinate, in device units, of the mouse location.

Y is the Y coordinate, in device units, of the mouse location.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when the mouse is moved when this tool is the active tool in the OnMouseMove method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onMouseMove in interface ITool
Parameters:
button - The button (in)
shift - The shift (in)
x - The x (in)
y - The y (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onMouseUp

public void onMouseUp(int param,
                      int param1,
                      int param2,
                      int param3)
Occurs when a mouse button is released when this tool is active.

Description

button specifies which mouse button is released. The button argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the mouse buttons are pressed. The values for button are as follows:

1 Left button
2 Right button
3 Left and Right buttons
4 Middle button
5 Left and Middle buttons
6 Right and Middle buttons
7 All buttons

Shift indicates whether the Shift key, Ctrl key, or Alt key is pressed when the mouse button is released. The Shift argument is a bit field. Some, all, or none of the bits can be set indicating that some, all, or none of the keys are pressed. The values for Shift are as follows:

0 No key pressed
1 Shift key pressed
2 Ctrl key pressed
3 Shift and Ctrl keys pressed
4 Alt key pressed
5 Shift and Alt keys pressed
6 Ctrl and Atl keys pressed
7 Shift, Ctrl, and Alt keys pressed

X is the X coordinate, in device units, where the mouse button was released.

Y is the Y coordinate, in device units, where the mouse button was released.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when a mouse button is released when this tool is the active tool in the OnMouseUp method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onMouseUp in interface ITool
Parameters:
button - The button (in)
shift - The shift (in)
x - The x (in)
y - The y (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deactivate

public boolean deactivate()
Causes the tool to no longer be the active tool.

Remarks

When implementing ITool to create a custom tool, add some logic to the Deactivate method to specify whether this tool can be deactivated. If ITool_Deactivate is set to False, the default, you cannot interact with any other tools because this tool cannot be interrupted by another tool.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
deactivate in interface ITool
Returns:
The complete
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onKeyDown

public void onKeyDown(int param,
                      int param1)
Occurs when a key on the keyboard is pressed when this tool is active.

Description

keyCode specifies which key on the keyboard was pressed.

Shift indicates whether the Shift key, Ctrl key, or Alt key was pressed when the mouse button was pressed. 0 for no keys pressed. 1 for Shift key pressed. 2 for Ctrl key pressed. 4 for Alt key pressed. If both the Shift key and the Ctrl key were pressed, Shift would be 3. If all three keys were pressed, Shift would be 7.

Remarks

When implementing ITool to create a custom tool, write the code that performs the action when a key on the keyboard is pressed when this tool is the active tool in the OnKeyDown method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onKeyDown in interface ITool
Parameters:
keyCode - The keyCode (in)
shift - The shift (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onContextMenu

public boolean onContextMenu(int param,
                             int param1)
Context menu event occured at the given xy location.

Description

X is the X coordinate, in device units, where the right mouse button was pressed.

Y is the Y coordinate, in device units, where the right mouse button was pressed.

Remarks

When implementing ITool to create a custom tool, write code to display a custom context menu when the right mouse button is pressed when this tool is the active tool in the OnContext method.

If your tool displays a custom context menu, it should let the application know that it handled the OnContextMenu event by returning True from the OnContext function. If you don't do this, the standard context menu will be displayed after your custom context menu.

This method does not fire in ArcGIS Engine. A context menu is implemented using IToolbarMenu in ArcGIS Engine as illustrated by the ControlsEditingSketchContextMenu command.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
onContextMenu in interface ITool
Parameters:
x - The x (in)
y - The y (in)
Returns:
The handled
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCursor

public int getCursor()
The mouse pointer for this tool.

Remarks

When implementing ITool to create a custom tool, use the Cursor property to set the mouse pointer of the tool.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCursor in interface ITool
Returns:
The cursor (A COM typedef)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCursorFromLocation

public int getCursorFromLocation(String filename)
It return the cursor from the given file location.

Parameters:
filename -
Returns:
cursor