com.esri.arcgis.display
Class IDynamicGlyphFactoryProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.display.IDynamicGlyphFactoryProxy
All Implemented Interfaces:
IDynamicGlyphFactory, Externalizable, Serializable
Direct Known Subclasses:
IDynamicGlyphFactory2Proxy

public class IDynamicGlyphFactoryProxy
extends com.esri.arcgis.interop.Dispatch
implements IDynamicGlyphFactory, Serializable

Provides access to create dynamic glyphs.

Superseded By

IDynamicGlyphFactory2

Description

Use the dynamic glyph factory singleton object in order to create and delete dynamic glyphs. The dynamic glyphs can be used with the Dynamic Symbols in order to render Dynamic Items.

Remarks

Dynamic Glyph Factory:

The Dynamic Glyph Factory is a singleton object; therefore you can always co-create it in order to use it to create and delete dynamic glyphs. With Respect to performance, it is preferable to create the dynamic glyphs in the context of the IDynamicLayer’s DrawDynamicLayer method, in the esriDDPImmediate draw phase, or in the context of the IDynamicMapEvents BeforeDynamicDraw or AfterDynamicDraw method, while casting the passed in IDynamicDisplay interface to IDynamicGlyphFactory.

When co-creating the DynamicGlyphFactory singleton in a DotNet application, use the Activator class instead of using the new keyword:

Type t = Type.GetTypeFromProgID("esriCarto.DynamicGlyphFactory");

System.Object dynamicGlyphFactoryObject = Activator.CreateInstance(t);

IDynamicGlyphFactory2 dynamicGlyphFactory = dynamicGlyphFactoryObject as IDynamicGlyphFactory2;

See also: System.__ComObject and casting to strongly typed RCWs

Glyph Groups:

A Dynamic Glyphs Group is a container that holds multiple glyphs. It is composed of a bitmap and a database that holds information about the group and the elements (glyphs and glyphs’ items) in the group. The image is a mosaic of sub-images of icons (marker glyphs), lines (line glyphs), and groups of characters (each group composes a text glyph).
The bitmap holds color information (Red, Green, Blue, and Alpha values) for each pixel. The bitmap can be loaded from one of two file images - one that holds the RGB values, and a second one that holds the ALPHA values, or from a single file image that holds RGBA values.
The Glyphs Group database is loaded from an XML file. This XML file holds general information about the group, and specific location and size information for each of the items and elements of the group.
A new Glyphs Group can be loaded using the IDynamicGlyphFactory.LoadDynamicGlyphsGroup method.
Glyphs Group ID 1 is reserved to be the default Glyphs Group, and supplies a default set of Dynamic Glyphs.

Product Availability

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

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, E
 
Constructor Summary
  IDynamicGlyphFactoryProxy()
           
  IDynamicGlyphFactoryProxy(Object obj)
           
protected IDynamicGlyphFactoryProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 IDynamicGlyph createDynamicGlyph(ISymbol symbol)
          Creates a dynamic glyph from a symbol.
 IDynamicGlyph createDynamicGlyphFromFile(int glyphType, String fileName, IColor transparencyColor)
          Creates a dynamic glyph from a file.
 void deleteDynamicGlyph(IDynamicGlyph glyph)
          Deletes the dynamic glyph's resource.
 IDynamicGlyph getDynamicGlyph(int groupId, int glyphType, int index)
          Retrieves a dynamic glyph from a glyph group.
 void init(IScreenDisplay screenDisplay)
          Initialize the dynamic glyph factory.
 int loadDynamicGlyphsGroup(String fileName)
          Loads a dynamic glyph group from files.
 void readExternal(ObjectInput in)
           
 void removeListener(String iidStr, Object theListener)
           
 void unloadDynamicGlyphsGroup(int groupId)
          Unloads a dynamic glyph group, and any corresponding resources.
 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

IDynamicGlyphFactoryProxy

public IDynamicGlyphFactoryProxy()

IDynamicGlyphFactoryProxy

public IDynamicGlyphFactoryProxy(Object obj)
                          throws IOException
Throws:
IOException

IDynamicGlyphFactoryProxy

protected IDynamicGlyphFactoryProxy(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

init

public void init(IScreenDisplay screenDisplay)
          throws IOException,
                 AutomationException
Initialize the dynamic glyph factory.

Remarks

This method should only be used after co-creating a Dynamic Glyph Factory. There is no need to init a Dynamic Glyph Factory that was retrieved from a Dynamic Display object.

Product Availability

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

Specified by:
init in interface IDynamicGlyphFactory
Parameters:
screenDisplay - A reference to a com.esri.arcgis.display.IScreenDisplay (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicGlyph

public IDynamicGlyph createDynamicGlyph(ISymbol symbol)
                                 throws IOException,
                                        AutomationException
Creates a dynamic glyph from a symbol.

Remarks

For monochromatic symbols (symbols that consist of only one color and might even have fixed black pixels), it is advisable to set the Symbol color to white before passing it into the method. When rendering the Dynamic Symbol, using the Dynamic Glyph created using this method, you should then set the color to the desired color. That will result in coloring the white pixels to the desired color, while leaving the black colors black.

Product Availability

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

Specified by:
createDynamicGlyph in interface IDynamicGlyphFactory
Parameters:
symbol - A reference to a com.esri.arcgis.display.ISymbol (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteDynamicGlyph

public void deleteDynamicGlyph(IDynamicGlyph glyph)
                        throws IOException,
                               AutomationException
Deletes the dynamic glyph's resource.

Remarks

It is important to call this method in order to release the Dynamic Glyph’s resources. A Dynamic Glyph object that is destroyed without calling this method might result in memory leaks on the graphic card memory. Also, it is recommended to delete unused Dynamic Glyphs in order to free up Graphic Card memory.

Product Availability

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

Specified by:
deleteDynamicGlyph in interface IDynamicGlyphFactory
Parameters:
glyph - A reference to a com.esri.arcgis.display.IDynamicGlyph (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicGlyphFromFile

public IDynamicGlyph createDynamicGlyphFromFile(int glyphType,
                                                String fileName,
                                                IColor transparencyColor)
                                         throws IOException,
                                                AutomationException
Creates a dynamic glyph from a file.

Remarks

Creates a dynamic glyph from an image file. If the image file consists of an alpha channel, the method will honor the alpha values in the alpha channel, otherwise the alpha values will be set to be opaque (255). If the transparency color is not NULL, each pixel that matches the transparencyColor parameter will be transparent (its alpha values in the glyph will be set to 0).

Product Availability

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

Specified by:
createDynamicGlyphFromFile in interface IDynamicGlyphFactory
Parameters:
glyphType - A com.esri.arcgis.display.esriDynamicGlyphType constant (in)
fileName - The fileName (in)
transparencyColor - A reference to a com.esri.arcgis.display.IColor (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

loadDynamicGlyphsGroup

public int loadDynamicGlyphsGroup(String fileName)
                           throws IOException,
                                  AutomationException
Loads a dynamic glyph group from files.

Remarks

The fileName points to an XML file. This XML file holds information regarding the image files that should be used in order to load the group image, and a database that describes the identity, location, and size of the glyphs in the group.

On success, the method returns the ID of the loaded group. This ID can be used to get a dynamic glyph from the group, using the get property IDynamicGlyphFactory.DynamicGlyph, or unload the glyphs group, using the method IDynamicGlyphFactory.UnloadDynamicGlyphsGroup.

Product Availability

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

Specified by:
loadDynamicGlyphsGroup in interface IDynamicGlyphFactory
Parameters:
fileName - The fileName (in)
Returns:
The groupId
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

unloadDynamicGlyphsGroup

public void unloadDynamicGlyphsGroup(int groupId)
                              throws IOException,
                                     AutomationException
Unloads a dynamic glyph group, and any corresponding resources.

Remarks

When the Dynamic Glyphs Group is no longer needed, it is important to call this method in order to release the Group’s resources.

Unused Dynamic Glyph Groups that are not unloaded might result in memory leaks on the graphic card memory.

Product Availability

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

Specified by:
unloadDynamicGlyphsGroup in interface IDynamicGlyphFactory
Parameters:
groupId - The groupId (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDynamicGlyph

public IDynamicGlyph getDynamicGlyph(int groupId,
                                     int glyphType,
                                     int index)
                              throws IOException,
                                     AutomationException
Retrieves a dynamic glyph from a glyph group.

Product Availability

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

Specified by:
getDynamicGlyph in interface IDynamicGlyphFactory
Parameters:
groupId - The groupId (in)
glyphType - A com.esri.arcgis.display.esriDynamicGlyphType constant (in)
index - The index (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
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