Customizing "New Project" wizard in uDig Core

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Customizing "New Project" wizard in uDig Core

Kenneth Gulbrandsoy
Hi List!

I need to extend the default "New Project" wizard in uDig. One obvious (but not necessarily smart) solution is to import the plugin net.refractions.udig.project.ui as source, alter the "New Project" code and ship this altered plugin instead of the one in the SDK. This solution however, breaks each time a new SDK is released. A better solution could be use of extension points which allows pages to be added to the "New Project" wizard, together with some sort of interceptor invoked from the NewProjectWizard.performFinish() method. I have not found any extension points that does in the SDK. 

Does anyone have a another solution already implemented that does not break each time a new SDK is released? If not, I'll start implement my proposal and share it with you through the correct channels. I have started to document my request for change here

Best regards,

Kenneth Gulbrandsøy

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Customizing "New Project" wizard in uDig Core

Jody Garnett-2
Hi Kenneth; 

I was involved with a team that just did this; you can make a normal new wizard and use it to make a new map. The team I was working with used it to provide a list of "Ready to Go" maps that would be created from a template.
When you define your application perspective you can choose your new map wizard to show up in the file menu; the uDig one will still exist and be available as an option.

You can even contribute your new map wizard to the existing udig perspectives (if you are even using them in your app).

There is already map interceptors you can use to configure each and every map created if you need to; I wrote some docs on it last month; but it is not the same thing as adding additional pages to the existing wizard.

Jody

On 08/06/2010, at 7:15 PM, Kenneth Gulbrandsoy wrote:

Hi List!

I need to extend the default "New Project" wizard in uDig. One obvious (but not necessarily smart) solution is to import the plugin net.refractions.udig.project.ui as source, alter the "New Project" code and ship this altered plugin instead of the one in the SDK. This solution however, breaks each time a new SDK is released. A better solution could be use of extension points which allows pages to be added to the "New Project" wizard, together with some sort of interceptor invoked from the NewProjectWizard.performFinish() method. I have not found any extension points that does in the SDK. 

Does anyone have a another solution already implemented that does not break each time a new SDK is released? If not, I'll start implement my proposal and share it with you through the correct channels. I have started to document my request for change here

Best regards,

Kenneth Gulbrandsøy
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel


_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Customizing "New Project" wizard in uDig Core

Kenneth Gulbrandsoy
Hi again!

Thanks Jody, this is one option for sure :-) 

However, I've already gone this way and rejected it. The user of ETELab expects a single project structure that the "New Project" wizard creates in one go. Moreover, the project structure is not map-centric, just map dependent. Hence, focusing on map creation as the core project element does not fit well with the ETELab work process. Hence, this is ultimately a workflow and usability issue. Less is more with regard to number of wizards required to be run before an ETELab project is ready to be used. I think this is a general issue that applies to other projects as well which underpin the need for core support. 

I've just finished the implementation of my proposal by adding a extension point (customNewProjectWizard) to the net.refractions.udig.project.ui backened by the interface IProjectWizardPage and the abstract implementation  AbstractProjectWizardPage which extends WizardPage. Only minor changes was made to net.refractions.udig.project.ui.internal.wizard.NewProjectWizard and net.refractions.udig.project.ui.internal.wizard.NewProjectWizardPage. The NewProjectWizard is now responsible for project creation, loading and saving. Project structure creation or updating is performed by each NewProjectWizardPage. As a result, some code was moved from NewProjectWizard to NewProjectWizardPage that now extends AbstractProjectWizardPage. This simplifies the code in NewProjectWizard. 

The extension point is tested in ETELab and seems to work as designed.. 

I understand that these changes must be reviewed and accepted by the committee as a RFC before they can be committed to the core. I'll update the RFC according to the template.    

By the way, the uDig development site is down (code 503)...  

Best regards,
Kenneth  

2010/6/8 Jody Garnett <[hidden email]>
Hi Kenneth; 

I was involved with a team that just did this; you can make a normal new wizard and use it to make a new map. The team I was working with used it to provide a list of "Ready to Go" maps that would be created from a template.
When you define your application perspective you can choose your new map wizard to show up in the file menu; the uDig one will still exist and be available as an option.

You can even contribute your new map wizard to the existing udig perspectives (if you are even using them in your app).

There is already map interceptors you can use to configure each and every map created if you need to; I wrote some docs on it last month; but it is not the same thing as adding additional pages to the existing wizard.

Jody

On 08/06/2010, at 7:15 PM, Kenneth Gulbrandsoy wrote:

Hi List!

I need to extend the default "New Project" wizard in uDig. One obvious (but not necessarily smart) solution is to import the plugin net.refractions.udig.project.ui as source, alter the "New Project" code and ship this altered plugin instead of the one in the SDK. This solution however, breaks each time a new SDK is released. A better solution could be use of extension points which allows pages to be added to the "New Project" wizard, together with some sort of interceptor invoked from the NewProjectWizard.performFinish() method. I have not found any extension points that does in the SDK. 

Does anyone have a another solution already implemented that does not break each time a new SDK is released? If not, I'll start implement my proposal and share it with you through the correct channels. I have started to document my request for change here

Best regards,

Kenneth Gulbrandsøy
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel


_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel



_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
Loading...