org.geotools.demo.swing
Class ShapefileViewer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.geotools.swing.JMapFrame
                          extended by org.geotools.demo.swing.ShapefileViewer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class ShapefileViewer
extends JMapFrame

This class demonstrates extending JMapFrame to add a menu bar and shapefile handling methods. It also shows the use of DefaultRepository to manage data stores, and the JFileDataStoreChooser and JSimpleStyleDialog classes.

Since:
2.6
Version:
$Id: ShapefileViewer.java 34322 2009-11-04 12:17:11Z mbedward $
Author:
Michael Bedward
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.geotools.swing.JMapFrame
JMapFrame.Tool
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ShapefileViewer(java.lang.String title)
          Constructor
 
Method Summary
 void addLayer(MapLayer layer)
          Add a map layer to those displayed.
 boolean addShapefile(java.net.URL shapefileURL, boolean defaultStyle)
          Open a shapefile and add it to the map layers displayed by the widget, styling the layer as specified by the associated SLD file (same root name as shapefile with .sld extension) if it exists.
 boolean addShapefile(java.net.URL shapefileURL, Style style)
          Open a shapefile and add it to the map layers displayed by the widget, rendering the layer with the provided style.
 java.net.URL getShapefileSLD(java.net.URL shapefileURL)
          Search for a Styled Layer Descriptor (SLD) file associated with the specified shapefile.
 void loadShapefile()
          Add the contents of a shapefile as a new layer.
static void main(java.lang.String[] args)
          Main function.
 void setWorkingDir(java.io.File cwd)
          Set the current working directory
 
Methods inherited from class org.geotools.swing.JMapFrame
enableLayerTable, enableStatusBar, enableTool, enableToolBar, getMapContext, getMapPane, getRenderer, getToolBar, initComponents, setMapContext, setRenderer, setVisible, showMap
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

ShapefileViewer

public ShapefileViewer(java.lang.String title)
Constructor

Parameters:
title - text to be displayed in the frame's title bar
Method Detail

main

public static void main(java.lang.String[] args)
Main function. Creates and displays a ShapefileViewer object.

Parameters:
args - ignored presently

setWorkingDir

public void setWorkingDir(java.io.File cwd)
Set the current working directory

Parameters:
cwd - a File object representing the directory; if NULL the user's default directory will be set

loadShapefile

public void loadShapefile()
                   throws java.io.IOException
Add the contents of a shapefile as a new layer. This method simply calls #showOpenShapefileDialog followed by addShapefile(java.net.URL, boolean) with the defaultStyle argument of the latter method set to true.

Throws:
java.io.IOException

addShapefile

public boolean addShapefile(java.net.URL shapefileURL,
                            boolean defaultStyle)
                     throws java.io.IOException
Open a shapefile and add it to the map layers displayed by the widget, styling the layer as specified by the associated SLD file (same root name as shapefile with .sld extension) if it exists.

To add a shapefile with a Style from elsewhere, e.g. one constructed programmitcally, use the addShapefile(java.net.URL, org.geotools.styling.Style) method. Alternatively, create a MapLayer object and use the addLayer(org.geotools.map.MapLayer) method.

Parameters:
shapefile - URL for the shapefile to add
defaultStyle - specifies what action to take if there is no associated SLD file: fallback to a minimal style (if true) or abort adding the layer (if false)
Returns:
true if the layer was added successfully; false otherwise
Throws:
java.lang.IllegalArgumentException - if shapefileURL is null
java.io.IOException

addShapefile

public boolean addShapefile(java.net.URL shapefileURL,
                            Style style)
                     throws java.io.IOException
Open a shapefile and add it to the map layers displayed by the widget, rendering the layer with the provided style.

Parameters:
shapefile - URL for the shapefile to add
style - the Syle object to use in rendering this layer
Returns:
true if the layer was added successfully; false otherwise
Throws:
java.io.IOException - if the shapefile could not be accessed
java.lang.IllegalArgumentException - if either of the arguments is null

getShapefileSLD

public java.net.URL getShapefileSLD(java.net.URL shapefileURL)
Search for a Styled Layer Descriptor (SLD) file associated with the specified shapefile. If the SLD file exists it will be in the same directory as the shapefile, have the same root name, and have .sld as its extension.

Parameters:
shapefileURL - the shapefile for which an SLD file is being sought
Returns:
the URL of the SLD file; or null if not found or not accessible

addLayer

public void addLayer(MapLayer layer)
Add a map layer to those displayed. If no MapContext has been set explicitly, a new instance of DefaultMapContext will be created.



Copyright © 1996-2010 Geotools. All Rights Reserved.