Hi Michaël!

The RCP has a new plugin system which (basically) consists of

* a PlugIn class with initialize(PlugInContext) and an execute method
without parameters.
* a PlugInContext class with getProgramModel(), getProgramFrame() and
getPlugInManager().
* a PlugInManager class which stores initialized PlugIns and provides them
through getPlugIn(className)
* a PlugInInstaller which is very similar to OpenJUMPs FeatureInstaller.

This system is -- as mentioned previously -- heavily inspired by SPSP [1],
completely written in Groovy and
introduces backward incompatible changes.

Thus an adapter plugin was created which forwards to a CompatPlugInContext
that extends the PlugInContext
of OpenJUMP.

Here is an example of a adapter method:

    LayerViewPanel getLayerViewPanel() {
     def programModel = this.niceJumpPlugInContext.getProgramModel()
     return programModel.getActiveProject().getLayerViewPanel()
    }

There are plenty of PlugIn e.g. MapPanelPlugIn, PropertiesPanelPlugIn,
ErrorHandlerPlugIn,
LoadDatasetPlugIn and LoadDatasetsDialogPlugIn.

The main idea was to control the system through the PlugIn provided by
PlugInManager. I also was
unhappy with the programmatic abilities with OpenJUMP. There were many
methods I wanted to
use marked as private. Others imposed swing windows, so I couldn't run them
completely
programmatically.

Thats why loading datasets are two PlugIns: LoadDatasetPlugIn provides a
programmatic interface and
LoadDatasetsDialogPlugIn uses the first plugin and opens a swing file
dialog.

--Benjamin


--Benjamin

[1]
http://www.mail-archive.com/geotools-devel@lists.sourceforge.net/msg19621.html

2011/3/13 Michaël Michaud <michael.mich...@free.fr>

>  Hi,
>
> Nice work !
> There is surely a lot of work to transfer all the improvements to the last
> version of OpenJUMP.
>
> What do you mean by running PlugIns from OpenJUMP with the new plugin
> system ?
>
> Michaël
>
>
>
> Le 13/03/2011 21:05, Benjamin Gudehus a écrit :
>
> Hi OpenJUMPers,
>
>  I want to come up with some ideas for future work on the
> user interface of OpenJUMP.
>
>  In May 2010 I spent a week to implement a small RCP inspired
> by Landons Simple Pluggable Swing Program. I also intergrated
> a dockable window system using InfoNode.
>
>  Here's a screenshot:
> http://img2.imagebanana.com/img/924rj8w5/nicejumprcp.png
>
>  As one can see I separated the CursorTools from the toolbar
> to a new toolbar and added a selection window. I also coded an
> adapter to run PlugIns from OpenJUMP with the new plugin system.
>
>  There is pretty much to do and it is far from fully functional.
>
>  I'll eventually release the complete codebase, but don't plan to
> do this in the few next months. I haven't change a line of
> code since May 2010, but it looks good, that I can spend
> some weeks of work time in summer to improve it.
>
>  Regards
> Benjamin
>
>
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the 
> future.http://p.sf.net/sfu/internap-sfd2d
>
>
> _______________________________________________
> Jump-pilot-devel mailing 
> listJump-pilot-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>
>
>
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to