Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement VizualizationController.selectNodes/selectEdges #1562

Closed
eduramiba opened this issue Aug 26, 2016 · 13 comments
Closed

Implement VizualizationController.selectNodes/selectEdges #1562

eduramiba opened this issue Aug 26, 2016 · 13 comments

Comments

@eduramiba
Copy link
Member

Bring back this feature (commented out in 0.9)

See gephi/gephi-plugins#124

@eduramiba
Copy link
Member Author

eduramiba commented Jan 5, 2017

Reopening: need to enable select button in filters and make right click context menu work with selected nodes correctly. See gephi/gephi-plugins#124 (comment)

@eduramiba eduramiba reopened this Jan 5, 2017
@jbliesener
Copy link
Contributor

Bumping this issue, as it still restrains me to Gephi 0.8.2.

Any news?

@eduramiba
Copy link
Member Author

Sorry still in the list to finish

@jbliesener
Copy link
Contributor

Thank you, Eduardo. I'll test that right away.

@eduramiba
Copy link
Member Author

Cool :) Please have in mind that the build needs to finish first before maven snapshot is updated, if you use them to test https://travis-ci.org/gephi/gephi/builds/266313464

@jbliesener
Copy link
Contributor

Eduardo,

after testing around with it for a while, I ran into a problem which I was able to reproduce like this:

Check the videos:
https://youtu.be/2LnIAsBFXuQ
https://youtu.be/o3_tNiyZBtk
https://youtu.be/xCDAt41HPpw

  1. Start gephi
  2. Select "java.gexf" from welcome window. Make sure that the mouse pointer is NOT over the graph window when you generate the graph (avoid passing through the graph window or selecting ANY node)
  3. Instantiate Filter "Topology/Degree Range". Do NOT click the "Filter" button
  4. Click the "Select" button in the filter panel.

Result:

java.lang.NullPointerException
at org.gephi.visualization.opengl.CompatibilityEngine.getSelectedEdges(CompatibilityEngine.java:475)
at org.gephi.visualization.opengl.CompatibilityEngine.resetEdgesSelection(CompatibilityEngine.java:566)
at org.gephi.visualization.opengl.CompatibilityEngine.resetSelection(CompatibilityEngine.java:550)
at org.gephi.visualization.api.selection.SelectionManager.resetSelection(SelectionManager.java:146)
at org.gephi.visualization.VizController.resetSelection(VizController.java:209)
at org.gephi.filters.FilterThread.select(FilterThread.java:170)
[catch] at org.gephi.filters.FilterThread.run(FilterThread.java:123)

Another way to reproduce the error is:

  1. Start Gephi
  2. Select "java.gexf" from welcome window. Pass the mouse through the graph window area before the graph is created.
  3. Instantiate Filter "Topology/Degree Range". Do NOT click the "Filter" button
  4. Click the "Select" button in the filter panel various times, preferably in fast succession.

Result:

java.lang.NullPointerException
at org.gephi.visualization.opengl.CompatibilityEngine.getSelectedNodes(CompatibilityEngine.java:463)
at org.gephi.visualization.opengl.CompatibilityEngine.resetNodesSelection(CompatibilityEngine.java:560)
at org.gephi.visualization.opengl.CompatibilityEngine.resetSelection(CompatibilityEngine.java:549)
at org.gephi.visualization.api.selection.SelectionManager.resetSelection(SelectionManager.java:146)
at org.gephi.visualization.VizController.resetSelection(VizController.java:209)
at org.gephi.filters.FilterControllerImpl.selectVisible(FilterControllerImpl.java:296)
at org.gephi.desktop.filters.FiltersPanel$4.actionPerformed(FiltersPanel.java:148)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

eduramiba added a commit that referenced this issue Aug 23, 2017
@eduramiba
Copy link
Member Author

Thanks for the report! The last commit should fix this, please try later.

@jbliesener
Copy link
Contributor

Will do. Thank you again.

@jbliesener
Copy link
Contributor

Still occurs with Gephi 0.9.2-SNAPSHOT 201708231739:

https://youtu.be/L-G7ZBV8zsI
https://youtu.be/usXHSN-2XOc
https://youtu.be/aqjqCc2nqac

@jbliesener
Copy link
Contributor

Eduardo, please check that last one (https://youtu.be/aqjqCc2nqac). It's a bit different, but it really points towards Octree.

Are you able to reproduce these errors? Can I help with additional debugging information? I can run Gephi from source and put breakpoints wherever you want me to.

eduramiba added a commit that referenced this issue Aug 24, 2017
…null pointer exception and synchronization issues with octree usage
@eduramiba
Copy link
Member Author

Oh thanks, there was another null pointer and I think some synchronization issues with concurrent octree usage. I added some synchronized marks and it does not seem to affect performance.

Can you please test this and check that performance is not worse with these new changes if you have some big graphs?

@jbliesener
Copy link
Contributor

That seems to have solved the issue. Thank you very much.

Probably I'm not the most qualified to vote about big graphs, but for now I don't see any performance degradation.

@eduramiba
Copy link
Member Author

Great! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants