Details
-
Type: Task
-
Status: Closed (View Workflow)
-
Priority: Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: 9.1.6 Major Release
-
Labels:None
-
Story Points:3
-
Epic Link:
-
Sprint:Spring 6 : 30 Mar to Apr 10, Spring 7 : 13 Apr to 24 Apr
Description
Situation: In the IGB main window, if the view is stretched vertically users can navigate vertically using the mouse wheel or, for example, two finger trackpad up and down. However, they cannot move horizontally using two finger trackpad or a horizontal mouse scroll.
Task: Enable horizontal navigation.
Attachments
Activity
[~aloraine]
Any idea where the code for scrolling functionality is ?
I recommend looking in SeqMapView to start.
Code - https://bitbucket.org/nzahara/genoviz-sdk-local/branch/IGBF-2126#diff
Testing Steps -
1. Run igb in offline mode using mvn clean install -o so that it picks up the local genoviz sdk jar and not from nexus.
2. Click on any of the species on IGB main window
3. Zoom in the Horizontal Zoomer so that the horizontal scroller is visible
4. Try to scroll horizontally using mousepad / touchpad.
5. The horizontal scroller should scroll.
Nowlan Freese - can you test the proposed change?
Noor Zahara - can you build an IGB "exe" jar file using the proposed genoviz library? Building an installer may not be practical, but an igb_exe.jar file – with the proposed new genoviz sdk version packaged with it – would allow Dr. Freese to try out the changed code.
Also, because this is a change to the genoviz library, we will need to test the effects on ProtAnnot and SlicedView. This looks a fairly safe change but we need to double-check just to be sure.
Good news is that if you run an IGB with this new genoviz library included in its jar file, ProtAnnot will pick up the library from he platform. So you should not have to re-build ProtAnnot.
Also, a question for you guys:
- What sort of finger motion do I need to do on a mousepad / touchpad to try to scroll horizontally?
Use 2 finger left- right movement to scroll horizontally.
I have shared the igb_exe jar file with Dr.Freese on google drive since the file was too big to upload it here.
Testing on mac:
Two finger swiping now works for both vertical and horizontal scrolling (using Mac trackpad).
I'm getting an exception that looks to be related to a twenty three and me glyph. I don't think this would be related to the changes to Genoviz. It's causing the gene annotations to fail to appear.
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(ImageIO.java:1301)
at org.lorainelab.igb.genotyping.TwentyThreeAndMeVariationGlyph.draw(TwentyThreeAndMeVariationGlyph.java:144)
at com.affymetrix.genoviz.bioviews.Glyph.drawTraversal(Glyph.java:135)
at org.lorainelab.igb.genotyping.TwentyThreeAndMeVariationGlyph.drawTraversal(TwentyThreeAndMeVariationGlyph.java:78)
at com.affymetrix.igb.glyph.DefaultTierGlyph.superDrawChildren(DefaultTierGlyph.java:296)
at com.affymetrix.igb.glyph.DefaultTierGlyph.drawChildren(DefaultTierGlyph.java:264)
at com.affymetrix.igb.view.factories.AbstractTierGlyph.drawTraversal(AbstractTierGlyph.java:311)
at com.affymetrix.genoviz.bioviews.Glyph.drawChildren(Glyph.java:184)
at com.affymetrix.genoviz.bioviews.Glyph.drawTraversal(Glyph.java:138)
at com.affymetrix.genoviz.glyph.RootGlyph.drawTraversal(RootGlyph.java:71)
at com.affymetrix.genoviz.bioviews.View.normalDraw(View.java:455)
at com.affymetrix.genoviz.bioviews.View.draw(View.java:371)
at com.affymetrix.genoviz.bioviews.View.componentPainted(View.java:914)
at com.affymetrix.genoviz.awt.NeoCanvas.postPaintEvent(NeoCanvas.java:69)
at com.affymetrix.genoviz.awt.NeoCanvas.paintComponent(NeoCanvas.java:44)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047)
at javax.swing.JComponent.paint(JComponent.java:1065)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116)
at java.awt.Container.paint(Container.java:1978)
at com.affymetrix.genoviz.widget.NeoMap.paint(NeoMap.java:1277)
at javax.swing.JComponent.paintChildren(JComponent.java:903)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
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:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)
I'm getting the same exception with the twenty three and me glyph on the newest master branch.
[~aloraine] Since the functionality for this issue is working (horizontal scrolling) my recommendation would be to move this to ready for pull request. Although there are a large number of exceptions being created in the console, they do not appear to be related to Noor's changes.
Sorry about that!!
I will fix it right away.
We need to do a bit more testing on a clean branch as this affects the library.
I was not able to test the effects on ProtAnnot or SlicedView due to the exceptions.
Thank you for letting me know about the problem.
The master branch is now fixed with this latest commit:
cc: Nowlan Freese and Noor Zahara
Exception has been fixed (thank you Dr. Loraine).
Protannot and sliced view are working correctly and can now also be scrolled horizontally using a trackpad.
The horizontal scrolling works really well overall. It scales appropriately at the different zoom levels and feels very smooth.
Recommend pull request.
Merged to master branch.
I moved too quickly.
Please also:
- Submit second PR to the Genoviz SDK repository master branch to increment version to 1.1.9 (currently it is 1.1.8)
- Submit third PR to integrated-genome-browser master branch to change the Genoviz SDK version in the parent POM (see top of file where version variables are defined)
cc: Noor Zahara and Nowlan Freese
Version 1.1.9 of Genoviz SDK now deployed to httsp://nexus.bioviz.org mvn-releases repository.
Integrated Genome Browser pull request merged and master branch installer pipeline completed.
Released master branch installers to Early Release IGB to bioviz.org.
Testing master branch installer from early release IGB.
Horizontal scrolling working in main window, no exceptions.
ProtAnnot and Sliced view also working without issues.
Closing issue.
Dr. Freese has suggested this new feature that will make IGB easier to use.
Could you work on this next?
Before getting started, please meet with Dr. Freese (on-line of course!) so that he can explain the feature. He will walk you through it and explain how it will help the IGB user experience.
cc: Nowlan Freese