GeoTools : widgets-swing-pending


Johann Sorel (AlterSIG Project)

Quick presentation

This module is the integration of project AlterSIG Toolbox.
Every component is cleanup and once ready will move to the "extension/swing-widgets" module.

This module offers several Swing components like :

  • A tree to manage MapContext
  • A dialog to quickly open datas
  • Some property edition panels
  • A small JMappane control bar
    To be honest they are not all fully functionnal but they work.

Help needed !

Many things have to be done before we have a correct swing widget library.
This module is getting really too big for a single developer. there is now
more then 150 classes. Thoses classes spike through the GeoTools other modules
so there is a heavy maintain job to keep everything working.

Here is a list of things to do, but I dont have time to :

  • Updated/fixed/enrich the property panels
  • Create a complete SLD editor, for now it's basic style edition. Stefan Kr├╝ger should work on this on february 2008. Feel free to contact him if you have any questions, comments, ideas: .
  • Improve Map drawing speed, this should be done at the beginning of the year with the Java2DRenderer.
  • Create a ToolBox/Tool structure (Interfaces and tree widget)
  • Create widgets for preview/print, this is a hard one that could be a training periode project for a student.
  • Create a raster referencing widget.
  • Improve Context Tree to handle subnodes under layer nodes



Widget-tools list


First you need the latest geotools source.
See 2.3 Source Code to have it.

Make a fresh build using maven :

mvn clean install -Dmaven.test.skip

Go it the module folder :

Compile the module and start the demo :

mvn clean install
mvn exec:exec




Making graphical user interface is not hard work, but it needs time.
And more important, to make clean widgets you need clean components and layouts.

That's why i also use those libraries :

Map components
  • (info) <STATIC> MapConstants
  • (tick) JMap2DConfigPanel*
  • (tick) JMap2DControlBar*
  • (info) JMap2DEditBar
  • (info) JMap2DInfoBar
  • (error) JQuickSearchBar
  • (info) <INTERFACE>Map
    • (tick) <INTERFACE>Map2D* (extends Map)
      • (tick) JDefaultMap2D*
      • (tick) - StrategyListener
      • (tick) - Map2DListener
      • (tick) - Map2DMapAreaEvent
      • (tick) - Map2DContextEvent
      • (tick) <INTERFACE> NavigableMap2D* (extends Map2D)
        • (tick) JDefaultNavigableMap2D*
        • (tick) - NavigableMap2DListener
        • (tick) - Map2DActionStateEvent
      • (tick) <INTERFACE> SelectableMap2D* (extends NavigableMap2D)
        • (info) JDefaultSelectableMap2D
        • (info) - SelectableMap2DListener
        • (info) - Map2DSelectionEvent
      • (info) <INTERFACE> EditableMap2D* (extends SelectableMap2D)
        • (info) JDefaultEditableMap2D
        • (info) - EditableMap2DListener
        • (info) - Map2DEditStateEvent
        • (info) - Map2DEditLayerEvent
      • (tick) <INTERFACE> MapDecoration*
        • (tick) <ABSTRACT> AbstractMapDecoration
        • (tick) ZoomPanDecoration (used by JDefaultNavigableMap2D)
        • (tick) SelectionDecoration (used by JDefaultSelectableMap2D)
        • (tick) EditionDecoration (used by JDefaultEditableMap2D)
        • (info) InformationDecoration (top JDefaultMap2D decoration)
        • (tick) ColorDecoration
        • (tick) ImageDecoration
        • (tick) NavigationDecoration
        • (info) MiniMapDecoration
        • (error) ZoomDecoration
        • (error) NorthArrowDecoration
    • (tick) <INTERFACE>RenderingStrategy*
      • (tick) <ABSTRACT> AbstractRenderingStrategy*
      • (tick) SingleVolatileImageStrategy*
      • (tick) SingleBufferedImageStrategy*
      • (tick) MergeBufferedImageStrategy*
    • (error) <INTERFACE>Map3D
    • (error) <INTERFACE>MapPrint
Style edition

Ready to use Components

  • (tick) <INTERFACE>SymbolizerPanel
    • (tick) JPointSymbolizerPanel*
    • (tick) JLineSymbolizerPanel
    • (tick) JPolygonSymbolizerPanel*
    • (warning) JRasterSymbolizerPanel

SLD specific Components

Other classes
  • (tick) IconBundle
  • (tick) TextBundle
  • (tick) GridCoverageFinder*
  • (tick) RandomStyleFactory*
  • (tick) FacilitiesFactory*
Context tree
  • (tick) JContextTree
    • (tick) <INTERFACE>TreeTableColumn
      • (tick) VisibleTreeTableColumn
      • (tick) StyleTreeTableColumn
      • (tick) OpacityTreeTableColumn
  • (tick) JContextTreePopup
    • (tick) <INTERFACE>TreePopupItem
      • (tick) ContextActiveItem
      • (tick) ContextPropertyItem
      • (tick) CopyItem
      • (tick) CutItem
      • (tick) DeleteItem
      • (tick) DuplicateItem
      • (tick) LayerFeatureItem
      • (tick) LayerOpacityItem
      • (tick) LayerPropertyItem
      • (tick) LayerVisibilityItem
      • (tick) LayerVisibleItem
      • (tick) PasteItem
      • (tick) SeparatorItem
      • (tick) TitledSeparatorItem
    • (tick) <INTERFACE>MapRelatedTreePopupItem (extends TreePopupItem)
      • (tick) LayerZoomItem
Tool box
  • (tick) JToolTree
  • (tick) WidgetTool / WidgetToolDescriptor
    • (info) ClippingTool
    • (tick) ClippingTTDescriptor
    • (tick) ShapeCreationTool
    • (tick) ShapeCreationTTDescriptor
    • (tick) SVG2MIFTool
    • (tick) SVG2MIFTTDescriptor
    • (tick) VDem2CSVTool
    • (tick) VDem2CSVTTDescriptor
Properties Panels
  • (tick) JPropertyDialog
    • (tick) <INTERFACE>PropertyPanel
      • (warning) ContextCRSPropertyPanel
      • (info) LayerFeaturePropertyPanel
      • (error) JScaleStylePanel
      • (tick) JSimpleStylePanel
      • (error) JUniqueStylePanel
      • (info) JXMLStylePanel
      • (tick) JCQLPropertyPanel
    • (tick) <ABSTRACT>MultiPropertyPanel (implements PropertyPanel)
      • (tick) LayerFilterPropertyPanel
      • (tick) LayerStylePropertyPanel
Data access
  • (tick) JDataChooser
    • (tick) <INTERFACE>DataPanel
      • (tick) JFileDataPanel*
      • (tick) JDatabaseDataPanel*
      • (error) JServerDataPanel

(tick) = Works (error) = Not started (info) = In progress (warning) = Waiting for help *= must be improved



ex_jcontexttree2.jpg (image/jpeg)
ex_jdatachooser1.png (image/png)
altersig_root7.jpg (image/jpeg)
CQL1.jpg (image/jpeg)
sld.jpg (image/jpeg)
widgetdemo.png (image/png)
toolbox_minimap.jpg (image/jpeg)
shapecreate.jpg (image/jpeg)