com.bbn.openmap.dataAccess.shape
Class DbfHandler

java.lang.Object
  extended by com.bbn.openmap.MapHandlerChild
      extended by com.bbn.openmap.OMComponent
          extended by com.bbn.openmap.omGraphics.rule.RuleHandler<java.util.List>
              extended by com.bbn.openmap.dataAccess.shape.DbfHandler
All Implemented Interfaces:
LightMapHandlerChild, PropertyConsumer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.util.EventListener

public class DbfHandler
extends RuleHandler<java.util.List>

The DbfHandler manages OMGraphics based on DBF file settings. It uses Rules to evaluate DBF record information for each OMGraphic that is given to it, and can set rendering settings, labels, visibility and information text based on those rules. If rules aren't defined, then the dbf file won't be read for each entry and any evaluation attempt will just return the OMGraphic as it was provided.

Properties as an example used within the ShapeLayer:

 
 neroads.class=com.bbn.openmap.layer.shape.ShapeLayer
 neroads.prettyName=Roads
 neroads.shapeFile=roads.shp
 neroads.mouseModes=Gestures
 # Rule marker names specified in space-separated list
 neroads.rules=rule0 rule1
 # global scale settings can be used so work is only performed within scale range of minScale/maxScale
 neroads.maxScale=1000000f
 
 # rule0 definition:
 # CLASS_RTE is a DBF column name
 neroads.rule0.key=CLASS_RTE
 # operation, if key value is less than 2
 neroads.rule0.op=lt
 neroads.rule0.val=2
 # If rule is met, then actions can be performed:
 # Column names can be added together in a label by specifying them in a space-separated list
 neroads.rule0.label=PREFIX PRETYPE NAME TYPE SUFFIX
 # Labels can have scale limits imposed, so they don't appear if map scale is 
 # greater than maxScale or less than minScale
 neroads.rule0.label.maxScale=1000000
 # Visibility can be controlled with respect to scale as well
 neroads.rule0.render=true
 neroads.rule0.render.maxScale=1000000
 # Rendering attributes can be specified.
 neroads.rule0.lineColor=FFFA73
 neroads.rule0.lineWidth=4
 neroads.rule0.mattingColor=55AAAAAA
 
 # rule1 definition:
 neroads.rule1.key=CLASS_RTE
 neroads.rule1.op=all
 neroads.rule1.label=PREFIX PRETYPE NAME TYPE SUFFIX
 neroads.rule1.label.maxScale=200000
 neroads.rule1.render=true
 neroads.rule1.render.maxScale=500000
 neroads.rule1.lineColor=FFFFFF
 neroads.rule1.lineWidth=3
 neroads.rule1.mattingColor=55AAAAAA
 
 

Author:
dietrick

Nested Class Summary
 class DbfHandler.DbfRule
           
 
Field Summary
protected  DbfFile dbf
           
protected  DrawingAttributes defaultDA
           
protected  java.util.List<Rule> rules
           
 
Fields inherited from class com.bbn.openmap.omGraphics.rule.RuleHandler
lastLabel
 
Fields inherited from class com.bbn.openmap.OMComponent
i18n, propertyPrefix
 
Fields inherited from class com.bbn.openmap.MapHandlerChild
beanContextChildSupport, isolated
 
Fields inherited from interface com.bbn.openmap.PropertyConsumer
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
 
Constructor Summary
protected DbfHandler()
           
  DbfHandler(BinaryFile bf)
           
  DbfHandler(java.lang.String dbfFilePath)
           
 
Method Summary
 void close()
          Tells the DbfFile to close the file pointer to the data.
 Rule createRule()
          Create a Rule object that knows how to interpret properties to create the proper indices into the record List.
 DbfFile getDbf()
           
 DrawingAttributes getDefaultDA()
           
 java.util.Properties getProperties(java.util.Properties props)
          PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent.
 java.util.List getRecordDataForOMGraphic(OMGraphic omg)
          Return a record Map for a particular OMGraphic, like a properties table.
 void setDbf(DbfFile dbf)
           
 void setDefaultDA(DrawingAttributes defaultDA)
           
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Sets the properties for the OMComponent.
 
Methods inherited from class com.bbn.openmap.omGraphics.rule.RuleHandler
addRule, clearRules, evaluate, getRules, removeRule, setRules
 
Methods inherited from class com.bbn.openmap.OMComponent
getPropertyInfo, getPropertyPrefix, setProperties, setPropertyPrefix
 
Methods inherited from class com.bbn.openmap.MapHandlerChild
addPropertyChangeListener, addVetoableChangeListener, childrenAdded, childrenRemoved, findAndInit, findAndInit, findAndUndo, firePropertyChange, fireVetoableChange, getBeanContext, isIsolated, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext, setIsolated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dbf

protected DbfFile dbf

rules

protected java.util.List<Rule> rules

defaultDA

protected DrawingAttributes defaultDA
Constructor Detail

DbfHandler

protected DbfHandler()

DbfHandler

public DbfHandler(java.lang.String dbfFilePath)
           throws java.io.IOException,
                  FormatException
Throws:
java.io.IOException
FormatException

DbfHandler

public DbfHandler(BinaryFile bf)
           throws java.io.IOException,
                  FormatException
Throws:
java.io.IOException
FormatException
Method Detail

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Description copied from class: OMComponent
Sets the properties for the OMComponent.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class RuleHandler<java.util.List>
Parameters:
prefix - the token to prefix the property names
props - the Properties object

getProperties

public java.util.Properties getProperties(java.util.Properties props)
Description copied from class: OMComponent
PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent. If the component has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each property key it uses for configuration.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class RuleHandler<java.util.List>
Parameters:
props - a Properties object to load the PropertyConsumer properties into. If props equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

getDbf

public DbfFile getDbf()

setDbf

public void setDbf(DbfFile dbf)

getDefaultDA

public DrawingAttributes getDefaultDA()

setDefaultDA

public void setDefaultDA(DrawingAttributes defaultDA)

close

public void close()
Tells the DbfFile to close the file pointer to the data. Will reopen if needed.


createRule

public Rule createRule()
Description copied from class: RuleHandler
Create a Rule object that knows how to interpret properties to create the proper indices into the record List.

Specified by:
createRule in class RuleHandler<java.util.List>

getRecordDataForOMGraphic

public java.util.List getRecordDataForOMGraphic(OMGraphic omg)
Description copied from class: RuleHandler
Return a record Map for a particular OMGraphic, like a properties table.

Specified by:
getRecordDataForOMGraphic in class RuleHandler<java.util.List>
Parameters:
omg - OMGraphic being queried
Returns:
Map of objects as attributes for the OMGraphic.


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