I had similar thoughts a while back. In fact, the Feature concept easily supports non-spatial features. About all that is required is to get the UI to recognize non-spatial Feature Schemas and do sensible things with them (such as display a little table icon rather than the symbology icon in the Layer List panel, and not display the button for View/Edit Geometry).
There's quite a few of these kinds of changes required to support this cleanly, but I don't think any of them are very difficult. We'd also need a few non-spatial I/O drivers - CSV, text, maybe DBF. And also a way to set up joins between tables (this one is harder, I think). This is more than just a single plugin, tho - it's a more of a generalization of the existing Feature framework. As for the listener idea, if I understood what Paul was wanting it would be more like supporting adding an item to the existing popup menu on the Feature Info attribute table. Sunburned Surveyor wrote: > I'm not sure I totally understand what Paul is talking about, but I > had a comment or two and I wanted to throw an idea out there. > > Paul wrote: " A right click on the feature row to view the whole > feature and have a view/edit feature frame that would display the list > of property names and values with nested panels for each nested > feature." > > I like this idea. > > I have also thought about the issue that Paul highlighted in his > example of the building address. For example, I might want to store > information about the most recently recorded deed for a parcel. The > problem with this is that there might be multiple items I'd like to > know about the deed. (Date of Purchase, Date Recorded, Recording > Number...) > > I had thought about solving this problem with a plug-in that would > allows us to store "non-spatial" features. We could use something > similar to the exixting Feature interface. The main difference would > be that a non-spatial feature would not have a geometry associated > with it. I think we could even display the non-spatial features using > the same attribute table that we currently use for spatial features, > with some changes. (You could think of a non-spatial feature > collection as a table in a typical RDBMS.) > > This might be a simple alternative to embedding a database. I've > always thought using an embedded database added an additional layer of > complexity to OpenJUMP. I suppose as we consider more and more advance > functionality for attribute information an embedded database option > becomes more attractive. Still, it is something to consider carefully. > One of the things that makes OpenJUMP so beautiful is its simplicity. > :] > > I also wonder if we could accomodate some custom attribute table > behavior by creating a "listener" system similar to what was done with > the CursorTools. Plug-In developers would be able to add listeners to > each attribute table. When a mouse interaction was detected we could > forward an event to the registered listeners that contained a > reference to the feature and attribute over which the mouse pointer > was located when the event occured. > > In this type of system Paul could create a listener and attach it to > the attribute table with the address field. In this address field he > would store a primary key. When the user held the mouse pointer over > this address field an event would be sent to the listener with a > reference to the feature and the primary key stored in the address > field. He could then display a GUI with all of the information from > the address that he retrieves using the primary key stored in the > event. > > Perhaps this is what Paul was talking about and I didn't understand > completely. > > The Sunburned Surveyor > > > > > On 6/1/07, Paul Austin <[EMAIL PROTECTED]> wrote: > >> Hi Martin, >> >> This case is where you have nested complex properties of an attribute >> nature. For example building may have an address property that has the >> attributes unit, number, street, city etc. >> >> I don't want to go down the whole nested feature collection route as that >> can get pretty messy. In fact I would typically model these in the database >> using either one-to-may or many-to-many foreign key relationships that they >> really are. >> >> For the code table plug-in, this could be done from database layers by >> following foreign key relationships that when you add the layer you could >> select which ones are code tables and the columns to use from the referenced >> tables. Initially I think I'd test out the concept by manually creating the >> UI and config and see how it goes from there. More of a prototyping >> approach. >> >> Paul >> >> >> Martin Davis wrote: >> Is your use case only for a property which contains a single Feature? >> > The > >> general case would be to have a property which contains a >> > FeatureCollection > >> (this is the full GML model, for instance). In this >> > case the UI gets a bit > >> more complicated. >> > > How are you creating the Feature property? Do you need to > >> spatially >> > visualize it? > > I'm asking these questions because while your use > >> case may simply be to >> > view a single Feature property, it's nice to look a > >> bit further down the >> > road at a more general design, in order to avoid > >> making the >> > implementation overly specific and hard to extend. > > In general > >> supporting a hierarchical feature model introduces tons of >> > issues all > >> through JUMP... which is why we didn't go there at first. >> > The closest we > >> got was to support a custom object hierarchy and expose >> > different classes > >> of it as separate FeatureCollections. This allowed >> > treating the various > >> classes as map layers, which worked pretty well. >> > But this was all custom > >> code and hard to make general-purpose. >> > > As for the code-value entry plugin, > >> the general concept would clearly be >> > nice to have. Would your entry screen > >> only support that single >> > attribute, or would you make a general entry panel > >> which showed all >> > attributes? This was talked about a week or two ago - it > >> would be nice >> > to have this as another view in the Attribute View window. > >> How would >> > you supply the code-value mapping? > > Paul Austin wrote: > > >> I have a data set where a property of a feature is another feature >> > object. > >> In the schema it has the type Object but it's actually a >> > Feature > >> instance.What I would like to do is have the following. >> > > 1. A right click > >> on the feature row to view the whole feature and >> > have a view/edit feature > >> frame that would display the list of >> > property names and values with nested > >> panels for each nested >> > feature. > 2. Use the feature display panel to > >> display the feature on say roll >> > over of a complex property value > > Has > >> anyone worked on such a feature? If not I'll start writing one. >> > > Also I was > >> thinking that in databases you have the concept of code >> > lookup tables, I > >> was thinking of a plugi-in that you can configure to >> > display the code value > >> instead of the code ID and have a drop down for >> > changing the values instead > >> of entering the >> codes. >> > > Paul > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This > >> SF.net email is sponsored by DB2 Express >> > Download DB2 Express C - the FREE > >> version of DB2 express and take >> > control of your XML. No limits. Just data. > >> Click to get it >> now. >> > http://sourceforge.net/powerbar/db2/ > ------------------------------------------------------------------------ > > _______________________________________________ > Jump-pilot-devel > >> mailing >> list >> > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 express and take >> control of your XML. No limits. Just data. Click to get it now. >> http://sourceforge.net/powerbar/db2/ >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >> >> > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > -- Martin Davis Senior Technical Architect Refractions Research, Inc. (250) 383-3022 ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel