Ede:

I look forward to seeing what you come up with. If it is anything like
the plug-in manager Jukka described, OpenJUMP users will love it.

Landon

On Sun, Apr 15, 2012 at 3:14 AM,  <edgar.sol...@web.de> wrote:
> On 14.04.2012 22:58, Landon Blake wrote:
>> Ede wrote: "that's one way to look at it. another would be to say that
>> most plugins essentially do their initialization in initialize(),
>> which can be quit extensive especially if they themselves have to find
>> their extensions e.g. sextante.
>>
>> execute() obviously is not the place to do it as this is called by the
>> gui when the menu entry is selected. users expect prompt answer here."
>>
>> I still think this work should be done in the execute method. The
>> proper way to handle the delay is to provide feedback to the user
>> while the set-up is taking place, after the execute method of the
>> plug-in h as been called. This could be done with a progress bar, for
>> example.
>
> that's why i say the design is not handling these cases user friendly. 
> extensions have only the option to either hold up the start or keep the user 
> waiting on execution.
>
>> JUMP's plug-in mechanism was basically a precursor to the plug-in
>> mechanism that was later used by Eclipse. The only thing a plug-in
>> should really do in the initialize method is present itself to the
>> user through the GUI. All the other work should be done when the
>> plug-in executes. This is important for at least three (3) reasons:
>>
>> 1) It keeps OpenJUMP's start-up time as short as possible.
>> 2) It keeps the RAM footprint of OpenJUMP as short as possible.
>> 3) It doesn't require the user to wait for a plug-in that may never be
>> executed during the specific session of OpenJUMP.
>
> agree fully, form the two options above this is the better option.
> still this leaves users wanting to use the extension with the frustrating 
> experience to have to wait in the very moment they want to use something ;)
>
>> I believe Eclipse plug-in developers are encouraged to follow the same
>> example. In fact, Eclipse plug-ins are presented in the GUI with no
>> code being executed. This is done declaratively. OpenJUMP is more
>> flexible than this, but the initialize method can be abused by well
>> meaning plug-in programmers.
>
> actually plugins are usually installed by extensions/configurations and 
> classically this runs the respective initialize methods or simply replaces 
> them.
>
>> See this link for more info on lazy plug-in loading:
>> http://wiki.eclipse.org/FAQ_When_does_a_plug-in_get_started%3F
>
> just read it and found the idea to "index" the plugin functionality to be 
> presented in the ui fascinating. i'll consider this for sextante which is 
> currently our biggest whale.
>
>> Ede wrote: "as laid out above, no it isn't"
>>
>> As laid out above, I respectfully disagree. :]
>>
>> I'm not saying it would be bad to have OpenJUMP more responsive as the
>> plug-ins load. I'm just saying I think that treats a symptom and not
>> the real problem. I'm not sure if your work around would involve
>> introducing threads to handle plug-in loading. That would make me a
>> little nervous. Most of OJ's core is not thread safe, and things get
>> complicated with threads rather quickly. I wish OJ didn't even have a
>> threaded plug-in interface. That was bad mojo.
>
> actually we already have threaded plugins ;).. but what i was talking about 
> was actually just a background threat doing the initialization loop.
>
>>
>> I appreciate all the work you do on OpenJUMP, Ede. Far more work than
>> I do. I hope you don't mind a little healthy debate on your idea.
>
> no problem at all, we could use much more dialog here to come up with bright 
> ideas, like the above.
>
> ..ede
>
>
>> On Sat, Apr 14, 2012 at 9:33 AM, Edgar Soldin <ed...@soldin.de> wrote:
>>> On 14.04.2012 17:47, Landon Blake wrote:
>>>> OK.
>>>>
>>>> If I remember correctly the plug-in interface has a initialize and an
>>>> execute method.
>>>
>>> exactly
>>>
>>>> The problem may not be in the design of JUMP, but in
>>>> the design of the offending plug-ins.
>>>
>>> that's one way to look at it. another would be to say that most plugins 
>>> essentially do their initialization in initialize(), which can be quit 
>>> extensive especially if they themselves have to find their extensions e.g. 
>>> sextante.
>>>
>>> execute() obviously is not the place to do it as this is called by the gui 
>>> when the menu entry is selected. users expect prompt answer here.
>>>
>>>> Really, plug-ins should do as
>>>> little as possible in initialize and as much as possible in execute.
>>>
>>> well they should, which essentially means they don't necessarily do so. 
>>> because the development of extensions is decentralized modifying all 
>>> extensions is essentially impossible.
>>> showing workbench and keep on initializing would be a workaround.
>>>
>>>> Not sure if that is the problem, but it is a thought. In that sense,
>>>> OJ is already design for lazy loading.
>>>
>>> as laid out above, no it isn't ;)
>>>
>>> ..ede
>>>
>
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to