btw: this is how the gui looks when I deactivate all plugins:
http://www.abload.de/img/nicejump_wo_pluginsq71j.png
I think this is a nice showcase of how to customize a scalable
user interface.
here is the corresponding source code for this:
static void main(args) {
Translation.reset()
Translation.addLanguageFilePath("src/main/nicejump/lang")
//Translation.loadLanguage("de")
def workbench = new Workbench()
def plugInManager = workbench.getPlugInManager()
// plugInManager.initializePlugIn(new ErrorHandlerPlugIn())
// plugInManager.initializePlugIn(new ProjectModulePlugIn())
// plugInManager.initializePlugIn(new MapPanelPlugIn())
// plugInManager.initializePlugIn(new ProjectPanelPlugIn())
// plugInManager.initializePlugIn(new EssentialModulePlugIn())
// plugInManager.initializePlugIn(new PropertiesPanelPlugIn())
// plugInManager.initializePlugIn(new PythonShellPlugIn())
workbench.startProgram()
}
--benjamin
2011/3/14 Benjamin Gudehus <hasteb...@googlemail.com>
> hallo Matthias!
>
> it would be nice to incubate a new GUI in parallel work.
>
> Maybe we could split the source code in two modules as I
> already did:
>
> * a workbench with a new gui built from scratch
> * a core with current OJ code base
>
> then substract the old workbench code (successively) from core and
> replace it with the new one.
>
> I did this previously to be able to experiment with a new
> gui without worrying about the core parts of the old gui.
>
> should be no problem to create a polyglot project with Java and
> Groovy source code. only condition is that we use a distributed
> vcs like Mercurial instead of Subversion.
>
> Here are some quick lists for a possible GUI for OJ 2.0.
>
> some random ideas:
>
> * separate model from view
> * dialogs editable in gui editor (e.g. JFormDesigner, Google
> GUI Builder)
> * MouseButtonFilterCompositeTool. left mouse button for an
> arbitrary CursorTool, right mouse button for panning and
> mouse wheel for zooming
> * configurable keymap to execute plugins
>
> frameworks/libraries I've already integrated in some way in an
> OpenJUMP Extension or standalone:
>
> * progress windows with Better Swing Application Framework
> using the SwingWorker class
> * dockable windows with InfoNode
> * better attribute list panel with GlazedLists
> * nicer dialogs with SwingX and JGoodies FormLayout
> * standard message boxes (warning, information, question)
> * selected features panel with Netbeans Nodes API
> * attribute properties panel with Netbeans PropertiesPanel
> * scripting editor and console with RSyntaxTextArea
>
> An example dialog for a new attribute selection plugin dialog
> (the one to the right):
>
> http://h-7.abload.de/img/jump-attributauswahlgn7l.png
>
> --Benjamin
>
> 2011/3/14 Matthias Scholz <m...@jammerhund.de>
>
>> Nice Work!
>>
>> What do you think about a GUI revision for OJ in 2.0? This can be a
>> longer project of parallel work. Should be no problem with SVN. A more
>> modern and customizable GUI would be a great enhancement for OJ in the
>> future. I know that this is not a small task.
>>
>> Matthias
>> > 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
>> > <mailto: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 list
>> >> Jump-pilot-devel@lists.sourceforge.net <mailto:
>> 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
>> > <mailto: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
>> >
>>
>>
>>
>> ------------------------------------------------------------------------------
>> 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