ArcGIS Desktop customizations using add-ins


Summary This topic describes, at a high-level, how a developer can define their customizations for ArcGIS Desktop software (that is, ArcMap, ArcCatalog, ArcGlobe, and ArcScene). If a developer needs to write a custom macro or domain specific functionality, this topic provides an overview of the pieces needed to define that functionality. It also leads a developer into the topics contained within this section of the Java Help system.

In this topic


About the ArcGIS add-in framework

ArcGIS Desktop software provides you with a wide range of functionality to perform a multitude of geographic information system (GIS) based tasks. However, there are many reasons that you might want to add or simplify the existing technology. Some of those reasons might include the following:
  • You want to write a macro for several steps that you do frequently to speed up your workflow or workflows.
  • You want to create domain specific functionality that the software does not come with out-of-the-box.
ArcGIS add-in framework allows you to develop supplemental functionality for accomplishing custom tasks that can interact with various ArcGIS Desktop applications. The topics contained within this section of the Java Help system focuses on the Java developer's experience with the tools needed to create the different customizations.

Advantages of the framework

The add-in framework provides Java developers with the ability to define and create many different customizations that can help support the end user's experiences with ArcGIS Desktop software. The following are some additional reasons why the add-in framework is advantageous for Java developers:
  • The framework implements and hides all of the necessary plumbing code to make customizations for Java developers possible. With the plumbing code hidden, developers can focus on writing the business logic needed to solve their problem.
  • Add-ins are scalable. They are very easy to share once they have been developed and deployed.
  • Add-ins simplify the process of deploying, sharing, and using customizations. For more information, see How to deploy your add-in.
  • Add-ins are easy to install and manage with ArcGIS Desktop software. For more information, see How to use double-click deployment and How to deploy using the Add-In Manager.
  • Add-ins reduce the developers learning curve of the underlying software before extending it.
  • Add-ins can be localized to meet a specific geographical, political, or cultural region language.

Types of add-ins

You can create the following types of add-ins for ArcGIS Desktop software using Java:
  • Button—Simplest form of functionality that executes some business logic when the button is clicked (for example, the Full Extent button in ArcMap).
  • Tool—Requires user interaction with the application's display first, then executes some business logic based on the action (for example, the Zoom In and Zoom Out tools in ArcMap).
  • Combo box—Provides a set of choices from which a selection can be made and acted upon. A combo box can also allow the user to add a value that can be acted upon (for example, the Scale combo box in ArcMap).
  • Toolbar—Container for commands, (that is, buttons or tools), menus, combo boxes, and tool palettes. Toolbars can be floating or docked in the aforementioned desktop applications (for example, the Editor toolbar in ArcMap).
  • Menu—Container for buttons and additional menus (for example, the File, Edit, and View menus in ArcMap).
  • Tool palette—Container for tools (for example, Selection tools palette in ArcMap).
  • Dockable window—Can exist in a floating state or be attached to the main application window (for example, table of contents [TOC] in ArcMap).
  • Application extension—Provides users with additional GIS functionality. Typically, functions that perform a specific task can be grouped into and made available through an extension (for example, 3D Analyst extension, ArcScan, Geostatistical Analyst, and so on).

Creating your customizations

An add-in is a special type of archive file with a .esriaddin file extension. This file is composed of the following:
  • config.xml—An Extensible Markup Language (XML) file defining the static add-in properties (for example, author, version, caption, category, and so on).
  • Java class file or files—The Java class file or files containing your business logic.
  • Resource files—Items, such as images, cursors, data, and so on that can be used to shape your add-in.
ESRI has provided templates for the Eclipse integrated development environment (IDE) that help you develop your customizations. As a starting point on how to create an add-in project for any desktop product, see How to create an add-in project in Eclipse. For more information on how to develop a specific type of add-in for a given project, the following topics guide you through workflows that are available for Java developers:

Using your customizations

The following topics illustrate methods for deploying and using an add-in within ArcGIS Desktop applications:
A key piece in the software development life-cycle is the ability for projects to go from one version to the next. When defining add-ins, you have the capability of versioning your customization to match this piece in the development life-cycle. For more information that examines a workflow you can use to version your add-in work, see How to version your add-in.
When developing customizations, you might need to represent the graphical user interface (GUI) of your add-ins with a specific geographical, political, or cultural region language. For more information on the add-in framework that supports this workflow, see How to localize your add-in.






Development licensing Deployment licensing
ArcView ArcView
ArcEditor ArcEditor
ArcInfo ArcInfo