Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Team

Johann Sorel (AlterSIG Project)

Section
Column

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

UseCase/Tutorial

Widgets

Widget-tools list

Column
width40%
Panel
borderStylesolid
titleDemo

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

Make a fresh build using maven :

Code Block
mvn clean install -Dmaven.test.skip

Go it the module folder :
~\modules\unsupported\widgets-swing-pending

Compile the module and start the demo :

Code Block
mvn clean install
mvn exec:exec

Structure

Info
titleInformation

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 :

Section
Column
Panel
titleBGColor#ccc
titleMap 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
Panel
titleBGColor#ccc
titleStyle edition

Ready to use Components

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

SLD specific Components

Panel
titleBGColor#ccc
titleOther classes
  • (tick) IconBundle
  • (tick) TextBundle
  • (tick) GridCoverageFinder*
  • (tick) RandomStyleFactory*
  • (tick) FacilitiesFactory*
Column
width50%
Panel
titleBGColor#ccc
titleContext 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
Panel
titleBGColor#ccc
titleTool box
  • (tick) JToolTree
  • (tick) WidgetTool / WidgetToolDescriptor
    • (info) ClippingTool
    • (tick) ClippingTTDescriptor
    • (tick) ShapeCreationTool
    • (tick) ShapeCreationTTDescriptor
    • (tick) SVG2MIFTool
    • (tick) SVG2MIFTTDescriptor
    • (tick) VDem2CSVTool
    • (tick) VDem2CSVTTDescriptor
Panel
titleBGColor#ccc
titleProperties 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
Panel
titleBGColor#ccc
titleData access
  • (tick) JDataChooser
    • (tick) <INTERFACE>DataPanel
      • (tick) JFileDataPanel*
      • (tick) JDatabaseDataPanel*
      • (error) JServerDataPanel
Panel
borderStylesolid

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

ScreenShots

Gallery
columns3