|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
com.bbn.openmap.Layer
com.bbn.openmap.layer.OMGraphicHandlerLayer
com.bbn.openmap.layer.DrawingToolLayer
com.bbn.openmap.layer.editor.EditorLayer
com.bbn.openmap.layer.test.GeoIntersectionLayer
public class GeoIntersectionLayer
This layer demonstrates the use of the com.bbn.openmap.geo package to do intersection calculations in lat/lon space. It allows you to load shape files for sample data sets, and then draw lines, polygons and points on the map to as test cases for intersections on the sample data sets. The ToolPanel will hold controls for choosing what kind of things to draw, and how they should be rendered. The palette for this layer controls the sample data sets, letting you add and remove data files and change their colors.
If you draw a line, polyline or point, the shapes in the data sets that intersect with them will be rendered in the 'select' colors. If you draw a closed polygon with a fill color, the data set shapes inside the polygon will also be selected. The palette has controls for showing the actual points of intersection for paths and their sample data regions. There is also an option to allow mouse clicks on a data set region to create an image over the bounding rectangle for that region, checking the Geo point intersection algorithm against the Java 2D algorithm for the shape in projected pixel space. An all-green image is good, pixels where the algorithms differ will be red.
The properties for this layer are:
geo.class=com.bbn.openmap.layer.test.GeoIntersectionLayer
geo.prettyName=GEO Intersections
geo.editor=com.bbn.openmap.layer.editor.DrawingEditorTool
geo.showAttributes=true
geo.loaders=lines polys points
geo.mouseModes=Gestures
geo.lines.class=com.bbn.openmap.tools.drawing.OMLineLoader
geo.polys.class=com.bbn.openmap.tools.drawing.OMPolyLoader
geo.points.class=com.bbn.openmap.tools.drawing.OMPointLoader
geo.shapeFileList=geocounties geolakes geocountries
geo.geocounties=/data/shape/usa/counties.shp
geo.geolakes=/data/shape/world/lakes.shp
geo.geocountries=/data/shape/world/cntry02/cntry02.shp
# Colors for regular, unselected data shapes
geo.fillColor=FF333399
geo.selectColor=ffff9900
geo.mattingColor=ffff9900
# Colors for data shapes intersected by drawn shapes
geo.selected.fillColor=FFFFFF00
geo.selected.selectColor=ffff9900
geo.selected.mattingColor=ffff9900
| Nested Class Summary | |
|---|---|
static class |
GeoIntersectionLayer.OMLineSegment
|
static class |
GeoIntersectionLayer.OMPolyRegion
|
protected class |
GeoIntersectionLayer.RemoveShapesActionListener
|
| Nested classes/interfaces inherited from class javax.swing.JComponent |
|---|
javax.swing.JComponent.AccessibleJComponent |
| Nested classes/interfaces inherited from class java.awt.Container |
|---|
java.awt.Container.AccessibleAWTContainer |
| Nested classes/interfaces inherited from class java.awt.Component |
|---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
| Field Summary | |
|---|---|
protected boolean |
createPointCheck
|
static boolean |
DEBUG
|
protected OMGraphicList |
drawnList
This list holds the OMGraphics that have been drawn. |
protected OMGraphicList |
fileDataList
This list holds the EsriGraphicLists from the Shape files. |
protected OMGraphicList |
intersectionResultList
This list holds the BoundaryCrossings and the image masks created from Intersection queries. |
static java.lang.String |
PointCheckProperty
|
protected ExtentIndexImpl |
regionIndex
The RegionIndex organizing the Shape OMGraphics for searching. |
static java.lang.String |
SHAPE_CONTROL_ATTRIBUTE
|
static java.lang.String |
SHAPE_FILE_NAME_ATTRIBUTE
|
static java.lang.String |
SHAPE_VISIBILITY_CONTROL_ATTRIBUTE
|
protected DrawingAttributes |
shapeDA
|
protected DrawingAttributes |
shapeDASelected
|
static java.lang.String |
ShapeFileListProperty
|
static java.lang.String |
ShapeFileProperty
|
protected boolean |
showCrossingPoints
|
static java.lang.String |
ShowCrossingPointsProperty
|
| Fields inherited from class com.bbn.openmap.layer.editor.EditorLayer |
|---|
editorTool, EditorToolProperty, elmm, orientation |
| Fields inherited from class com.bbn.openmap.layer.DrawingToolLayer |
|---|
actions, box, dbfFactory, drawingAttributes, drawingTool, DTL_DEBUG, fileName, jcb, omGraphics, proxyMMM, SerializedURLNameProperty, showHints, ShowHintsProperty |
| Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer |
|---|
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, logger, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty |
| Fields inherited from class javax.swing.JComponent |
|---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
| Fields inherited from class java.awt.Component |
|---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| Fields inherited from interface com.bbn.openmap.PropertyConsumer |
|---|
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty |
| Fields inherited from interface java.awt.image.ImageObserver |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
|---|---|
GeoIntersectionLayer()
|
|
| Method Summary | |
|---|---|
void |
addShapeFile(java.io.File shpFile)
Add the data from a shape file to the region list or edge list, depending on the content type. |
void |
addShapeFileFromUser()
Query the user for a shape file, and add the contents to the region list or line list if a valid file is selected. |
protected void |
addToRegionIndex(OMGraphicList omgl,
ExtentIndex regionIndex)
|
protected void |
addToRegionIndex(OMPoly p,
ExtentIndex regionIndex)
|
void |
calculateIntersectionsWithDrawnList()
|
void |
deselect(OMGraphicList omgl)
Designate a list of OMGraphics as de-selected. |
void |
drawingComplete(OMGraphic omg,
OMAction action)
DrawingToolRequestor method. |
OMGraphicList |
getDrawnIntersectorList()
|
protected javax.swing.JPanel |
getFileListControl()
|
java.awt.Component |
getGUI()
Gets the gui controls associated with the layer. |
protected GeoPath |
getPath(OMLine oml)
|
protected GeoPath |
getPath(OMPoly omp)
|
protected GeoPath |
getPathFromOMGraphic(OMGraphic omg)
|
OMGraphic |
getPointIntersectionImage(OMGraphic omg)
|
ExtentIndex |
getRegionIndex(boolean resetRegionSelection)
|
DrawingAttributes |
getShapeDA()
|
DrawingAttributes |
getShapeDASelected()
|
java.lang.String |
getToolTipTextFor(OMGraphic omg)
Query for what tooltip to display for an OMGraphic when the mouse is over it. |
void |
highlight(OMGraphic omg)
Fleeting change of appearance for mouse movements over an OMGraphic. |
boolean |
isCreatePointCheck()
|
boolean |
isHighlightable(OMGraphic omg)
Query that an OMGraphic can be highlighted when the mouse moves over it. |
boolean |
isSelectable(OMGraphic omg)
Query that an OMGraphic is selectable. |
boolean |
isShowCrossingPoints()
|
static void |
main(java.lang.String[] argv)
|
boolean |
mouseOver(MapMouseEvent mme)
A notification that the mouse cursor has been moved over the map, not over any of the OMGraphics on the GestureResponsePolicy. |
OMGraphicList |
prepare()
This is the main method you should be concerned with when overriding this class. |
void |
propertyChange(java.beans.PropertyChangeEvent evt)
|
void |
rebuildFileListControl()
|
boolean |
receivesMapEvents()
A query from the MapMouseInterpreter wondering if the GestureResponsePolicy wants events pertaining to mouse movements over the map that are not over an OMGraphic. |
void |
runGeoTests(int numIterations,
int numToSkipAtStart)
|
void |
select(OMGraphicList omgl)
GestureResponsePolicy method. |
void |
setCreatePointCheck(boolean createPointCheck)
|
void |
setProperties(java.lang.String prefix,
java.util.Properties props)
Overrides the Layer setProperties method. |
protected void |
setRegionAsSelected(GeoIntersectionLayer.OMPolyRegion ompr)
|
void |
setShapeDA(DrawingAttributes shapeDA)
|
void |
setShapeDASelected(DrawingAttributes shapeDASelected)
|
protected void |
setShapeListVisibilityForCheckbox()
|
void |
setShowCrossingPoints(boolean showCrossingPoints)
|
void |
unhighlight(OMGraphic omg)
Notification to set OMGraphic to normal appearance. |
| Methods inherited from class com.bbn.openmap.layer.editor.EditorLayer |
|---|
creatingOMGraphic, dispose, findAndInit, findAndUndo, getEditorTool, getFace, getKey, getMouseEventInterpreter, getMouseMode, getMouseModeIDsForEvents, getOrientation, setEditorTool, setKey, setMouseModeIDsForEvents, setName, setOrientation, setVisible |
| Methods inherited from class com.bbn.openmap.layer.DrawingToolLayer |
|---|
doIt, edit, getActions, getDbfFactory, getDrawingAttributes, getDrawingTool, getFileName, getInfoText, getOMGraphics, getProperties, getPropertyInfo, getProxyMouseMode, getShowHints, load, releaseProxyMouseMode, saveOMGraphics, setDbfFactory, setDrawingAttributes, setDrawingTool, setFileName, setOMGraphics, setProxyMouseMode, setShowHints, shouldEdit |
| Methods inherited from class javax.swing.JComponent |
|---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI |
| Methods inherited from class java.awt.Container |
|---|
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
| Methods inherited from class java.awt.Component |
|---|
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface com.bbn.openmap.tools.drawing.DrawingToolRequestor |
|---|
getName |
| Methods inherited from interface java.beans.beancontext.BeanContextChild |
|---|
addPropertyChangeListener, removePropertyChangeListener |
| Field Detail |
|---|
protected OMGraphicList drawnList
protected OMGraphicList fileDataList
protected OMGraphicList intersectionResultList
protected ExtentIndexImpl regionIndex
protected DrawingAttributes shapeDA
protected DrawingAttributes shapeDASelected
public static final java.lang.String ShapeFileListProperty
public static final java.lang.String ShapeFileProperty
public static final java.lang.String ShowCrossingPointsProperty
public static final java.lang.String PointCheckProperty
public static final java.lang.String SHAPE_FILE_NAME_ATTRIBUTE
public static final java.lang.String SHAPE_VISIBILITY_CONTROL_ATTRIBUTE
public static final java.lang.String SHAPE_CONTROL_ATTRIBUTE
protected boolean showCrossingPoints
protected boolean createPointCheck
public static boolean DEBUG
| Constructor Detail |
|---|
public GeoIntersectionLayer()
| Method Detail |
|---|
public void setProperties(java.lang.String prefix,
java.util.Properties props)
OMGraphicHandlerLayer
setProperties in interface PropertyConsumersetProperties in class EditorLayerprefix - the token to prefix the property namesprops - the Properties objectpublic OMGraphicList prepare()
OMGraphicHandlerLayerThis method will be called in a separate thread if doPrepare() is called on the layer. This will automatically cause repaint() to be called, which lets java know to call paint() on this class.
Note that the default action of this method is to get the OMGraphicList as it is currently set in the layer, re-projects the list with the current projection (calls generate() on them), and then returns the current list.
If your layer needs to change what is on the list based on what the current projection is, you can either clear() the list yourself and add new OMGraphics to it (remember to call generate(Projection) on them), and return the list. You also have the option of setting a ListResetPCPolicy, which will automatically set the list to null when the projection changes before calling this method. The OMGraphicHandlerList will ignore a null OMGraphicList.
NOTE: If you call prepare directly, you may need to call repaint(), too. With all invocations of this method that are cause by a projection change, repaint() will be called for you. The method is synchronized in case renderDataForProjection() gets called while in the middle of this method. For a different projection, that would be bad.
prepare in class DrawingToolLayerpublic void calculateIntersectionsWithDrawnList()
protected void setRegionAsSelected(GeoIntersectionLayer.OMPolyRegion ompr)
protected GeoPath getPathFromOMGraphic(OMGraphic omg)
protected GeoPath getPath(OMLine oml)
protected GeoPath getPath(OMPoly omp)
public void addShapeFileFromUser()
public void addShapeFile(java.io.File shpFile)
shpFile - protected void setShapeListVisibilityForCheckbox()
public ExtentIndex getRegionIndex(boolean resetRegionSelection)
protected void addToRegionIndex(OMPoly p,
ExtentIndex regionIndex)
protected void addToRegionIndex(OMGraphicList omgl,
ExtentIndex regionIndex)
public void drawingComplete(OMGraphic omg,
OMAction action)
EditorLayer
drawingComplete in interface DrawingToolRequestordrawingComplete in class EditorLayerpublic OMGraphicList getDrawnIntersectorList()
public boolean receivesMapEvents()
OMGraphicHandlerLayer
receivesMapEvents in interface GestureResponsePolicyreceivesMapEvents in class OMGraphicHandlerLayerpublic boolean mouseOver(MapMouseEvent mme)
OMGraphicHandlerLayer
mouseOver in interface GestureResponsePolicymouseOver in class OMGraphicHandlerLayermme - MapMouseEvent describing the location of the mouse.
public boolean isHighlightable(OMGraphic omg)
DrawingToolLayer
isHighlightable in interface GestureResponsePolicyisHighlightable in class DrawingToolLayerpublic java.lang.String getToolTipTextFor(OMGraphic omg)
DrawingToolLayer
getToolTipTextFor in interface GestureResponsePolicygetToolTipTextFor in class DrawingToolLayerpublic void highlight(OMGraphic omg)
OMGraphicHandlerLayer
highlight in interface GestureResponsePolicyhighlight in class OMGraphicHandlerLayerpublic void unhighlight(OMGraphic omg)
OMGraphicHandlerLayer
unhighlight in interface GestureResponsePolicyunhighlight in class OMGraphicHandlerLayerpublic boolean isSelectable(OMGraphic omg)
DrawingToolLayer
isSelectable in interface GestureResponsePolicyisSelectable in class DrawingToolLayerpublic void select(OMGraphicList omgl)
DrawingToolLayer
select in interface GestureResponsePolicyselect in class DrawingToolLayerpublic void deselect(OMGraphicList omgl)
OMGraphicHandlerLayer
deselect in interface GestureResponsePolicydeselect in class OMGraphicHandlerLayerpublic OMGraphic getPointIntersectionImage(OMGraphic omg)
protected javax.swing.JPanel getFileListControl()
public void rebuildFileListControl()
public java.awt.Component getGUI()
Layer
getGUI in class DrawingToolLayerpublic boolean isShowCrossingPoints()
public void setShowCrossingPoints(boolean showCrossingPoints)
public void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange in interface java.beans.PropertyChangeListenerpublic DrawingAttributes getShapeDA()
public void setShapeDA(DrawingAttributes shapeDA)
public DrawingAttributes getShapeDASelected()
public void setShapeDASelected(DrawingAttributes shapeDASelected)
public boolean isCreatePointCheck()
public void setCreatePointCheck(boolean createPointCheck)
public void runGeoTests(int numIterations,
int numToSkipAtStart)
public static void main(java.lang.String[] argv)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||