com.esri.arcgis.display
Class IDisplayProxy

java.lang.Object
  extended bycom.esri.arcgis.interop.Dispatch
      extended bycom.esri.arcgis.display.IDisplayProxy
All Implemented Interfaces:
java.io.Externalizable, IDisplay, java.io.Serializable
Direct Known Subclasses:
IScreenDisplay2Proxy, IScreenDisplayProxy

public class IDisplayProxy
extends Dispatch
implements IDisplay, java.io.Serializable

Provides access to members that control the Display.

Product Availability

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

See Also:
Serialized Form

Field Summary
static java.lang.Class targetClass
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF
 
Constructor Summary
  IDisplayProxy()
          For internal use only
  IDisplayProxy(java.lang.Object obj)
           
protected IDisplayProxy(java.lang.Object obj, java.lang.String iid)
           
  IDisplayProxy(java.lang.String CLSID, java.lang.String host, AuthInfo authInfo)
           
protected IDisplayProxy(java.lang.String CLSID, java.lang.String iid, java.lang.String host, AuthInfo authInfo)
           
 
Method Summary
 void addListener(java.lang.String iidStr, java.lang.Object theListener, java.lang.Object theSource)
          Adds a Java object to be a listener for a specific kind of event generated by the COM object.
 void drawMultipoint(IGeometry multipoint)
          Draws specified multipoint on the display.
 void drawPoint(IGeometry point)
          Draws specified point on the display.
 void drawPolygon(IGeometry polygon)
          Draws specified polygon on the display.
 void drawPolyline(IGeometry polyline)
          Draws specified line on the display.
 void drawRectangle(IEnvelope rectangle)
          Draws specified rectangle on the display.
 void drawText(IGeometry shape, java.lang.String text)
          Draws specified text on the display.
 void finishDrawing()
          Completes drawing.
 IEnvelope getClipEnvelope()
          The bounds of the invalid region.
 ISet getClipEnvelopes()
          The invalid region as a set of envelopes.
 IGeometry getClipGeometry()
          User-specified clip shape.
 IDisplayTransformation getDisplayTransformation()
          The transformation used by the display.
 IDisplayFilter getFilter()
          Display filter.
 int getHDC()
          The device context that the display is currently drawing to.
 int getHPalette()
          Palette.
 IIlluminationProps getIlluminationProps()
          Illumination properties used by the display.
 boolean isSuppressEvents()
          Indicates if display object suppresses events.
 void progress(int vertexCount)
          Call frequently during drawing process.
 void removeListener(java.lang.String iidStr, java.lang.Object theListener)
          Removes a Java object as a listener to events generated by a COM object.
 void setClipGeometry(IGeometry geometry)
          User-specified clip shape.
 void setDisplayTransformation(IDisplayTransformation displayTransformation)
          The transformation used by the display.
 void setFilterByRef(IDisplayFilter filter)
          Display filter.
 void setHPalette(int hPalette)
          Palette.
 void setIlluminationProps(IIlluminationProps illuminationProps)
          Illumination properties used by the display.
 void setSuppressEvents(boolean suppressEvents)
          Indicates if display object suppresses events.
 void setSymbol(ISymbol sym)
          Sets the symbol used for drawing.
 void startDrawing(int hDC, short cacheID)
          Prepare the display for drawing.
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, hashCode, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, queryInterface, readExternal, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

targetClass

public static final java.lang.Class targetClass
Constructor Detail

IDisplayProxy

public IDisplayProxy(java.lang.String CLSID,
                     java.lang.String host,
                     AuthInfo authInfo)
              throws java.net.UnknownHostException,
                     java.io.IOException

IDisplayProxy

public IDisplayProxy()
For internal use only


IDisplayProxy

public IDisplayProxy(java.lang.Object obj)
              throws java.io.IOException

IDisplayProxy

protected IDisplayProxy(java.lang.Object obj,
                        java.lang.String iid)
                 throws java.io.IOException

IDisplayProxy

protected IDisplayProxy(java.lang.String CLSID,
                        java.lang.String iid,
                        java.lang.String host,
                        AuthInfo authInfo)
                 throws java.io.IOException
Method Detail

addListener

public void addListener(java.lang.String iidStr,
                        java.lang.Object theListener,
                        java.lang.Object theSource)
                 throws java.io.IOException
Description copied from class: Dispatch
Adds a Java object to be a listener for a specific kind of event generated by the COM object. when you wish to invoke method on the COM object using IDispatch (not using custom marshalling).

Overrides:
addListener in class Dispatch
Parameters:
iidStr - the ID of the outgoing interface, implemented by the listener
theListener - the object to be informed of the events
theSource - the proxy class that represents the COM class that is the source of the events
Throws:
java.io.IOException

removeListener

public void removeListener(java.lang.String iidStr,
                           java.lang.Object theListener)
                    throws java.io.IOException
Description copied from class: Dispatch
Removes a Java object as a listener to events generated by a COM object. when you wish to invoke method on the COM object using IDispatch (not using custom marshalling).

Overrides:
removeListener in class Dispatch
Parameters:
iidStr - the ID of the outgoing interface, implemented by the listener
theListener - the object that no longer wishes to be informed of the events
Throws:
java.io.IOException

getDisplayTransformation

public IDisplayTransformation getDisplayTransformation()
                                                throws java.io.IOException,
                                                       AutomationException
Description copied from interface: IDisplay
The transformation used by the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

Each display object, like ScreenDisplay for example, manages (CoCreates) a DisplayTransformation object to convert coordinates between map units and device units.  Use this property to get a reference to the DisplayTransformation object associated with this display.

Specified by:
getDisplayTransformation in interface IDisplay
Returns:
A reference to a com.esri.arcgis.display.IDisplayTransformation
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setDisplayTransformation

public void setDisplayTransformation(IDisplayTransformation displayTransformation)
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IDisplay
The transformation used by the display.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setDisplayTransformation in interface IDisplay
Parameters:
displayTransformation - A reference to a com.esri.arcgis.display.IDisplayTransformation (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClipEnvelope

public IEnvelope getClipEnvelope()
                          throws java.io.IOException,
                                 AutomationException
Description copied from interface: IDisplay
The bounds of the invalid region. Use after StartDrawing and before FinishDrawing.

Supported Platforms

Windows, Solaris, Linux

Remarks

The ClipEnvelope is the is the display transformation's fitted bounds (IDisplayTransformation::FittedBounds) intersected with the ClipGeometry if one exists.
This property is mostly used during drawing operations, for example, IDisplay's drawing functions clip (ITopologicalOperator::Clip) the object they are drawing against the ClipEnvelope to ensure that only the visible parts of the object are drawn.

Specified by:
getClipEnvelope in interface IDisplay
Returns:
A reference to a com.esri.arcgis.geometry.IEnvelope
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getClipEnvelopes

public ISet getClipEnvelopes()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IDisplay
The invalid region as a set of envelopes. Use after StartDrawing and before FinishDrawing.

Supported Platforms

Windows, Solaris, Linux

Remarks

Use ISet::Reset and ISet::Next methods to iterate through the returned set of objects.

Specified by:
getClipEnvelopes in interface IDisplay
Returns:
A reference to a com.esri.arcgis.system.ISet
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getClipGeometry

public IGeometry getClipGeometry()
                          throws java.io.IOException,
                                 AutomationException
Description copied from interface: IDisplay
User-specified clip shape. This shape is merged with the invalid region to arrive at the actual clip region. Must be specified before StartDrawing.

Supported Platforms

Windows, Solaris, Linux

Remarks

Use the ClipGeometry  property to shape the area data is drawn in.  For example, if you had a map of the United States that contained many layers, you could set the ClipGeometry property on the focus Map's ScreenDisplay object equal to the geometry of a particular state thereby telling the map to only draw the data falling within the particular state's area.  The ClipGeometry is used to cookie-cut all data before it is drawn.

See IMap::ClipGeometry for a more information and a sample.

Specified by:
getClipGeometry in interface IDisplay
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setClipGeometry

public void setClipGeometry(IGeometry geometry)
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IDisplay
User-specified clip shape. This shape is merged with the invalid region to arrive at the actual clip region. Must be specified before StartDrawing.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setClipGeometry in interface IDisplay
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

isSuppressEvents

public boolean isSuppressEvents()
                         throws java.io.IOException,
                                AutomationException
Description copied from interface: IDisplay
Indicates if display object suppresses events.

Supported Platforms

Windows, Solaris, Linux

Remarks

Use SuppressEvents to prevent the following events from being fired.

For example, IScreenDisplay::StartDrawing sets SuppressEvents to TRUE and FinishDrawing sets it back to FALSE, this prevents all transform events from firing during the drawing.

SuppressEvents is set to FALSE by default.

Specified by:
isSuppressEvents in interface IDisplay
Returns:
The suppressEvents
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setSuppressEvents

public void setSuppressEvents(boolean suppressEvents)
                       throws java.io.IOException,
                              AutomationException
Description copied from interface: IDisplay
Indicates if display object suppresses events.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSuppressEvents in interface IDisplay
Parameters:
suppressEvents - The suppressEvents (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getFilter

public IDisplayFilter getFilter()
                         throws java.io.IOException,
                                AutomationException
Description copied from interface: IDisplay
Display filter. Must call while in a StartDrawing-FinishDrawing sequence. Set Filter to 0 to resume normal drawing.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFilter in interface IDisplay
Returns:
A reference to a com.esri.arcgis.display.IDisplayFilter
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setFilterByRef

public void setFilterByRef(IDisplayFilter filter)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IDisplay
Display filter. Must call while in a StartDrawing-FinishDrawing sequence. Set Filter to 0 to resume normal drawing.

Specified by:
setFilterByRef in interface IDisplay
Parameters:
filter - A reference to a com.esri.arcgis.display.IDisplayFilter (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getHPalette

public int getHPalette()
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IDisplay
Palette.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getHPalette in interface IDisplay
Returns:
The hPalette (A COM typedef)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setHPalette

public void setHPalette(int hPalette)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IDisplay
Palette.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setHPalette in interface IDisplay
Parameters:
hPalette - The hPalette (A COM typedef) (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

startDrawing

public void startDrawing(int hDC,
                         short cacheID)
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IDisplay
Prepare the display for drawing. Specify the device context and the cache to draw to (normally esriNoScreenCache). The ScreenDisplay coclass will automatically create a window device context if you specify hdc = 0.

Supported Platforms

Windows, Solaris, Linux

Remarks

StartDrawing and FinishDrawing are used to manage clipping, symbols, and caching. Call StartDrawing and FinishDrawing anytime you want to draw to a device such as a display, printer, or cache (bitmap).  However, if you are drawing in response to IActiveViewEvents::AfterDraw, the Map object automatically makes these calls for you.

StartDrawing has two parameters: hDc and cacheID.  The hDc parameter specifies the target device where drawing will occur, usually a display, printer, or bitmap.  The cacheID parameter activates a specific cache. In most cases, esriNoScreenCache should be used. 

Specifying a cache sets it as the screen's active cache.  When esriNoScreenCache is used, it sets the display's active cache to zero and drawing occurs directly in the device. Specify a cache when you don't want to draw to a screen directly and you instead want to draw to a cache (bitmap) that may ultimately be copied to the screen.  For example, when ArcMap draws geography, it draws it to a specific cache and then the cache is copied to the screen.  When the screen repaints, instead of drawing all the data from scratch again, the software checks if the cache is dirty or not and simply redraws the bitmap to save time if it can.  When drawing to a cache, the hDc parameter should be the device context of the bitmap, use the IScreenDisplay::CacheMemDC property to get a particular cache's hDC.

Each time you need to change the cache you are drawing to, you must do so inside a new StartDrawing / FinishDrawing block.  For example,  ArcMap usually creates three caches: one for geography layers, one for graphics and annotation, and one for selections.  ArcMap draws each of these phases within a separate StartDrawing / FinishDrawing block.

There are times when may need to draw shapes directly to screen without having them become part of a display cache.  For example, drawing moving objects.   In these cases, use IScreenDisplay::WindowDC to get the device context of the display and esriNoScreenCache as the cacheID.

If a zero is specified for the hDc parameter, the Windows API function GetDC is used to populate IScreenDisplay::WindowDC with the hDC of the main display and drawing is sent here.

As mentioned above, if you drawing in response to the IActiveView::AfterDraw event, the Map object calls StartDrawing and StopDrawing for you.  Also, if the draw phase you are drawing after is cached, your drawings will be cached as well.
StartDrawing fires the IDisplayEvents::DisplayStarted event.

Specified by:
startDrawing in interface IDisplay
Parameters:
hDC - The hDC (A COM typedef) (in)
cacheID - The cacheID (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getHDC

public int getHDC()
           throws java.io.IOException,
                  AutomationException
Description copied from interface: IDisplay
The device context that the display is currently drawing to. Only valid between calls to StartDrawing and FinishDrawing.

Supported Platforms

Windows, Solaris, Linux

Remarks

Returns the device context specified to StartDrawing.  This may be the device context of a display, cache (bitmap), or some other device such as a printer.  As StartDrawing is called frequently throughout the drawing pipeline, the hDc property continually changes and is therefore safe to use only within a single StartDrawing / FinishDrawing block.

This property does not provide a value to pass to IDisplay::StartDrawing. Instead, call IDisplay::StartDrawing with a value of 0 for the hDC as this will automatically use the Windows API function GetDC to populate IScreenDisplay::WindowDC with the hDC of the main display and drawing will occur there.

Specified by:
getHDC in interface IDisplay
Returns:
The hDC (A COM typedef)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

finishDrawing

public void finishDrawing()
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IDisplay
Completes drawing.

Supported Platforms

Windows, Solaris, Linux

Remarks

When FinishDrawing is called, all the caches get flushed to the screen.
FinishDrawing must be called before StartDrawing can be called again. 

Specified by:
finishDrawing in interface IDisplay
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

progress

public void progress(int vertexCount)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IDisplay
Call frequently during drawing process.

Supported Platforms

Windows, Solaris, Linux

Remarks

Progress is called from the draw methods.

Specified by:
progress in interface IDisplay
Parameters:
vertexCount - The vertexCount (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

drawPoint

public void drawPoint(IGeometry point)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IDisplay
Draws specified point on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawPoint draws a Point object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawPoint in interface IDisplay
Parameters:
point - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

drawMultipoint

public void drawMultipoint(IGeometry multipoint)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IDisplay
Draws specified multipoint on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawMultipoint draws a Multipoint object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawMultipoint in interface IDisplay
Parameters:
multipoint - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

drawRectangle

public void drawRectangle(IEnvelope rectangle)
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IDisplay
Draws specified rectangle on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawRectangle draws a Envelope object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawRectangle in interface IDisplay
Parameters:
rectangle - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

drawPolyline

public void drawPolyline(IGeometry polyline)
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IDisplay
Draws specified line on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawPolyline draws a Polyline object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawPolyline in interface IDisplay
Parameters:
polyline - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

drawPolygon

public void drawPolygon(IGeometry polygon)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IDisplay
Draws specified polygon on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawPolygon draws a Polygon object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawPolygon in interface IDisplay
Parameters:
polygon - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

drawText

public void drawText(IGeometry shape,
                     java.lang.String text)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IDisplay
Draws specified text on the display.

Supported Platforms

Windows, Solaris, Linux

Remarks

DrawText draws a text string with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.

Specified by:
drawText in interface IDisplay
Parameters:
shape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
text - The text (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSymbol

public void setSymbol(ISymbol sym)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IDisplay
Sets the symbol used for drawing. Four different symbols can be specified simultaneously: Marker, Line, Fill, Text.

Specified by:
setSymbol in interface IDisplay
Parameters:
sym - A reference to a com.esri.arcgis.display.ISymbol (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIlluminationProps

public IIlluminationProps getIlluminationProps()
                                        throws java.io.IOException,
                                               AutomationException
Description copied from interface: IDisplay
Illumination properties used by the display.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIlluminationProps in interface IDisplay
Returns:
A reference to a com.esri.arcgis.display.IIlluminationProps
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIlluminationProps

public void setIlluminationProps(IIlluminationProps illuminationProps)
                          throws java.io.IOException,
                                 AutomationException
Description copied from interface: IDisplay
Illumination properties used by the display.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setIlluminationProps in interface IDisplay
Parameters:
illuminationProps - A reference to a com.esri.arcgis.display.IIlluminationProps (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.