## com.bbn.openmap.layer.shape
Class MultiRoadLayer

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--com.bbn.openmap.Layer
                              |
                              +--com.bbn.openmap.layer.OMGraphicHandlerLayer
                                    |
                                    +--com.bbn.openmap.layer.shape.ShapeLayer
                                          |
                                          +--com.bbn.openmap.layer.shape.MultiShapeLayer
                                                |
                                                +--com.bbn.openmap.layer.shape.MultiRoadLayer

All Implemented Interfaces:
  java.awt.event.ActionListener, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, DataBoundsProvider, java.util.EventListener, GestureResponsePolicy, java.awt.image.ImageObserver, LayerView, java.awt.MenuContainer, ProjectionListener, ProjectionPainter, PropertyConsumer, RoadServices, java.io.Serializable

public class MultiRoadLayer
extends MultiShapeLayer
implements RoadServices, ProjectionListener, LayerView

Imposes a road layer on the multi shape layer. The important method here is getPathOnRoad(implemented for the RoadServices interface) which returns a list of points on the road found between a start and an end point. You can see more about what the road layer is doing by setting drawIntersections to true, which will reveal what the road finder thinks are roads on the road layer, and drawResults to true, which will show each road path request and its result. The results shown accumulate over time.

See Also:
  `com.bbn.openmap.tools.road.RoadServices`, Serialized Form

Field Summary
`static java.lang.String` `DrawIntersectionsProperty` Property 'drawIntersections' will display the intersections on the road layer False by default.
`static java.lang.String` `DrawResultsProperty` Property 'drawResults' will display the results of each road request on the road layer False by default.

Fields inherited from class com.bbn.openmap.layer.shape.MultiShapeLayer
`ShapeFileListProperty, spatialIndexes`

Fields inherited from class com.bbn.openmap.layer.shape.ShapeLayer
`box, drawingAttributes, pointImageURLProperty, shadowX, shadowXProperty, shadowY, shadowYProperty, shapeFileProperty, spatialIndex, spatialIndexProperty`

Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
`cancelled, CANCELLED_LOCK, consumeEvents, ConsumeEventsProperty, filter, layerWorker, LAYERWORKER_LOCK, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList`

Fields inherited from class com.bbn.openmap.Layer

`addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, autoPalette, AutoPaletteProperty, beanContextChildSupport, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, IDListeners, localHackList, lsListeners, palette, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, RemoveableProperty, SWING_PACKAGE, windowSupport`

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
`MultiRoadLayer()`

Method Summary
`java.util.List` `getGraphicList()` Flattens nested OMGraphicLists of lists into one level list of OMGraphic items.
`java.util.List` `getPathOnRoad(java.awt.Point start, java.awt.Point end, java.util.List segments)` Get points on the road between start and end Implemented for the RoadService interface
`void` `paint(java.awt.Graphics g)` If drawIntersections or drawResults is true, will add intersection markers or returned road lines to what is rendered.
`void` `projectionChanged(ProjectionEvent e)` Implemented for ProjectionListener
`protected void` `setDrawIntersections(boolean val)`
`protected void` `setDrawResults(boolean val)`
`void` `setExtraGraphics(java.util.List toDraw)` Called from RoadFinder to tell it what extra to render (e.g.
`protected void` `setHelper()`
`void` `setProperties(java.lang.String prefix, java.util.Properties props)` Initializes this layer from the given properties.

Methods inherited from class com.bbn.openmap.layer.shape.MultiShapeLayer
`getDataBounds, getGUI, getProperties, getPropertyInfo, getSpatialIndexes, prepare, setFileProperties, setSpatialIndexes, setSpatialIndexes`

Methods inherited from class com.bbn.openmap.layer.shape.ShapeLayer
`actionPerformed, computeGraphics, getDrawingAttributes, getSpatialIndex, setDrawingAttributes, setSpatialIndex`

Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer

`canSetList, copy, cut, deselect, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getFilter, getInfoText, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getRenderPolicy, getSelected, getToolTipTextFor, highlight, interrupt, isCancelled, isHighlightable, isSelectable, isWorking, leftClick, mouseOver, paste, receivesMapEvents, renderDataForProjection, resetFiltering, select, setCancelled, setConsumeEvents, setFilter, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, supportsSQL, unhighlight, workerComplete`

Methods inherited from class com.bbn.openmap.Layer

`addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, finalize, findAndInit, findAndInit, findAndUndo, fireHideToolTip, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getBeanContext, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hidePalette, isRemovable, isRemoveable, notifyHideHack, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setBeanContext, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setRemovable, setRemoveable, setVisible, setWindowSupport, showPalette`

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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.roads.LayerView
`getProjection`

Methods inherited from interface com.bbn.openmap.util.DataBoundsProvider
`getName`

Methods inherited from interface java.beans.beancontext.BeanContextChild
`addPropertyChangeListener, removePropertyChangeListener`

Field Detail

### DrawIntersectionsProperty

    public static final java.lang.String DrawIntersectionsProperty

  Property 'drawIntersections' will display the intersections on the road layer False by default.

  See Also:
    Constant Field Values

### DrawResultsProperty

    public static final java.lang.String DrawResultsProperty

  Property 'drawResults' will display the results of each road request on the road layer False by default.

  See Also:
    Constant Field Values

Constructor Detail

### MultiRoadLayer

    public MultiRoadLayer()

Method Detail

### setProperties

    public void setProperties(java.lang.String prefix,
                              java.util.Properties props)

  Description copied from class: `ShapeLayer`
  Initializes this layer from the given properties.

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Overrides:
    `setProperties` in class `ShapeLayer`
  Parameters:
    `props` - the `Properties` holding settings for this layer

### setDrawIntersections

    protected void setDrawIntersections(boolean val)

### setDrawResults

    protected void setDrawResults(boolean val)

### setHelper

    protected void setHelper()

### getPathOnRoad

    public java.util.List getPathOnRoad(java.awt.Point start,
                                        java.awt.Point end,
                                        java.util.List segments)

  Get points on the road between start and end Implemented for the RoadService interface

  Specified by:
    `getPathOnRoad` in interface `RoadServices`
  Parameters:
    `start` - from here
    `end` - to there
    `segments` - populated with road segments
  Returns:
    list of points on path

### projectionChanged

    public void projectionChanged(ProjectionEvent e)

  Implemented for ProjectionListener

  Specified by:
    `projectionChanged` in interface `ProjectionListener`
  Overrides:
    `projectionChanged` in class `OMGraphicHandlerLayer`
  Parameters:
    `e` - ProjectionEvent

### getGraphicList

    public java.util.List getGraphicList()

  Flattens nested OMGraphicLists of lists into one level list of OMGraphic items. Gets the original list of graphics items from getList.

  Specified by:
    `getGraphicList` in interface `LayerView`
  Returns:
    List of OMGraphic items that will be used to create roads

### setExtraGraphics

    public void setExtraGraphics(java.util.List toDraw)

  Called from RoadFinder to tell it what extra to render (e.g. intersections, roads).

  Specified by:
    `setExtraGraphics` in interface `LayerView`

### paint

    public void paint(java.awt.Graphics g)

  If drawIntersections or drawResults is true, will add intersection markers or returned road lines to what is rendered.

  Overrides:
    `paint` in class `ShapeLayer`
  Parameters:
    `g` - a graphics context

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