com.bbn.openmap.dataAccess.shape
Class EsriGraphicList

java.lang.Object
  extended by com.bbn.openmap.omGraphics.geom.BasicGeometry
      extended by com.bbn.openmap.omGraphics.OMGraphicAdapter
          extended by com.bbn.openmap.omGraphics.OMList<OMGraphic>
              extended by com.bbn.openmap.omGraphics.OMGraphicList
                  extended by com.bbn.openmap.dataAccess.shape.EsriGraphicList
All Implemented Interfaces:
EsriGraphic, ShapeConstants, OMGeometry, OMGraphic, OMGraphicConstants, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<OMGraphic>, java.util.Collection<OMGraphic>, java.util.List<OMGraphic>
Direct Known Subclasses:
EsriPointList, EsriPolygonList, EsriPolylineList

public abstract class EsriGraphicList
extends OMGraphicList
implements ShapeConstants, EsriGraphic

EsriGraphicList ensures that only supported geometry types are added to its list. Each subclass of this EsriGraphicList list will hold polyline, polygon, or point geometry -- other types of geometry are not supported. As shapes are added to the list, EsriGraphicList will ensure that the type of geometry being added is the same type of geometry as specified by the subclass list type.

Author:
Doug Van Auken, Don Dietrick
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.bbn.openmap.omGraphics.OMList
OMList.OMDist<T>
 
Field Summary
protected  double[] extents
           
static java.util.logging.Logger logger
           
protected  int type
           
 
Fields inherited from class com.bbn.openmap.omGraphics.OMList
allowDuplicates, FIRST_ADDED_ON_TOP, graphics, LAST_ADDED_ON_TOP, NONE, processAllGeometries, traverseMode, vague
 
Fields inherited from class com.bbn.openmap.omGraphics.OMGraphicAdapter
declutterType, displayPaint, edgeMatchesFill, fillPaint, hasLabel, linePaint, matted, mattingPaint, renderType, selected, selectPaint, showEditablePalette, stroke, textureMask
 
Fields inherited from class com.bbn.openmap.omGraphics.geom.BasicGeometry
attributes, lineType, needToRegenerate, shape, visible
 
Fields inherited from interface com.bbn.openmap.dataAccess.shape.ShapeConstants
DBF_ATTRIBUTE, DBF_AUTOINCREMENT, DBF_BINARY, DBF_CHARACTER, DBF_DATE, DBF_DOUBLE, DBF_FLOAT, DBF_LOGICAL, DBF_LONG, DBF_MEMO, DBF_NUMERIC, DBF_OLE, DBF_TIMESTAMP, DBF_TYPE_AUTOINCREMENT, DBF_TYPE_BINARY, DBF_TYPE_CHARACTER, DBF_TYPE_DATE, DBF_TYPE_DOUBLE, DBF_TYPE_FLOAT, DBF_TYPE_LOGICAL, DBF_TYPE_LONG, DBF_TYPE_MEMO, DBF_TYPE_NUMERIC, DBF_TYPE_OLE, DBF_TYPE_TIMESTAMP, PARAM_DBF, PARAM_SHP, PARAM_SHX, SHAPE_BOUNDS_ATTRIBUTE, SHAPE_DBF_DASHPATTERN, SHAPE_DBF_DASHPHASE, SHAPE_DBF_DESCRIPTION, SHAPE_DBF_FILLCOLOR, SHAPE_DBF_INFO_ATTRIBUTE, SHAPE_DBF_LINECOLOR, SHAPE_DBF_LINEWIDTH, SHAPE_DBF_SELECTCOLOR, SHAPE_FILE_HEADER_LENGTH, SHAPE_FILE_RECORD_HEADER_LENGTH, SHAPE_INDEX_ATTRIBUTE, SHAPE_MAX_MEASURE_ATTRIBUTE, SHAPE_MAX_Z_ATTRIBUTE, SHAPE_MEASURE_ATTRIBUTE, SHAPE_MIN_MEASURE_ATTRIBUTE, SHAPE_MIN_Z_ATTRIBUTE, SHAPE_TYPE_ARC, SHAPE_TYPE_MULTIPATCH, SHAPE_TYPE_MULTIPOINT, SHAPE_TYPE_MULTIPOINTM, SHAPE_TYPE_MULTIPOINTZ, SHAPE_TYPE_NULL, SHAPE_TYPE_POINT, SHAPE_TYPE_POINTM, SHAPE_TYPE_POINTZ, SHAPE_TYPE_POLYGON, SHAPE_TYPE_POLYGONM, SHAPE_TYPE_POLYGONZ, SHAPE_TYPE_POLYLINE, SHAPE_TYPE_POLYLINEM, SHAPE_TYPE_POLYLINEZ, SHAPE_Z_ATTRIBUTE
 
Fields inherited from interface com.bbn.openmap.omGraphics.OMGraphicConstants
ADD_GRAPHIC_MASK, APP_OBJECT, BASIC_STROKE, CHANGE_APPEARANCE, clear, DECIMAL_DEGREES, DECLUTTERTYPE_LINE, DECLUTTERTYPE_MOVE, DECLUTTERTYPE_NONE, DECLUTTERTYPE_SPACE, DEFAULT_ROTATIONANGLE, DELETE_GRAPHIC_MASK, DESELECT_GRAPHIC_MASK, DESELECTALL_GRAPHIC_MASK, GRAPHICTYPE_ARC, GRAPHICTYPE_BITMAP, GRAPHICTYPE_CIRCLE, GRAPHICTYPE_ELLIPSE, GRAPHICTYPE_GRAPHIC, GRAPHICTYPE_GRID, GRAPHICTYPE_LINE, GRAPHICTYPE_POINT, GRAPHICTYPE_POLY, GRAPHICTYPE_RASTER, GRAPHICTYPE_RECTANGLE, GRAPHICTYPE_TEXT, INDEX, INFOLINE, LABEL, LINETYPE_GREATCIRCLE, LINETYPE_RHUMB, LINETYPE_STRAIGHT, LINETYPE_UNKNOWN, LOWER_GRAPHIC_MASK, LOWER_TO_BOTTOM_GRAPHIC_MASK, NO_ROTATE, OMGRAPHIC_ELT, OMGRAPHIC_TYPE_ATTR, RADIANS, RAISE_GRAPHIC_MASK, RAISE_TO_TOP_GRAPHIC_MASK, REMOVABLE, RENDERTYPE_LATLON, RENDERTYPE_OFFSET, RENDERTYPE_UNKNOWN, RENDERTYPE_XY, SELECT_GRAPHIC_MASK, SORT_GRAPHICS_MASK, TOOLTIP, UPDATE_GRAPHIC_MASK, UPDATED
 
Constructor Summary
EsriGraphicList()
          Construct an EsriGraphicList.
EsriGraphicList(int initialCapacity)
          Construct an EsriGraphicList with an initial capacity.
EsriGraphicList(int initialCapacity, int capacityIncrement)
          Deprecated. capacityIncrement doesn't do anything.
 
Method Summary
 boolean add(OMGraphic shape)
          Over-ride the add( ) method to trap for inconsistent shape geometry.
 void addExtents(double[] graphicExtents)
           
 boolean addOMGraphic(OMGraphic g)
          Add an OMGraphic to the GraphicList.
 void createTable()
          Create a generic DbfTableModel for the contents of this list, where the attributes hold rendering properties for the list contents.
static EsriGraphicList getEsriGraphicList(java.net.URL shp, DrawingAttributes drawingAttributes, DbfTableModel dbf, GeoCoordTransformation coordTranslator)
          Reads the contents of the SHP files.
static EsriGraphicList getEsriGraphicList(java.net.URL shp, DrawingAttributes drawingAttributes, GeoCoordTransformation coordTranslator)
          Reads the contents of the SHP files, including the DBF file, based on the location of the shape file.
static EsriGraphicList getEsriGraphicList(java.net.URL shp, java.net.URL shx, DrawingAttributes drawingAttributes, DbfTableModel dbf)
          Deprecated. use getGraphicList(URL, DrawingAttributes, DbfTableModel)
 double[] getExtents()
          The lat/lon extent of the EsriGraphicList contents, returned as miny, minx, maxy maxx in order of the array.
 java.util.List<EsriGraphic> getGraphicsWithValueInColumn(java.lang.Object value, java.lang.String columnName)
          Find EsriGraphics with a certain attribute
 DbfTableModel getTable()
          Get the DbfTableModel object from the AppObject of this list.
 int getType()
          Get the list type in ESRI type number form
static void main(java.lang.String[] args)
           
 void setExtents(double[] extents)
          The lat/lon extent of the EsriGraphicList contents, assumed to contain miny, minx, maxy maxx in order of the array.
 void setTable(DbfTableModel dtm)
          Set the DbfTableModel in the AppObject of this list that holds the attribute information about this list's objects.
 void setType(int type)
          Set the type for the EsriGraphic.
 
Methods inherited from class com.bbn.openmap.omGraphics.OMGraphicList
add, addAll, addAll, clone, create, createDist, get, getOMGraphicAt, getTargets, iteratorCopy, listIteratorCopy, listIteratorCopy, objectToOMGraphic, readGraphics, readGraphics, remove, set, setFillPaint, setGridGenerator, setLinePaint, setMatted, setMattingPaint, setOMGraphicAt, setSelectPaint, setStroke, setTargets, setTextureMask, sort, writeGraphics, writeGraphics
 
Methods inherited from class com.bbn.openmap.omGraphics.OMList
checkForDuplicate, clear, contains, contains, containsAll, deselect, distance, doAction, findAll, findAll, findAllTest, findClosest, findClosest, findClosest, findClosestTest, findIndexOfClosest, findIndexOfClosest, generate, generate, getAllowDuplicates, getContains, getCopy, getDescription, getDescription, getProcessAllGeometries, getTraverseMode, indexOf, isEmpty, isVague, isVisible, iterator, lastIndexOf, listIterator, listIterator, moveIndexedOneToBack, moveIndexedOneToBottom, moveIndexedOneToFront, moveIndexedOneToTop, moveIndexedToBottom, moveIndexedToFirst, moveIndexedToLast, moveIndexedToTop, project, project, remove, removeAll, render, renderAllAsSelected, restore, retainAll, select, selectClosest, selectClosest, selectClosestTest, setAllowDuplicates, setProcessAllGeometries, setTraverseMode, setVague, setVisible, shouldProcess, size, subList, toArray, toArray
 
Methods inherited from class com.bbn.openmap.omGraphics.OMGraphicAdapter
getDeclutterType, getDisplayColor, getDisplayPaint, getEdgeMatchesFill, getFillColor, getFillPaint, getHasLabel, getLineColor, getLinePaint, getMattingPaint, getRenderType, getSelectColor, getSelectPaint, getShowEditablePalette, getStroke, getTextureMask, hasLineTypeChoice, initLabelingDuringGenerate, isClear, isMatted, isSelected, normalizeDistanceForLineWidth, readStroke, readTextureMask, regenerate, renderLabel, renderShape, setDeclutterType, setEdgeMatchesFill, setFillColor, setGraphicsColor, setGraphicsForEdge, setGraphicsForFill, setHasLabel, setLabelLocation, setLabelLocation, setLabelLocation, setLabelLocation, setLabelLocation, setLabelLocation, setLabelLocation, setLabelLocation, setLineColor, setRenderType, setSelectColor, setSelected, setShowEditablePalette, shouldRenderEdge, shouldRenderFill, writeStroke, writeTextureMask
 
Methods inherited from class com.bbn.openmap.omGraphics.geom.BasicGeometry
_distance, appendShapeEdge, appendShapeEdge, appendShapeEdge, appendShapeEdge, clearAttributes, contains, createAttributeMap, createBoxShape, createShape, createShape, describeShapeDetail, describeShapeDetail, distanceToEdge, distanceToEdge, draw, draw, fill, fill, getAppObject, getAttribute, getAttributes, getLineType, getNeedToRegenerate, getShape, isRenderable, isRenderable, putAttribute, removeAttribute, setAppObject, setAttributes, setLineType, setNeedToRegenerate, setShape
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.dataAccess.shape.EsriGraphic
getAttribute, putAttribute, shallowCopy
 
Methods inherited from interface java.util.List
equals, hashCode
 
Methods inherited from interface com.bbn.openmap.omGraphics.OMGraphic
getDeclutterType, getDisplayColor, getDisplayPaint, getFillColor, getFillPaint, getLineColor, getLinePaint, getMattingPaint, getRenderType, getSelectColor, getSelectPaint, getShowEditablePalette, getStroke, getTextureMask, hasLineTypeChoice, isMatted, isSelected, normalizeDistanceForLineWidth, regenerate, renderLabel, setDeclutterType, setGraphicsColor, setGraphicsForEdge, setGraphicsForFill, setLabelLocation, setLabelLocation, setLabelLocation, setRenderType, setSelected, setShowEditablePalette, shouldRenderEdge, shouldRenderFill
 
Methods inherited from interface com.bbn.openmap.omGraphics.OMGeometry
clearAttributes, contains, distanceToEdge, draw, draw, fill, fill, getAppObject, getAttribute, getAttributes, getLineType, getNeedToRegenerate, getShape, isRenderable, isRenderable, putAttribute, removeAttribute, setAppObject, setAttributes, setLineType, setNeedToRegenerate, setShape
 

Field Detail

logger

public static java.util.logging.Logger logger

extents

protected double[] extents

type

protected int type
Constructor Detail

EsriGraphicList

public EsriGraphicList()
Construct an EsriGraphicList.


EsriGraphicList

public EsriGraphicList(int initialCapacity)
Construct an EsriGraphicList with an initial capacity.

Parameters:
initialCapacity - the initial capacity of the list

EsriGraphicList

public EsriGraphicList(int initialCapacity,
                       int capacityIncrement)
Deprecated. capacityIncrement doesn't do anything.

Construct an EsriGraphicList with an initial capacity and a standard increment value.

Parameters:
initialCapacity - the initial capacity of the list
capacityIncrement - the capacityIncrement for resizing
Method Detail

add

public boolean add(OMGraphic shape)
Over-ride the add( ) method to trap for inconsistent shape geometry. If you are adding a OMGraphic that is not a list, make sure this list is a sub-list containing multiple geometry parts. Only add another list to a top level EsriGraphicList.

Specified by:
add in interface java.util.Collection<OMGraphic>
Specified by:
add in interface java.util.List<OMGraphic>
Overrides:
add in class OMGraphicList
Parameters:
shape - the non-null OMGraphic to add

addOMGraphic

public boolean addOMGraphic(OMGraphic g)
Add an OMGraphic to the GraphicList. The OMGraphic must not be null.

Parameters:
g - the non-null OMGraphic to add
Returns:
true if addition is successful.
Throws:
java.lang.IllegalArgumentException - if OMGraphic is null

setType

public void setType(int type)
Description copied from interface: EsriGraphic
Set the type for the EsriGraphic.

Specified by:
setType in interface EsriGraphic

getType

public int getType()
Get the list type in ESRI type number form

Specified by:
getType in interface EsriGraphic

setExtents

public void setExtents(double[] extents)
The lat/lon extent of the EsriGraphicList contents, assumed to contain miny, minx, maxy maxx in order of the array.

Specified by:
setExtents in interface EsriGraphic

getExtents

public double[] getExtents()
The lat/lon extent of the EsriGraphicList contents, returned as miny, minx, maxy maxx in order of the array.

Specified by:
getExtents in interface EsriGraphic

addExtents

public void addExtents(double[] graphicExtents)

setTable

public void setTable(DbfTableModel dtm)
Set the DbfTableModel in the AppObject of this list that holds the attribute information about this list's objects.


getTable

public DbfTableModel getTable()
Get the DbfTableModel object from the AppObject of this list.


createTable

public void createTable()
Create a generic DbfTableModel for the contents of this list, where the attributes hold rendering properties for the list contents. The table is stored in the AppObject member variable of the list.


getEsriGraphicList

public static EsriGraphicList getEsriGraphicList(java.net.URL shp,
                                                 java.net.URL shx,
                                                 DrawingAttributes drawingAttributes,
                                                 DbfTableModel dbf)
Deprecated. use getGraphicList(URL, DrawingAttributes, DbfTableModel)

Reads the contents of the SHX and SHP files. The SHX file will be read first by utilizing the ShapeIndex.open method. This method will return a list of offsets, which the AbstractSupport.open method will use to iterate through the contents of the SHP file.

Parameters:
shp - The url of the SHP file
shx - The url of the SHX file
drawingAttributes - a DrawingAttributes object containing the rendering parameters you might want on the OMGraphics. The OMGraphic default (black edge, clear fill) will be used if this is null.
dbf - a DbfTableModel, if you want each row of objects from the table (an array), inserted into their associated OMGraphic's appObject. The dbf will be added to the list appObject, so you can ask it questions later. If null, no problem. If the number of records doesn't match the OMGraphic list length, nothing will be done.
Returns:
A new EsriGraphicList, null if there is a problem.

getEsriGraphicList

public static EsriGraphicList getEsriGraphicList(java.net.URL shp,
                                                 DrawingAttributes drawingAttributes,
                                                 DbfTableModel dbf,
                                                 GeoCoordTransformation coordTranslator)
Reads the contents of the SHP files.

Parameters:
shp - The url of the SHP file
drawingAttributes - a DrawingAttributes object containing the rendering parameters you might want on the OMGraphics. The OMGraphic default (black edge, clear fill) will be used if this is null.
dbf - a DbfTableModel. The dbf will be added to the list appObject, so you can ask it questions later. If null, no problem. If the number of records doesn't match the OMGraphic list length, nothing will be done.
coordTranslator - a GeoCoordTransformation to use to convert coordinates to decimal degree lat/lon data.
Returns:
A new EsriGraphicList, null if there is a problem.

getEsriGraphicList

public static EsriGraphicList getEsriGraphicList(java.net.URL shp,
                                                 DrawingAttributes drawingAttributes,
                                                 GeoCoordTransformation coordTranslator)
Reads the contents of the SHP files, including the DBF file, based on the location of the shape file. The dbf will be added to the list appObject, so you can ask it questions later. If null, no problem. If the number of records doesn't match the OMGraphic list length, the dbf information won't be added to the list.

Parameters:
shp - The url of the SHP file
drawingAttributes - a DrawingAttributes object containing the rendering parameters you might want on the OMGraphics. The OMGraphic default (black edge, clear fill) will be used if this is null.
coordTranslator - used to transform coordinates to lat/lon decimal degrees for OpenMap.
Returns:
A new EsriGraphicList, null if there is a problem.

getGraphicsWithValueInColumn

public java.util.List<EsriGraphic> getGraphicsWithValueInColumn(java.lang.Object value,
                                                                java.lang.String columnName)
                                                         throws FormatException
Find EsriGraphics with a certain attribute

Parameters:
value - the value of the desired attribute.
columnName - the columnName in the dbf
Returns:
new List of EsriGraphic shapes with value in column
Throws:
FormatException - thrown if columnName isn't found.

main

public static void main(java.lang.String[] args)


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details