## com.bbn.openmap.layer.imageTile
Class ImageTileLayer

    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.imageTile.ImageTileLayer

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

public class ImageTileLayer
extends OMGraphicHandlerLayer

The ImageTileLayer is a layer that manages georeferenced images over a map. The layer uses ImageReaders to figure out how to load images from a file, create an ImageTile object from the image data, and deduce where the ImageTile should be located from the information provided with/in the image data.

ImageReaderLoader objects are held by the layer to assist in finding the appropriate ImageReader for an image file.

The properties for this layer are:

     # semi-colon separated paths to image files or directories containing images
     imageTileLayer.imageFilePath=path/to/file1;path/to/directory;path/to/file2

     # optional - image cache size specifies how many images will be held in memory for fast retrieval.
     imageTileLayer.imageCacheSize=20

     # optional - image cutoff scale specifies the scale that images will not load when the projection is zoomed out from it.
     imageTileLayer.imageCutoffScale=1000000

     # optional - image Reader loaders specify which image files are handled
     imageTileLayer.iamgeReaderLoaders=geotiff
     imageTileLayer.geotiff=com.bbn.openmap.dataAccess.image.geotiff.GeoTIFFImageReader.Loader

     # optional - Drawing attributes properties for image highlighting
     imageTileLayer.lineWidth=2
     imageTileLayer.selectColor=FFFFFF00

Author:
  dietrick
See Also:
  Serialized Form

Nested Class Summary
`static class` `ImageTileLayer.ImageListCellRenderer` Renders the JList cells.

Nested classes inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`static int` `buttonSize`
`static java.lang.String` `FILE_PATH_ATTRIBUTE`
`protected java.util.Vector` `filePaths`
`protected java.lang.String` `HIDE_TILES_TITLE`
`protected ImageTile.Cache` `imageCache`
`static java.lang.String` `ImageCacheSizeProperty`
`static java.lang.String` `ImageCutoffRatioProperty`
`static java.lang.String` `ImageFilePathProperty`
`protected java.util.Vector` `imageReaderLoaders`
`static java.lang.String` `ImageReaderLoadersProperty`
`static javax.swing.ImageIcon` `invisibleImage`
`protected javax.swing.JPanel` `itPanel`
`protected com.bbn.openmap.layer.imageTile.ImageTileLayer.ListManager` `listManager`
`protected javax.swing.DefaultListModel` `listModel`
`static java.util.logging.Logger` `logger`
`protected MapBean` `mapBean` MapBean is used to reset the projection of the map over the selected images.
`static java.lang.String` `NAME_ATTRIBUTE`
`protected javax.swing.JList` `resultsList`
`protected DrawingAttributes` `selectedDrawingAttributes`
`protected ImageTile[]` `selectedTiles` The ImageTiles currently selected on the list in the GUI.
`protected java.lang.String` `SHOW_TILES_TITLE`
`static javax.swing.ImageIcon` `warningImage`

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

Fields inherited from class com.bbn.openmap.Layer

`addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, attributes, autoPalette, AutoPaletteProperty, beanContextChildSupport, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, IDListeners, localHackList, lsListeners, maxScale, MaxScaleProperty, minScale, MinScaleProperty, palette, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, 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
`ImageTileLayer()` Default constructor for layer, initializes tile cache.

Method Summary
`protected void` `addImageTileToList(ImageTile tile)` Add an ImageTile to the list model.
`protected void` `addImageToLists(ImageTile imageTile, OMGraphicList ret, java.net.URL fileURL)` A method to handle a newly created ImageTile object from the loadImage method.
`protected void` `addNewImagesWithFileChooser()` Asks the user to choose a new file or directory to load.
`protected boolean` `areAllTilesDefective(ImageTile[] sTiles)`
`void` `checkShowHideStatus()` Checks the selected tiles from the visible list and tallies their visibility.
`protected void` `clearImageTileList()` Clear the list model.
`protected void` `configureImageReaderLoaders()` Internal callback method for subclasses to use to be able to configure imageReaderLoader Vector with specific ImageReaderLoaders.
`void` `deselect()` Un-highlight all of the tiles.
`java.awt.Component` `getGUI()` Gets the gui controls associated with the layer.
`protected javax.swing.ListModel` `getListModel()` The ListModel used by the JList, displaying the images.
`java.util.Properties` `getProperties(java.util.Properties props)` PropertyConsumer interface method.
`java.util.Properties` `getPropertyInfo(java.util.Properties props)` PropertyConsumer interface method.
`protected int` `getResultListIndex(java.awt.event.MouseEvent e)` find out which list object was moused.
`protected double` `getResultsListCellHeight()` Get the pixel height of each cell in the JList.
`protected ImageTile[]` `getSelectedTiles()`
`protected void` `goTo(ImageTile[] selectedTiles2)` Figure out where the images are and move the MapBean over them.
`protected static void` `initIcons()`
`protected void` `loadImage(java.lang.String filePath, OMGraphicList ret)` If filePath is a file, the ImageReaderLoaders are used to try to load and place the image.
`protected OMGraphicList` `loadImages()` Gets the filePaths and loads the images found in those places.
`protected void` `moveOneSlotToBottom(ImageTile[] selectedTiles2)` Move all the selected tiles down one space.
`protected void` `moveOneSlotToTop(ImageTile[] selectedTiles2)` Move all of the selected tiles up one space.
`protected void` `moveToBottom(ImageTile[] selectedTiles2)` Move all of the selected tiles to the bottom of the stack.
`protected void` `moveToTop(ImageTile[] selectedTiles2)` Move all of the selected tiles to the top of the stack.
`OMGraphicList` `prepare()` OMGraphicHandlerLayer method called when projection changes or when doPrepare() is called.
`protected void` `rebuildListModel()` Rebuild the list model contents based on the ImageTiles contained on the OMGraphicList.
`protected void` `removeImages(ImageTile[] selectedTiles2)` Remove the selected tiles from the image stack.
`protected boolean` `removeImageTileFromList(ImageTile tile)` Remove an ImageTile from the ListModel.
`void` `resetSelectAttributes()` Take the drawing attributes held by the layer and push the settings on all of the ImageTiles.
`protected void` `select(ImageTile[] selectedTiles2)` Note the provided tiles as being highlighted.
`protected void` `setGUIButtonEnableState(boolean somethingSelected)` Set the GUI button state to be enabled or not based on something on the list being selected.
`void` `setProperties(java.lang.String prefix, java.util.Properties props)` PropertyConsumer interface method.
`protected void` `setSelectedTiles(ImageTile[] sTiles)` Set the ImageTile[] of tiles currently selected in the GUI.
`protected void` `setSelection(ImageTile[] selectedTiles2, boolean isSelected)` Note the provided tiles as being highlighted or not.
`protected void` `setVisibilityOnAllTiles(boolean visible)` Changes the visibility setting on all ImageTile objects.
`protected void` `showHideTiles(java.lang.String text, ImageTile[] selectedTiles2)` Action method called when the show/hide button is pressed.

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

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

Methods inherited from class com.bbn.openmap.Layer

`actionPerformed, addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, finalize, findAndInit, findAndInit, findAndUndo, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getAttribute, getBeanContext, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isRemovable, notifyHideHack, putAttribute, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setIcon, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setRemovable, 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 java.beans.beancontext.BeanContextChild
`addPropertyChangeListener, removePropertyChangeListener`

Field Detail

### logger

    public static java.util.logging.Logger logger

### ImageFilePathProperty

    public static final java.lang.String ImageFilePathProperty

See Also:
  Constant Field Values

### ImageReaderLoadersProperty

    public static final java.lang.String ImageReaderLoadersProperty

See Also:
  Constant Field Values

### ImageCacheSizeProperty

    public static final java.lang.String ImageCacheSizeProperty

See Also:
  Constant Field Values

### ImageCutoffRatioProperty

    public static final java.lang.String ImageCutoffRatioProperty

See Also:
  Constant Field Values

### SHOW_TILES_TITLE

    protected java.lang.String SHOW_TILES_TITLE

### HIDE_TILES_TITLE

    protected java.lang.String HIDE_TILES_TITLE

### filePaths

    protected java.util.Vector filePaths

### imageReaderLoaders

    protected java.util.Vector imageReaderLoaders

### imageCache

    protected ImageTile.Cache imageCache

### selectedDrawingAttributes

    protected DrawingAttributes selectedDrawingAttributes

### NAME_ATTRIBUTE

    public static final java.lang.String NAME_ATTRIBUTE

See Also:
  Constant Field Values

### FILE_PATH_ATTRIBUTE

    public static final java.lang.String FILE_PATH_ATTRIBUTE

See Also:
  Constant Field Values

### itPanel

    protected javax.swing.JPanel itPanel

### resultsList

    protected javax.swing.JList resultsList

### listModel

    protected javax.swing.DefaultListModel listModel

### listManager

    protected com.bbn.openmap.layer.imageTile.ImageTileLayer.ListManager listManager

### mapBean

    protected MapBean mapBean

  MapBean is used to reset the projection of the map over the selected images.

### selectedTiles

    protected ImageTile[] selectedTiles

  The ImageTiles currently selected on the list in the GUI.

### buttonSize

    public static int buttonSize

### warningImage

    public static javax.swing.ImageIcon warningImage

### invisibleImage

    public static javax.swing.ImageIcon invisibleImage

Constructor Detail

### ImageTileLayer

    public ImageTileLayer()

  Default constructor for layer, initializes tile cache.

Method Detail

### setProperties

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

  PropertyConsumer interface method.

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Overrides:
    `setProperties` in class `OMGraphicHandlerLayer`
  Parameters:
    `prefix` - the token to prefix the property names
    `props` - the `Properties` object

### configureImageReaderLoaders

    protected void configureImageReaderLoaders()

  Internal callback method for subclasses to use to be able to configure imageReaderLoader Vector with specific ImageReaderLoaders. By default, loads GeoTIFFImageReader.Loader.

### getProperties

    public java.util.Properties getProperties(java.util.Properties props)

  PropertyConsumer interface method.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Overrides:
    `getProperties` in class `OMGraphicHandlerLayer`

### getPropertyInfo

    public java.util.Properties getPropertyInfo(java.util.Properties props)

  PropertyConsumer interface method.

  Specified by:
    `getPropertyInfo` in interface `PropertyConsumer`
  Overrides:
    `getPropertyInfo` in class `OMGraphicHandlerLayer`

### prepare

    public OMGraphicList prepare()

  OMGraphicHandlerLayer method called when projection changes or when doPrepare() is called. If the interal OMGraphicList is null the image file paths will be used to read image files.

  Overrides:
    `prepare` in class `OMGraphicHandlerLayer`

### loadImages

    protected OMGraphicList loadImages()

  Gets the filePaths and loads the images found in those places. Should be called in a non-AWT thread.

  Returns:
    OMGraphicList retrieved from getList(), or a new list of that list is null.

### loadImage

    protected void loadImage(java.lang.String filePath,
                             OMGraphicList ret)

  If filePath is a file, the ImageReaderLoaders are used to try to load and place the image. If filePath is a directory, this method is called for each file contained within. ImageTile objects are created from the image files.

  Parameters:
    `filePath` -
    `ret` - The OMGraphicList to add any ImageTiles to.

### addImageToLists

    protected void addImageToLists(ImageTile imageTile,
                                   OMGraphicList ret,
                                   java.net.URL fileURL)

  A method to handle a newly created ImageTile object from the loadImage method.

  Parameters:
    `imageTile` - The new ImageTile
    `ret` - An OMGraphicList to add the ImageTile to.
    `fileURL` - A URL describing the location of the source image file.

### getGUI

    public java.awt.Component getGUI()

  Gets the gui controls associated with the layer.

  Overrides:
    `getGUI` in class `Layer`
  Returns:
    IPanel for layer controls.

### setVisibilityOnAllTiles

    protected void setVisibilityOnAllTiles(boolean visible)

  Changes the visibility setting on all ImageTile objects.

  Parameters:
    `visible` -

### showHideTiles

    protected void showHideTiles(java.lang.String text,
                                 ImageTile[] selectedTiles2)

  Action method called when the show/hide button is pressed.

  Parameters:
    `text` - if SHOW_TILES_TITLE, tiles made visible.
    `selectedTiles2` -

### moveOneSlotToBottom

    protected void moveOneSlotToBottom(ImageTile[] selectedTiles2)

  Move all the selected tiles down one space.

  Parameters:
    `selectedTiles2` -

### moveToBottom

    protected void moveToBottom(ImageTile[] selectedTiles2)

  Move all of the selected tiles to the bottom of the stack.

  Parameters:
    `selectedTiles2` -

### moveOneSlotToTop

    protected void moveOneSlotToTop(ImageTile[] selectedTiles2)

  Move all of the selected tiles up one space.

  Parameters:
    `selectedTiles2` -

### moveToTop

    protected void moveToTop(ImageTile[] selectedTiles2)

  Move all of the selected tiles to the top of the stack.

  Parameters:
    `selectedTiles2` -

### goTo

    protected void goTo(ImageTile[] selectedTiles2)

  Figure out where the images are and move the MapBean over them.

  Parameters:
    `selectedTiles2` -

### select

    protected void select(ImageTile[] selectedTiles2)

  Note the provided tiles as being highlighted. Selection, in this case, means the OMGraphic selection.

  Parameters:
    `selectedTiles2` -

### setSelection

    protected void setSelection(ImageTile[] selectedTiles2,
                                boolean isSelected)

  Note the provided tiles as being highlighted or not. Selection, in this case, means the OMGraphic selection.

  Parameters:
    `selectedTiles2` -

### deselect

    public void deselect()

  Un-highlight all of the tiles.

### resetSelectAttributes

    public void resetSelectAttributes()

  Take the drawing attributes held by the layer and push the settings on all of the ImageTiles.

### removeImages

    protected void removeImages(ImageTile[] selectedTiles2)

  Remove the selected tiles from the image stack. Asks the user for confirmation.

  Parameters:
    `selectedTiles2` -

### addNewImagesWithFileChooser

    protected void addNewImagesWithFileChooser()

  Asks the user to choose a new file or directory to load. The ImageReaderLoaders are consulted to only allow files that can be handled to be selectable.

### setGUIButtonEnableState

    protected void setGUIButtonEnableState(boolean somethingSelected)

  Set the GUI button state to be enabled or not based on something on the list being selected.

  Parameters:
    `somethingSelected` - whether something is selected.

### getListModel

    protected javax.swing.ListModel getListModel()

  The ListModel used by the JList, displaying the images.

  Returns:

### addImageTileToList

    protected void addImageTileToList(ImageTile tile)

  Add an ImageTile to the list model.

  Parameters:
    `tile` -

### clearImageTileList

    protected void clearImageTileList()

  Clear the list model.

### removeImageTileFromList

    protected boolean removeImageTileFromList(ImageTile tile)

  Remove an ImageTile from the ListModel.

  Parameters:
    `tile` -
  Returns:

### rebuildListModel

    protected void rebuildListModel()

  Rebuild the list model contents based on the ImageTiles contained on the OMGraphicList.

### getSelectedTiles

    protected ImageTile[] getSelectedTiles()

  Returns:
    the ImageTile[] of tiles currently selected in the GUI.

### setSelectedTiles

    protected void setSelectedTiles(ImageTile[] sTiles)

  Set the ImageTile[] of tiles currently selected in the GUI.

  Parameters:
    `sTiles` -

### areAllTilesDefective

    protected boolean areAllTilesDefective(ImageTile[] sTiles)

### checkShowHideStatus

    public void checkShowHideStatus()

  Checks the selected tiles from the visible list and tallies their visibility. If all of the tiles are invisible, the GUI button will allow them to be made visible. If any of them are visible, all of them can be made invisible before the button will change them to the visible.

### getResultListIndex

    protected int getResultListIndex(java.awt.event.MouseEvent e)

  find out which list object was moused.

  Parameters:
    `e` -
  Returns:

### getResultsListCellHeight

    protected double getResultsListCellHeight()

  Get the pixel height of each cell in the JList.

  Returns:

### initIcons

    protected static void initIcons()

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