Skip to: Site menu | Main content

GeoTools

The Open Source Java GIS Toolkit

widgets-swing-pending Print

Team

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: sld@wikisquare.de .
  • 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
Demo

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 :

~\modules\unsupported\widgets-swing-pending

Compile the module and start the demo :

mvn clean install
mvn exec:exec

Structure

Information

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

Ready to use Components

  • <INTERFACE>SymbolizerPanel
    • JPointSymbolizerPanel*
    • JLineSymbolizerPanel
    • JPolygonSymbolizerPanel*
    • JRasterSymbolizerPanel

SLD specific Components

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

= Works = Not started = In progress = Waiting for help *= must be improved

ScreenShots

(view as slideshow)