View • Attachments (0) • Info
(18:54:35) <moovida> good evening everyone ![]()
(18:54:44) <Jesse_Eichar77> hello
(18:54:48) ericajg (n=user@84.18.147.191) has joined #udig
(18:54:59) <moovida> ready to rumble?
(18:55:00) <Jesse_Eichar77> Just looking at the page
(18:55:02) <Jesse_Eichar77> sure
(18:55:15) <moovida> good, let me know what you think
(18:55:31) <moovida> it is just a draft... but hopefully not too wrong
(18:55:59) <Jesse_Eichar77> ![]()
(18:56:12) <moovida> for Erica and who joined lately, the page is: http://udig.refractions.net/confluence/display/JGRASS/grasscatalogsupport
(18:56:55) <Jesse_Eichar77> ok
(18:57:23) <moovida> ok, I'm ready
(18:57:33) <Jesse_Eichar77> As always there are a few ways we can map the grass DB to the Catalog (IService)
(18:57:34) <moovida> better you start this time, too
(18:57:40) <Jesse_Eichar77> one you mention
(18:57:57) <Jesse_Eichar77> the service is the Grass Database
(18:58:15) <moovida> alright...
(18:58:16) <Jesse_Eichar77> and the resources are the ...
(18:58:22) <Jesse_Eichar77> well could be a few things
(18:58:26) <Jesse_Eichar77> could be locations
(18:58:33) <Jesse_Eichar77> which have members which are the map sets
(18:59:10) <moovida> and maps which are members of the mapsets?
(18:59:16) <Jesse_Eichar77> which have further members which is the files
(18:59:21) <moovida> exactly
(18:59:23) <Jesse_Eichar77> udig maps or JGrass maps?
(18:59:29) <Jesse_Eichar77> ![]()
(18:59:32) <moovida>
udig layers
(18:59:38) <Jesse_Eichar77> ok exactly
(18:59:49) <moovida> I woun't do it again ![]()
(19:00:01) <moovida> I believe
(19:00:04) <Jesse_Eichar77> we can say GMaps ![]()
(19:00:07) <moovida> this could be too much
(19:00:30) <moovida> there are GRASS users that work for years on a same grassdatabase
(19:00:41) <moovida> and some of them is not even their stuff
(19:01:04) <moovida> also the resulting load of stuff could make things not clearl
(19:01:11) <moovida> clearly orderer
(19:02:04) <Jesse_Eichar77> what is your preferred organization?
(19:02:10) <Jesse_Eichar77> structure?
(19:02:18) <moovida> I guess the service would be the location
(19:02:40) <moovida> which has some mapset and layers
(19:03:00) <moovida> but as we talk, perhaps the best would be the mapset...
(19:03:07) <moovida> not sure between the two
(19:03:24) <moovida> udig makes those things easy to handle in the graphics environment
(19:03:33) <moovida> so perhaps it really could be mapsets
(19:03:46) <Jesse_Eichar77> so maybe when a Grass DB is imported then one can select the mapsets to import into the catalog?
(19:03:53) <Jesse_Eichar77> and mapsets would be services?
(19:03:59) <Jesse_Eichar77> resources would be GMaps?
(19:04:13) <moovida> yes, that is what I'm thniking
(19:04:27) <moovida> how does that sound:
(19:04:53) <moovida> the user imports the grass database
(19:05:19) <moovida> and can select between mapsets, which are marked by their location projection
(19:05:34) <moovida> ... sounds strange at the first step... ![]()
(19:06:07) <Jesse_Eichar77> I'm not sure I understand the part about projection?
(19:06:12) <moovida> I guess the user should select the location
(19:06:13) <Jesse_Eichar77> projection I guess is per location?
(19:06:23) <moovida> alright, one word about location
(19:06:39) <moovida> the location holds the information of the projection
(19:06:50) <moovida> every location can have just one projection
(19:07:06) <moovida> and all the mapsets inside are forsed to work in the same proj
(19:07:41) <Jesse_Eichar77> ok... So looking towards the future... if a mapset's projection is modified we will have to reproject all mapsets in the location.... correct?
(19:07:53) <moovida> yes, exactly
(19:08:02) <moovida> not sure if that makes much sense...
(19:08:07) <Jesse_Eichar77> ok... given that I'm tempted to have service==location
(19:08:21) <moovida> perhaps those worksets should be projection-read-only
(19:08:35) <Jesse_Eichar77> we could do that too.
(19:08:48) <moovida> ok, I see, that would be good, since in JGrass we used the same approach
(19:08:53) <moovida> service==location
(19:09:00) <Jesse_Eichar77> remember services can be a full tree. Doesn't have to stop at 2 deep
(19:09:14) <Jesse_Eichar77> so we can have location-mapset-GMap
(19:09:33) <moovida> yes, I see, that si ok, just the whole database was too much
(19:09:40) <moovida> so, to resume
(19:09:51) <moovida> 1) the user selects the JGrass location
(19:10:03) <moovida> 2) the user selects a mapset
(19:10:10) <moovida> 3) the user selects a map
(19:10:13) <moovida> right?
(19:10:35) <Jesse_Eichar77> are we trying to import into catalog or make a uDig map?
(19:10:52) <moovida> at the moment import into catalog
(19:11:13) <moovida> you are right, point 3 would then make the map, right?
(19:11:21) <Jesse_Eichar77> if we are importing to catalog I would probably just select the location and then the locations desired and all the mapsets and maps are imported to catalog...
(19:11:34) <Jesse_Eichar77> then you could right click on a map and select new map...
(19:11:45) <moovida> perfect!
(19:11:48) <Jesse_Eichar77> (this is using the exisiting framework)
(19:12:12) <Jesse_Eichar77> ok sounds great too me.
(19:12:21) <moovida> that is what I tried yesterday by mixing WMS and SHP stuff...
(19:12:29) <moovida> ...around came Frankenstein ![]()
(19:12:35) <Jesse_Eichar77> ![]()
(19:12:41) <moovida> not working, so now I'm ready to listen ![]()
(19:13:39) <Jesse_Eichar77> what's not working mixing WMS and shape?
(19:13:44) <Jesse_Eichar77> or making an IService?
(19:14:12) <moovida> I didn't come to an end, since I didn't knew exactly how to map stuff.
(19:14:26) <moovida> If I implement IService
(19:14:32) <moovida> then IGeoResource
(19:14:45) <moovida> and the ServiceExtend
(19:14:57) <moovida> with what I wrote on the wiki page
(19:15:17) <moovida> then I get something that should automagically appear in the import diaolgs?
(19:15:28) <moovida> (apart of the missing datastore part
)
(19:15:39) <Jesse_Eichar77> Almost. but not quite yet.
(19:15:46) ericajg (n=user@84.18.147.191) has left #udig
(19:16:02) <Jesse_Eichar77> So given our current plan we need you to implement:
(19:16:08) <Jesse_Eichar77> IService (Location)
(19:16:17) <Jesse_Eichar77> IGeoResource (MapSet)
(19:16:27) <Jesse_Eichar77> IGeoResource ( GMap )
(19:16:47) <moovida> aha, there we have it ![]()
(19:17:00) <moovida> one smal inbetweenquestion
(19:17:05) <Jesse_Eichar77> ServiceExtension (Used for saving and loading mostly)
(19:17:08) <Jesse_Eichar77> ok go
(19:17:16) <moovida> no,no, sorry continue
(19:17:20) <moovida> I do it later
(19:18:06) <Jesse_Eichar77> Service extension is also used for drag and drop so that the framework can tell if the current object dropped can be used to make a service of that type.
(19:18:49) <Jesse_Eichar77> You will have to define a net.refractions.udig.catalog.ServiceExtension Extension in the plugin.xml
(19:19:16) <Jesse_Eichar77> in the plugin.xml make sure that net.refraction.udig.catalog is a dependency and that the plugin.xml is saved.
(19:19:24) <Jesse_Eichar77> then switch to the extensions tab
(19:19:34) <Jesse_Eichar77> press add and find the net.refractions.udig.catalog.ServiceExtension
(19:19:51) <Jesse_Eichar77> You have to fill that out so that it points to your ServiceExtension.
(19:20:14) <Jesse_Eichar77> Next:
(19:20:31) <moovida> alright
(19:20:33) <Jesse_Eichar77> create a net.refractions.udig.catalog.fileFormat extension in the plugin.xml
(19:21:13) <Jesse_Eichar77> we have a minor issue here. fileFormat is for files.
(19:21:22) <Jesse_Eichar77> we are dealing with directories now aren't we?
(19:22:01) <Jesse_Eichar77> (IE there isn't such thing as a location file)
(19:22:13) <moovida> no, exactly
(19:22:22) <moovida> just folders
(19:23:15) moovida guessing if there is a way to understand if someone is typing, like in messengers
(19:23:28) <Jesse_Eichar77> with just the ServiceExtension defined (not the fileFormat) you should be able to drag and drop the
(19:23:40) <Jesse_Eichar77> location directory and have it imported into the catalog.
(19:24:12) <moovida> that's good, at least I can test it quickly
(19:24:41) <Jesse_Eichar77> A word of warning. when you drag and drop a folder or file just the URL is passed in so all the ServiceExtensions fight over it. If you have a greedy Service extension then it could cause problems with other extensions.
(19:24:58) <Jesse_Eichar77> probably not in your case though
(19:25:15) <moovida> didn't understand that exactly...
(19:25:20) <Jesse_Eichar77> it happens for example when Geotiff extension uses .tiff files and World+Image uses .tiff files
(19:25:51) <moovida> so it could happen that the wrong one is taken?
(19:25:53) <Jesse_Eichar77> if Geotiff was programmed badly it could say yes to a tiff file that actually isn't a real geotiff and it would be added to the catalog.
(19:25:59) <Jesse_Eichar77> but really it isn't valid.
(19:26:06) <moovida> alright, I got you
(19:26:21) <Jesse_Eichar77> so my point is as a developer you have to make sure that you only accept files/directories that are "good"
(19:26:37) <Jesse_Eichar77> So for the next step (wizard support)
(19:26:42) <moovida> alright, that has to be done
(19:26:49) <moovida> one question
(19:26:53) <Jesse_Eichar77> yes
(19:26:54) <Jesse_Eichar77> ?
(19:27:07) <moovida> at that point I will have to do some checks?
(19:27:12) <moovida> like projection?
(19:27:22) <moovida> like active processing region?
(19:27:36) <moovida> or is it all left for later, when the map is choosen?
(19:27:39) <Jesse_Eichar77> Let me know if I have your question wrong.
(19:27:41) <moovida> the gmap, sorry
(19:27:58) <Jesse_Eichar77> I think those issues would come into play when you create a udig map
(19:28:20) <Jesse_Eichar77> the umap would have that information put on its blackboard
(19:28:43) <moovida> alright, the atalog doesn't carry responsability for any of that
(19:28:54) <moovida> catalog
(19:29:00) <moovida> ?
(19:29:01) <Jesse_Eichar77> I think the catalog will have that information as read only so that creating the map is easy
(19:29:26) <Jesse_Eichar77> but I don't think it needs to worry too much about it.
(19:29:41) <moovida> alright. I'm ready for the next step
(19:29:47) <Jesse_Eichar77> ok
(19:29:51) <Jesse_Eichar77> so for wizard support.
(19:30:15) <Jesse_Eichar77> checking name of extension point...
(19:30:45) <Jesse_Eichar77> oh 1 point about service extension
(19:30:55) <Jesse_Eichar77> I would suggest implementing IServiceExtension2
(19:31:06) <Jesse_Eichar77> it provides the framework with better feedback.
(19:31:10) <Jesse_Eichar77> (to the user)
(19:31:27) <Jesse_Eichar77> you can check say shapefile as an example.
(19:31:35) <Jesse_Eichar77> so for wizard:
(19:31:42) <Jesse_Eichar77> you will create a net.refractions.udig.catalog.ui.connectionFactory extension
(19:31:50) <Jesse_Eichar77> it will contain 2 subcomponents.
(19:32:10) <Jesse_Eichar77> factory
(19:32:14) <Jesse_Eichar77> and wizardPage
(19:32:42) <Jesse_Eichar77> don't ask me why factory is needed... I think that it should be merged with IServiceExtension
(19:32:48) <Jesse_Eichar77> but I didn't design this part.
(19:32:58) <Jesse_Eichar77> hmmm.
(19:33:11) <moovida> alright, just a sec, I see all those things in
(19:33:16) <moovida> WMS but not in shapefile
(19:33:19) <Jesse_Eichar77> actually DND may not work until you have factory extension point.
(19:33:23) <Jesse_Eichar77> shapefile is for a file
(19:33:33) <Jesse_Eichar77> WMS is for something more abstract.
(19:33:38) <moovida> ok
(19:33:54) <Jesse_Eichar77> We dont have an extension point specifically for directories.
(19:34:19) <Jesse_Eichar77> I suppose I could make a directory extension point... but that would take some time and would hold you back
(19:34:55) <moovida> then I will work with what you said... factory & wizardPage
(19:35:16) <Jesse_Eichar77> ok. It give you the most flexibility
(19:37:41) <Jesse_Eichar77> any thing else for now?
(19:38:09) <moovida> if I have those implemented I should be able to see things loaded in the catalog, right?
(19:38:26) <Jesse_Eichar77> you should. yes.
(19:38:33) <Jesse_Eichar77> but not a map ye
(19:38:35) <Jesse_Eichar77> yet
(19:38:40) <Jesse_Eichar77> umap that is
(19:39:48) <moovida> you mean to load a umap for rendering?
(19:39:54) <Jesse_Eichar77> yes
(19:40:19) <moovida> alright, some more thoughts, so I can continue in the next days
(19:40:19) <Jesse_Eichar77> that is another topic.
(19:40:22) <Jesse_Eichar77> ![]()
(19:40:28) <Jesse_Eichar77> cool.
(19:40:56) <moovida> how would I access the gmaps from a dialog box that launches my operation?
(19:41:23) <moovida> I mean... click a button, a dialog comes out
(19:41:51) <moovida> and asks me to select an input map and define the name for an output map that has to be put into
(19:42:01) <moovida> a particular jgrass mapset
(19:42:20) <Jesse_Eichar77> As usual there are a few ways.
(19:42:23) <moovida> at that place one usually has browse buttons
(19:42:29) <moovida> alright, go
(19:43:08) <Jesse_Eichar77> You can create a org.eclipse.actionSet extension (which is basically a button and/or a menu item) which would launch the JGrass operation dialog.
(19:43:46) <moovida> yes, that is ok, but how to get to the gmaps from there?
(19:44:02) <Jesse_Eichar77> 2. You can create an net.refractions.udig.ui.operation extension that will be enabled when you select a gmap or location or mapset depending on how you configure the operation.
(19:44:20) <Jesse_Eichar77> for 1. you will have to do a slightly complicated way of getting it.
(19:44:36) <Jesse_Eichar77> CatalogPlugin.getDefault.getLocalCatalog().getServices()
(19:44:41) <Jesse_Eichar77> returns a collection of services
(19:44:59) <Jesse_Eichar77> for 2. what ever is selected is passed in to the op() method as a parameter.
(19:45:46) <moovida> for 1, which I guess will be the thing I will have to use: alright, that means that I will have to take care of the creation of the wizards, right?
(19:46:17) <moovida> the 2 is not usable I think, since some modules need more input maps , input values and have more outputs
(19:47:50) <Jesse_Eichar77> I think you are correct.
(19:48:04) <Jesse_Eichar77> for simple things 2 is ok. But you have complex requirements so I think you are correct.
(19:48:46) <moovida> good
(19:49:03) <Jesse_Eichar77> just sent you an email with some more information on how to make service and renderers
(19:49:52) <moovida> I'm checking
(19:50:32) <moovida> alright... thanks man
(19:50:42) <Jesse_Eichar77> np
(19:51:01) <moovida> let's say I will start with what we discussed
(19:51:09) <Jesse_Eichar77> I think that's my allotted time for today. Is there anything else?
(19:51:18) <moovida> no, that is ok
(19:51:23) <Jesse_Eichar77> cool
(19:51:31) <Jesse_Eichar77> good luck. hit the list up with questions.
(19:51:38) <moovida> thank you Jesse, I will ![]()
(19:51:48) <Jesse_Eichar77> ![]()
(19:51:53) <Jesse_Eichar77> I know you will ![]()
(19:51:56) <moovida> ![]()
(19:52:13) <moovida> ciao to eveyone, got al lot to do...
|
Browse Space |
Explore Confluence |
Add Content |
|
Powered by Atlassian Confluence 2.7.1, the Enterprise Wiki. |