Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-devel] Zoom & Catalog discussion

Thanks Paul & Andrea - this is exactly the kind of discussion I want us to be having :-)

Paul gave us some of this feedback ealier - and the issues brought up did make it into our documents from the recent milestone.
http://docs.codehaus.org/display/UDIG/Milestone+2+Deliverables

Indeed a lot of the ideas going int cleaning up DataAccess are documented and stem from difficulties in setting up a sane system for Catalog.
As an example: Local Registry is to be renamed Catalog :-)

about its size later. I think it should be a nice thing to have, but maybe
something to have when you're pressing some key while zooming (CTRL., SHIFT, whatever).... it's just that I've never used something that worked
like this, so my first thougth was that it was broken.
Strangly enought the Control and Alt keys already do something.
Control - acts as a right click (ie Zoom out by a fixed amount)
Alt - combined with dragging sideways opperates similar to the Zoom wheel (ie direct control of scale).

When we started we saw many different Zoom schemes:
- most were of the click in the top left, and drag to the bottom right (application would then do a best fit to the current visiable area) - one CAD based system had a box that surrounded the cursor, the box was of the same aspect ratio as the currently Map display area. Keys controlled the scale (represented as the size of the box on screen). The one nice thing about this system was that you had a visual representation on screen of what would happen next. - zoom in and zoom out buttons on the toolbar (just opperate as a change of scale) - JUMP has a slider that just performes a change of scale (MapQuest has something similar)

One thing I am sure of is we need an extention point for our top five tools:
- Zoom - zoom box, zoom rectangle (traditional)
- Selection - select rectangle, select feature, magic wand.
- Info - what is this, query, etc...

One thing that troubles me is that Tools *need* a keyboard shortcut, but we have an open ended system allowing people to add tools into the framework. The above suggestions takes some of the scalability bite out of the problem. Just the 5 catagories need a Key binding, Holding SHFT-Key advanved tool in a category, Holding Control-Key could bring up the menu where the tool can be chosen from the list.

Example:
z - selects the "Zoom" tool
Z - selects the next Zoom tool.
control-z - lets the user choose the Zoom tool with the arrow keys.
("z" would be localized)

When UDIG is bundled up for a specific application a developer has the option of only including one Zoom tool. Indeed if selection is not needed for their application they can leave it out entirely.

different states held into different subfolders. If I understand it right (I hope not) and every file gets listed as a flat list, this would soon become
a bit of a mess.
This does present a problem, DataStores are supposed to be singletons (and that is ment to be under application control), It seems taht for the next round of UDIG we should remove the Catalog from the default perspective (it is not needed as part of a File Open or Fie DnD workflow). Its main purpose is to allow user's to discver available data. Indeed a TreeViewer of the current Catalog appears as part of the New Map Layer process. It is ment to be searched - something I cannot really take on until DataStores get around to supporting Metadata. I don't think any amount of making the Catalog deep (either by Data Source category, File System Directory) will be sufficent. That said we can divide this up by: Server, Directory, or Type easily enough. But long term we need a single "Search" box where the user can enter some text, hit return, and see a list of matches.

On a related note we are currently storing our Singeton DataStores by the parameters used to create them - this is not really good enough (Shapefile url=C:\data\road.shp memorymapped=true should really be the same thing as Shapefile url=C:\data\road.shp memorymapped=false). Does this mean we need to divide up parameters into deinition, and opperation? I suppose opperation parameters could be considered Hints on FeatureSource opperation ....

Also, I'm not sure about it, but I hope the registry contents are per-project,
since different projects may have to work with very different set of files.
Once again Catalog is the tool that keeps us from duplicating DataStores. If two projects both use the same shapefile we *need* them to use the same instance (or things will go wrong). The TreeView widget currently used has a nice Filter API. I think Filtering the Catalog to the current Project is the way to go here.

Some of the registry contents may be general enough to be always there,
but as a user I would not be happy to see all of my datastores and shapefiles
always there. Just my opinion ;-)
And valued.
Jody


Back to the top