Hi,
>>> agreed on the "weird" functionality. but i guess that's rooted in OJ's 
>>> inability to set categories invisible as such. while imperfect i still 
>>> think users grasp it's functionality and will find use for it, or put 
>>> differently - better to have it than not.
>>>
>>> disagreed on your big rework. granted i oversaw another NPE in the check 
>>> hook, but still the code works as probably intended, so would touch it only 
>>> for speed or fixing. it e.g. introduces a new NPE in PluginContext when 
>>> reordering categories.
>> Sorry, I've looked for a solution which is more readable (made it java-5
>> friendly) and working without throwing exception, but I may also have
>> introduced new bugs.
>> The main point : it seems to me that the initialize method was never
>> called and that it was the
>> root cause of the exceptions...
>> I checked where initialization method usually happened (in
>> JumpConfiguration) and followed the way...
>> I may have missed a better solution.
>>
> ok, will commit my solution properly and we'll see if more changes will be 
> needed then.
>
>>> wrt. check hook,
>>> on context menu activation it set's the checkbox value to the saved state 
>>> of the rightclicked category. this was formerly done via a a 
>>> selectionlistener, which is waste as it only need to be done on activation.
>>>
>>> wrt. no layer selected condition you added
>>> that disables the plugin if also layers are disabled.
>> I don't understand : the plugin availability does not depend on layers
>> ability but on layer selection (or what do you mean by disabled) .
>> Anyhow, current situation is not satisfying, because if you have some
>> layers selected, a right click on a category unselect the layers.
>> On the other hand, if you have layers + category selected, right click
>> on category does not unselect layers.
> i see.. the unwanted unselection should be fixable
>
>>>    but i already opened the category context menu, so clearly i want to 
>>> switch /category/ visibility. i feel it obstructs usability.
>>>
>>> wrt. initialization and standard
>>> that is cosmetic. unfortunately the plugin is written to need a reference 
>>> to it's menu item. easiest way to get it is the way i wrote it. no need for 
>>> loops to find it later (waste of cpu cycles). this needs the feature 
>>> install call to be within the plugin, like in so many others, e.g. 
>>> OpenJUMPConfiguration's plugins.
>>> in the future i want to reworks this whole mess to be defined within the 
>>> xml files, with neat atributes that can define icons, enablechecks, 
>>> positions within the menu and all. but until then, let's simply see that it 
>>> works.
>>>
>>> any strong objection to restore 3558 and let me fix the NPE in the check 
>>> hook?
>> No objection, go ahead,
>> If you could keep "cosmetic" changes (java-5 upgrade, replacement of
>> deprecate methods, standardization of method naming), I would appreciate
> we really should ignore the deprecated java 1.5 by now. it is simply not 
> worth even writing about it ;).. but out of interest what was 1.5 
> incompatible?
Nothing was 1.5 incompatible or even deprecated. Cosmetic changes were :
- 1.5 upgrades : use of generic and autoboxing (makes code a bit shorter 
and more readable)
- replacement of deprecated methods : FeatureInstaller methods (in 
JumpConfiguration)
- standardization of method naming : method names should start with a 
lower case letter
- others : removed a lot of useless "this" keyword

Nothing absolutely needed, but when I spend some times to understand a 
new class,
I generally take this opportunity to make changes which, from my point 
of view,  can
improve readability.

Michaël
>
> ..ede
>
>> Michaël
>>> ..ede
>>>
>>>
>>> On 22.05.2013 00:09, Michaël Michaud wrote:
>>>> Hi,
>>>>
>>>> r3558 includes a new fix to bug 3613603 (3613660).
>>>> Ede, I tried to make the initialization phase more standard.
>>>> I removed the "hook" in the createEnableCheck, but maybe
>>>> I misunderstood what it was for.
>>>>
>>>> I tried to keep the original way this plugins work, but it is quite
>>>> difficult to understand.
>>>> One must consider that turning category visibility off does not change
>>>> layer visibility, but
>>>> hide it until the category visibility is turned on again.
>>>>
>>>> Michaël
>>>>
>>>>
>>>>> Bugs item #3613660, was opened at 2013-05-21 06:28
>>>>> Message generated for change (Comment added) made by edso
>>>>> You can respond by visiting:
>>>>> https://sourceforge.net/tracker/?func=detail&atid=679906&aid=3613660&group_id=118054
>>>>>
>>>>> Please note that this message will contain a full copy of the comment 
>>>>> thread,
>>>>> including the initial issue submission, for this request,
>>>>> not just the latest update.
>>>>> Category: General / Other
>>>>> Group: Linux / Unix
>>>>>> Status: Closed
>>>>>> Resolution: Duplicate
>>>>> Priority: 7
>>>>> Private: No
>>>>> Submitted By: G. Aruta (ma15569)
>>>>> Assigned to: Nobody/Anonymous (nobody)
>>>>> Summary: NPE on right-click a category
>>>>>
>>>>> Initial Comment:
>>>>> Create a new layer
>>>>> Click on category to access to context menu (right-click)
>>>>> A NPE appears:
>>>>> java.lang.NullPointerException
>>>>>   at 
>>>>> org.openjump.core.ui.plugin.mousemenu.category.SetCategoryVisibilityPlugIn.layerSelectionChanged(SetCategoryVisibilityPlugIn.java:254)
>>>>>   at 
>>>>> org.openjump.core.ui.plugin.mousemenu.category.SetCategoryVisibilityPlugIn$1.check(SetCategoryVisibilityPlugIn.java:128)
>>>>>   at 
>>>>> com.vividsolutions.jump.workbench.plugin.MultiEnableCheck.check(MultiEnableCheck.java:60)
>>>>>   at 
>>>>> org.openjump.core.ui.swing.listener.EnableCheckMenuItemShownListener.menuItemShown(EnableCheckMenuItemShownListener.java:60)
>>>>>   at 
>>>>> com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller$2.popupMenuWillBecomeVisible(FeatureInstaller.java:903)
>>>>>   at 
>>>>> javax.swing.JPopupMenu.firePopupMenuWillBecomeVisible(JPopupMenu.java:640)
>>>>>   at javax.swing.JPopupMenu.setVisible(JPopupMenu.java:747)
>>>>>   at javax.swing.JPopupMenu.show(JPopupMenu.java:921)
>>>>>   at 
>>>>> com.vividsolutions.jump.workbench.ui.TreeLayerNamePanel.tree_mouseReleased(TreeLayerNamePanel.java:524)
>>>>>   at 
>>>>> com.vividsolutions.jump.workbench.ui.TreeLayerNamePanel$9.mousePressed(TreeLayerNamePanel.java:472)
>>>>>   at 
>>>>> java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
>>>>>   at 
>>>>> java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
>>>>>   at 
>>>>> java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
>>>>>   at 
>>>>> java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
>>>>>   at java.awt.Component.processMouseEvent(Component.java:6285)
>>>>>   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
>>>>>   at java.awt.Component.processEvent(Component.java:6053)
>>>>>   at java.awt.Container.processEvent(Container.java:2045)
>>>>>   at java.awt.Component.dispatchEventImpl(Component.java:4649)
>>>>>   at java.awt.Container.dispatchEventImpl(Container.java:2103)
>>>>>   at java.awt.Component.dispatchEvent(Component.java:4475)
>>>>>   at 
>>>>> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
>>>>>   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4294)
>>>>>   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
>>>>>   at java.awt.Container.dispatchEventImpl(Container.java:2089)
>>>>>   at java.awt.Window.dispatchEventImpl(Window.java:2587)
>>>>>   at java.awt.Component.dispatchEvent(Component.java:4475)
>>>>>   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
>>>>>   at java.awt.EventQueue.access$300(EventQueue.java:96)
>>>>>   at java.awt.EventQueue$2.run(EventQueue.java:634)
>>>>>   at java.awt.EventQueue$2.run(EventQueue.java:632)
>>>>>   at java.security.AccessController.doPrivileged(Native Method)
>>>>>   at 
>>>>> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
>>>>>   at 
>>>>> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
>>>>>   at java.awt.EventQueue$3.run(EventQueue.java:648)
>>>>>   at java.awt.EventQueue$3.run(EventQueue.java:646)
>>>>>   at java.security.AccessController.doPrivileged(Native Method)
>>>>>   at 
>>>>> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
>>>>>   at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
>>>>>   at 
>>>>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
>>>>>   at 
>>>>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
>>>>>   at 
>>>>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
>>>>>   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
>>>>>   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
>>>>>   at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
>>>>>
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>>
>>>>>> Comment By: ede (edso)
>>>>> Date: 2013-05-21 06:36
>>>>>
>>>>> Message:
>>>>> duplicate of
>>>>> https://sourceforge.net/tracker/?func=detail&atid=679906&aid=3613603&group_id=118054
>>>>>
>>>>> please use search function before posting ;).. ede
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>>
>>>>> You can respond by visiting:
>>>>> https://sourceforge.net/tracker/?func=detail&atid=679906&aid=3613660&group_id=118054
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Try New Relic Now & We'll Send You this Cool Shirt
>>>>> New Relic is the only SaaS-based application performance monitoring 
>>>>> service
>>>>> that delivers powerful full stack analytics. Optimize and monitor your
>>>>> browser, app, & servers with just a few lines of code. Try New Relic
>>>>> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
>>>>> _______________________________________________
>>>>> Jump-pilot-devel mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>
>>>>>
>>>> ------------------------------------------------------------------------------
>>>> Try New Relic Now & We'll Send You this Cool Shirt
>>>> New Relic is the only SaaS-based application performance monitoring service
>>>> that delivers powerful full stack analytics. Optimize and monitor your
>>>> browser, app, & servers with just a few lines of code. Try New Relic
>>>> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
>>>> _______________________________________________
>>>> Jump-pilot-devel mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>
>>> ------------------------------------------------------------------------------
>>> Try New Relic Now & We'll Send You this Cool Shirt
>>> New Relic is the only SaaS-based application performance monitoring service
>>> that delivers powerful full stack analytics. Optimize and monitor your
>>> browser, app, & servers with just a few lines of code. Try New Relic
>>> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
>>> _______________________________________________
>>> Jump-pilot-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Try New Relic Now & We'll Send You this Cool Shirt
>> New Relic is the only SaaS-based application performance monitoring service
>> that delivers powerful full stack analytics. Optimize and monitor your
>> browser, app, & servers with just a few lines of code. Try New Relic
>> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to