[udig-devel] New IService?
Jody Garnett
jgarnett at refractions.net
Fri Jan 4 09:29:25 PST 2008
I just did something similar for a commercial project (the shapefiles
were included with the plugin). So your approach is known to work :-)
Basically make a new IService (it need not resolve to a DataStore); and
for each member use a ShapefileDataStore to aquire the FeatureSource /
FeatureStore as needed. No code well *know* that these are shapefiles;
they will just show up as normal data.
> In a plugin I'm writing, I have a set of standard shapefiles. The
> location of these files can change (the user has to set some
> preferences to tell the plugin where to look) but the set of files is
> fixed by the plugin - the list may change with future plugin versions.
> These files will be used by an "Add standard layers to map..." type
> command, but I'd like also to put them in the catalog for searching
> and selection - without adding the full path to the individual
> shapefiles (it might keep changing).
>
> Making any sense?
>
> Anyway, looking through the wiki my first idea was to create a new
> IService. This could find the folder location from preferences and
> hard-code the list of filenames. Then it should be able to return a
> list of the actual shapefiles. Does this look like the right way to go?
>
> If it is - I have some questions...
> - Is there an easy way to wrap a shapefile as an IGeoResource to
> return from the IService?
Just do it :-) You can use the existing ShpGeoResource implementation as
an example.
> - How do I make this IService available to the local catalog?
There is a service extension to declare you have an IService at all; you
can also define a plugin activator that adds your service to the
catalog. The map graphics plugin uses this trick to always be in the
catalog.
> Thanks for any help.
No worries; if you do this as a community module we can use it as an
example for the next person :-)
Jody
More information about the udig-devel
mailing list