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.

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. 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?

..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

Reply via email to