Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Feedback on docs and UI

Chris Holmes wrote:

However, I think you should keep in mind when you make design decisions that people will be extending uDig, and in doing so will be thinking outside of the GIS box , particularly UI decisions, for instance we make extensive use of projects and have extended them to make use of version control, we have many data sets which we need to rerun, this a typical situation in the world of remote sensing, and many others that use spatial data, uDig makes a very useful component for displaying spatial information for these applications.
+1 on this.  I think it might be nice to eventually have the core udig
stuff very generic, not even really doing much ui focus at all, making few
assumptions about how a user would want to use it, and then a core GIS
user interface as the main instance of it, but not the only one possible. All the nice installers would focus on the gis app, but developers could
download the core plugins and extend as appropriate, decide on their own
UI. Open the door for really creative, new ui's based on geotools/udig/eclipse.
There is a balance to be struck here - and I am pretty happy with where we are at,

We are defining extension points (opportunities for alternate implementation) in all the needed locations. In order to cut down on analysis paralysis we are not providing extension points until there is a need.

As for the central area of data access - there does need to be a formal contract between the extension points that provide content (IService and IGeoResource) and those that display content to the User (the various, often developer contributed, views).

The IService and IGeoResource follow the extensible interface pattern (same one used by IResource in normal eclipse development). We have implemented this using Java 5 allowing us to cut the API down to a more manageable size.

For those not familiar with the Extensible interface pattern it allows an object to "morph" into a requested interface, and the ability to morph into additional interfaces can be provided at a later time via the use of a Factory. This is pretty darn open ended, and amazing that it can be done in a typesafe manner.

I don't think we can be more open ended and still have an API (see smalltalk and an untyped OO language if you want more).

As for user interface decisions we are really not making that many of them, a developer can bold on any view or wizard for data access management they can dream up, and can similarly not include any of the existing views defined by the default udig application.

Please stay tuned for a workflow update at the end of the week, I hope it will be more to everyones liking.

Jody
PS. That Inmates are Running the Asylum book is great, and has been read by a couple people on the team :-)


Back to the top