com.bbn.openmap.layer.vpf
Class VPFFeatureGraphicWarehouse

java.lang.Object
  extended by com.bbn.openmap.layer.vpf.LayerGraphicWarehouseSupport
      extended by com.bbn.openmap.layer.vpf.VPFLayerGraphicWarehouse
          extended by com.bbn.openmap.layer.vpf.VPFFeatureGraphicWarehouse
All Implemented Interfaces:
VPFFeatureWarehouse, VPFGraphicWarehouse, VPFWarehouse
Direct Known Subclasses:
VPFCachedFeatureGraphicWarehouse

public class VPFFeatureGraphicWarehouse
extends VPFLayerGraphicWarehouse
implements VPFFeatureWarehouse

Implement a graphic factory that builds OMGraphics. It's different in that it expects that the feature type has already been checked at the CoverageTable level, and should just build whatever graphic is sent to it. Called from within CoverageTable.drawFeatures().

See Also:
OMGraphic

Field Summary
static java.lang.String DEFAULT
           
protected  java.util.Hashtable<java.lang.String,DrawingAttributes> featureDrawingAttributes
           
protected  java.lang.String info
           
 
Fields inherited from class com.bbn.openmap.layer.vpf.LayerGraphicWarehouseSupport
antarcticaThreshold, areaSubList, drawingAttributes, edgeSubList, graphics, logger, pointSubList, textSubList
 
Constructor Summary
VPFFeatureGraphicWarehouse()
           
 
Method Summary
 OMGraphic createArea(CoverageTable covtable, AreaTable areatable, java.util.List<java.lang.Object> facevec, LatLonPoint ll1, LatLonPoint ll2, double dpplat, double dpplon, java.lang.String featureType, int primID)
           
 OMGraphic createEdge(CoverageTable c, EdgeTable edgetable, java.util.List<java.lang.Object> edgevec, LatLonPoint ll1, LatLonPoint ll2, double dpplat, double dpplon, CoordFloatString coords, java.lang.String featureType, int primID)
           
 void createFeatureDrawingAttributes(java.lang.String prefix, java.util.Properties props, java.util.List<java.lang.String> features)
          From the initial properties, create the hashtable that holds the DrawingAttributes object for each feature type.
 OMGraphic createNode(CoverageTable c, NodeTable t, java.util.List<java.lang.Object> nodeprim, double latitude, double longitude, boolean isEntityNode, java.lang.String featureType, int primID)
          Method called by the VPF reader code to construct a node feature.
 OMGraphic createText(CoverageTable c, TextTable texttable, java.util.List<java.lang.Object> textvec, double latitude, double longitude, java.lang.String text, java.lang.String featureType, int primID)
           
 FeatureDrawingAttributes getAttributesForFeature(java.lang.String featureType)
          Given a feature type, get the DrawingAttributes for that feature.
 java.util.Hashtable<java.lang.String,DrawingAttributes> getFeatureDrawingAttributes()
          Get the Hashtable used for the feature DrawingAttributes lookup.
 java.awt.Component getGUI(LibrarySelectionTable lst)
          Return the GUI for certain warehouse attributes.
protected  void initDrawingAttributes()
          Called from super class constructor.
static void main(java.lang.String[] argv)
           
 boolean needToFetchTileContents(java.lang.String libraryName, java.lang.String currentFeature, TileDirectory currentTile)
           
protected  void setAttributesForFeature(OMGraphic omg, CoverageTable c, java.lang.String featureType, int id)
           
 void setFeatureDrawingAttributes(java.util.Hashtable<java.lang.String,DrawingAttributes> attributes)
          Don't do this lightly, or everything will be colored the default value.
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Set properties of the warehouse.
 
Methods inherited from class com.bbn.openmap.layer.vpf.VPFLayerGraphicWarehouse
createArea, createEdge, createFeature, createNode, createText, getFeatures, getSkipArray, resetForCAT
 
Methods inherited from class com.bbn.openmap.layer.vpf.LayerGraphicWarehouseSupport
addArea, addEdge, addPoint, addText, checkLibraryForUsage, clear, createAreaOMPoly, createEdgeOMPoly, createOMPoint, createOMText, doThinning, drawAreaFeatures, drawCPointFeatures, drawEdgeFeatures, drawEPointFeatures, drawTextFeatures, getDrawingAttributes, getFanEpsilon, getFeatureString, getGraphics, getGraphics, getProperties, getUseLibraries, isDoThinning, setAreaFeatures, setCPointFeatures, setDoThinning, setDrawingAttributes, setEdgeFeatures, setEPointFeatures, setFanEpsilon, setFeatures, setTextFeatures, setUseLibraries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.layer.vpf.VPFWarehouse
checkLibraryForUsage, drawAreaFeatures, drawCPointFeatures, drawEdgeFeatures, drawEPointFeatures, drawTextFeatures, getFeatures, getUseLibraries, resetForCAT, setUseLibraries
 

Field Detail

DEFAULT

public static final java.lang.String DEFAULT
See Also:
Constant Field Values

featureDrawingAttributes

protected java.util.Hashtable<java.lang.String,DrawingAttributes> featureDrawingAttributes

info

protected java.lang.String info
Constructor Detail

VPFFeatureGraphicWarehouse

public VPFFeatureGraphicWarehouse()
Method Detail

initDrawingAttributes

protected void initDrawingAttributes()
Called from super class constructor.

Overrides:
initDrawingAttributes in class LayerGraphicWarehouseSupport

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Set properties of the warehouse.

Overrides:
setProperties in class VPFLayerGraphicWarehouse
Parameters:
prefix - the prefix to use for looking up properties.
props - the properties file to look at.

createFeatureDrawingAttributes

public void createFeatureDrawingAttributes(java.lang.String prefix,
                                           java.util.Properties props,
                                           java.util.List<java.lang.String> features)
From the initial properties, create the hashtable that holds the DrawingAttributes object for each feature type. The feature name is the key to the drawing attributes for that feature (roadl).

Parameters:
prefix - the prefix used for the properties
props - the properties object
features - a List of Strings, each representing a feature type that when appended to the prefix, will serve as a prefix for the drawing attributes settings for that feature. With a layer prefix of vmapRoads, and a feature type of roadl, the line color attribute property looked for will be vmapRoads.roadl.lineColor.

setFeatureDrawingAttributes

public void setFeatureDrawingAttributes(java.util.Hashtable<java.lang.String,DrawingAttributes> attributes)
Don't do this lightly, or everything will be colored the default value. The keys to the Hashtable should be the feature type names, and the values should be the DrawingAttributes for that feature.


getFeatureDrawingAttributes

public java.util.Hashtable<java.lang.String,DrawingAttributes> getFeatureDrawingAttributes()
Get the Hashtable used for the feature DrawingAttributes lookup.


getGUI

public java.awt.Component getGUI(LibrarySelectionTable lst)
Return the GUI for certain warehouse attributes. By default, return the GUI for the DrawingAttributes object being used for rendering attributes of the graphics.

Specified by:
getGUI in interface VPFWarehouse
Overrides:
getGUI in class LayerGraphicWarehouseSupport
Parameters:
lst - LibrarySelectionTable to use to get information about the data, if needed.

getAttributesForFeature

public FeatureDrawingAttributes getAttributesForFeature(java.lang.String featureType)
Given a feature type, get the DrawingAttributes for that feature. Should be very unlikely to get a null value back.


createArea

public OMGraphic createArea(CoverageTable covtable,
                            AreaTable areatable,
                            java.util.List<java.lang.Object> facevec,
                            LatLonPoint ll1,
                            LatLonPoint ll2,
                            double dpplat,
                            double dpplon,
                            java.lang.String featureType,
                            int primID)
Specified by:
createArea in interface VPFFeatureWarehouse

createEdge

public OMGraphic createEdge(CoverageTable c,
                            EdgeTable edgetable,
                            java.util.List<java.lang.Object> edgevec,
                            LatLonPoint ll1,
                            LatLonPoint ll2,
                            double dpplat,
                            double dpplon,
                            CoordFloatString coords,
                            java.lang.String featureType,
                            int primID)
Specified by:
createEdge in interface VPFFeatureWarehouse

setAttributesForFeature

protected void setAttributesForFeature(OMGraphic omg,
                                       CoverageTable c,
                                       java.lang.String featureType,
                                       int id)
Parameters:
omg - The OMGraphic owning the attributes.
c - the CoverageTable for the feature.
featureType - the type of Feature.
id - ID of the OMGraphic.

createText

public OMGraphic createText(CoverageTable c,
                            TextTable texttable,
                            java.util.List<java.lang.Object> textvec,
                            double latitude,
                            double longitude,
                            java.lang.String text,
                            java.lang.String featureType,
                            int primID)
Specified by:
createText in interface VPFFeatureWarehouse

createNode

public OMGraphic createNode(CoverageTable c,
                            NodeTable t,
                            java.util.List<java.lang.Object> nodeprim,
                            double latitude,
                            double longitude,
                            boolean isEntityNode,
                            java.lang.String featureType,
                            int primID)
Method called by the VPF reader code to construct a node feature.

Specified by:
createNode in interface VPFFeatureWarehouse

needToFetchTileContents

public boolean needToFetchTileContents(java.lang.String libraryName,
                                       java.lang.String currentFeature,
                                       TileDirectory currentTile)
Specified by:
needToFetchTileContents in interface VPFFeatureWarehouse

main

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


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