This is a mockup of a demo app.


A three part mockup.


What each part does. My handwriting is a wee bit sloppy but you should be able to tease out the intent.

The Geotools demo is a simple swing app, on the left a column of buttons, on the right, at the top an info area and below a mappane.

The user works sequentially throught the buttons. The button state therefore changes. Buttons are either already pressed, pressable (only the next one), or greyed out.

The info area gives a sequence of reports on what has happened (or maybe holds a list of the elements that have been created).

The map area shows the data, first unprojected then in a Mercator projection.

The app would reside in demo/introduction but would be built by calling static methods in each of the different demo/directories. Obviously each directory would also have more advanced demos which are not part of the initial tour. For example the demo/geometry/ directory would have advanced tutorials on doing analyzes with geometries: buffers, intersections and such things.

The buttons would do the following:

1) "create" => feature sources are created from scratch, shapefile, database and WFS-T. Ideally these would be added into a catalog.

2) "Style" => Styles are created from scratch, shapefile, database and WFS-T.

3) "Render" => The data are shown but unprojected.

4) "Project" => A ProjectedCRS is built and used to redisplay the data as mercator.

5) "Filter" => A filter sub-selects the data

6) "Print" => Make a high resolution image

7) "Save" => create a GML or a shapefile

8) "Commit" => make a transaction with a WFS-T

9) "Analyze" => for now only the graph module

The main() method of the app would create the GUI framework and then dispatch the button presses in sequence to methods from files in different directories. Initially, for a first take, I'm aiming to simply have one giant class of static methods. This will then be cannabilized into files in each separate area of the demo/ directory.

Notes:
+ Add a gridCoverage as well