com.esri.arcgis.system
Class IExtensionConfigProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.system.IExtensionConfigProxy
All Implemented Interfaces:
IExtensionConfig, Externalizable, Serializable

public class IExtensionConfigProxy
extends com.esri.arcgis.interop.Dispatch
implements IExtensionConfig, Serializable

Provides access to members that describe an extension.

Remarks

The Extensions dialog in the ArcGIS applications allows users to turn extensions on and off. The IExtensionConfig interface is used to provide the Extension dialog with the name of the extension, a description of the extension, and specifies the state of the extension.

The esriExtensionState enumeration is used to specify whether the extension is enabled, disabled, or unavailable. The state of the extensions is user based. When an extension is installed, its default state is unchecked (esriESDisabled) and the user must knowingly check the extension on in the Extensions dialog box.

With a custom extension, you have full control over what happens when your extension is turned on or off. However, it is a good idea to follow the same design as the ArcGIS extensions. The following notes explain how the ArcGIS extensions work when they are turned on or off in the Extensions dialog.

When a user checks one of the ArcGIS extensions in the Extensions dialog box, the follow things occur:

When a user unchecks one of the ArcGIS extensions in the Extensions dialog box, the follow things occur:

The IExtensionConfig interface is independent of ESRI's licensing approach so as a developer you can incorporate a custom licensing solution. Alternatively, if your extension doesn't work with a license manager, then you don't have to worry about requesting and releasing a license. You could implement IExtensionConfig simply to enable and disable the tools on your extension's toolbar accordingly.

When To Use

If you want your extension to be exposed in the Extensions dialog, you would also implement the IExtensionConfig interface. The class module for your extension would implement both IExtension and IExtensionConfig.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
IExtension, Serialized Form

Field Summary
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, E
 
Constructor Summary
  IExtensionConfigProxy()
           
  IExtensionConfigProxy(Object obj)
           
protected IExtensionConfigProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 String getDescription()
          Detailed description of the extension.
 String getProductName()
          Name of the extension.
 int getState()
          The state of the extension.
 void readExternal(ObjectInput in)
           
 void removeListener(String iidStr, Object theListener)
           
 void setState(int state)
          The state of the extension.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, queryInterface, release, setNativeMode, setPropertyByName, toString, vtblInvoke
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IExtensionConfigProxy

public IExtensionConfigProxy()

IExtensionConfigProxy

public IExtensionConfigProxy(Object obj)
                      throws IOException
Throws:
IOException

IExtensionConfigProxy

protected IExtensionConfigProxy(Object obj,
                                String iid)
                         throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

getProductName

public String getProductName()
                      throws IOException,
                             AutomationException
Name of the extension.

Remarks

ProductName is the name that is displayed for this extension in the Extensions dialog.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getProductName in interface IExtensionConfig
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDescription

public String getDescription()
                      throws IOException,
                             AutomationException
Detailed description of the extension.

Remarks

Description is the text that is displayed for this extension in the About this extension box in the Extensions dialog.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDescription in interface IExtensionConfig
Returns:
The description
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getState

public int getState()
             throws IOException,
                    AutomationException
The state of the extension.

Remarks

The esriExtensionState enumeration is used with this property to specify whether the extension is enabled, disabled, or unavailable. When the state is enabled, the extension is checked in the Extensions dialog. The checked state of the extension is saved in the user settings in the registry.

If the extension is terminated prematurely (for example, from interrupting a debugging session) the State will be set to 0.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getState in interface IExtensionConfig
Returns:
A com.esri.arcgis.system.esriExtensionState constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setState

public void setState(int state)
              throws IOException,
                     AutomationException
The state of the extension.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setState in interface IExtensionConfig
Parameters:
state - A com.esri.arcgis.system.esriExtensionState constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Overrides:
writeExternal in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class com.esri.arcgis.interop.Dispatch
Throws:
IOException
ClassNotFoundException