Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-399

Refactor SeqMapView by introducing new abstractions to reduce complexity of this class

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      We should not have a class that is ~3000 lines. There is an obvious failure to apply the single responsibility principle to in this location of the code. Please spend some time refactoring this code.

        Attachments

          Activity

          dcnorris David Norris (Inactive) created issue -
          dcnorris David Norris (Inactive) made changes -
          Field Original Value New Value
          Rank Ranked higher
          dcnorris David Norris (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          dcnorris David Norris (Inactive) made changes -
          Sprint Sprint 12 [ 17 ] Sprint 12, Sprint 13 [ 17, 18 ]
          dcnorris David Norris (Inactive) made changes -
          Rank Ranked higher
          dcnorris David Norris (Inactive) made changes -
          Status In Progress [ 3 ] Needs Testing [ 10002 ]
          Hide
          tmall Tarun Mall (Inactive) added a comment -

          commit 00d6e030ab90a720b6771591ad8933c01a710f16
          Merge: d317e8c 34b8ef0
          Author: hillrunner2008 <Hillrunner2008@gmail.com>
          Date: Tue Feb 10 10:29:52 2015 -0500

          Merged in c2tarun/integrated-genome-browser/IGBF-323 (pull request #206)

          Code refactoring of SeqMapView done.

          Show
          tmall Tarun Mall (Inactive) added a comment - commit 00d6e030ab90a720b6771591ad8933c01a710f16 Merge: d317e8c 34b8ef0 Author: hillrunner2008 <Hillrunner2008@gmail.com> Date: Tue Feb 10 10:29:52 2015 -0500 Merged in c2tarun/integrated-genome-browser/ IGBF-323 (pull request #206) Code refactoring of SeqMapView done.
          mason Mason Meyer (Inactive) made changes -
          Status Needs Testing [ 10002 ] Testing In Progress [ 10003 ]
          mason Mason Meyer (Inactive) made changes -
          Assignee Tarun Mall [ tmall ] Mason Meyer [ mason ]
          Hide
          mason Mason Meyer (Inactive) added a comment - - edited

          While testing I noticed that the foreground color was not being respected. The foreground color should change the color of the annotations/reads but it changed the track label instead.

          Also, a null pointer exception was generated when changing the color settings under the Annotation tab (see exception below).

          Moving back to To-Do column.

          Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
          at com.affymetrix.igb.action.ChangeColorActionA.performAction(ChangeColorActionA.java:97)
          at com.affymetrix.igb.shared.Actions.setLabelColor(Actions.java:44)
          at com.affymetrix.igb.shared.StylePanelImpl.labelColorComboBoxActionPerformedA(StylePanelImpl.java:85)
          at com.affymetrix.igb.shared.StylePanel.labelColorComboBoxActionPerformed(StylePanel.java:146)
          at com.affymetrix.igb.shared.StylePanel$$Lambda$125/987834065.actionPerformed(Unknown Source)
          at com.jidesoft.combobox.AbstractComboBox.fireActionEvent(Unknown Source)
          at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source)
          at com.jidesoft.combobox.ColorComboBox.setSelectedItem(Unknown Source)
          at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source)
          at com.jidesoft.combobox.AbstractComboBox$3.itemStateChanged(Unknown Source)
          at com.jidesoft.combobox.PopupPanel.fireItemStateChanged(Unknown Source)
          at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source)
          at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source)
          at com.jidesoft.combobox.ColorChooserPanel.setSelectedColor(Unknown Source)
          at com.jidesoft.combobox.ColorChooserPanel$d_.actionPerformed(Unknown Source)
          at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
          at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
          at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
          at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
          at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
          at java.awt.Component.processMouseEvent(Unknown Source)
          at javax.swing.JComponent.processMouseEvent(Unknown Source)
          at java.awt.Component.processEvent(Unknown Source)
          at java.awt.Container.processEvent(Unknown Source)
          at java.awt.Component.dispatchEventImpl(Unknown Source)
          at java.awt.Container.dispatchEventImpl(Unknown Source)
          at java.awt.Component.dispatchEvent(Unknown Source)
          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
          at java.awt.Container.dispatchEventImpl(Unknown Source)
          at java.awt.Window.dispatchEventImpl(Unknown Source)
          at java.awt.Component.dispatchEvent(Unknown Source)
          at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
          at java.awt.EventQueue.access$400(Unknown Source)
          at java.awt.EventQueue$3.run(Unknown Source)
          at java.awt.EventQueue$3.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
          at java.awt.EventQueue$4.run(Unknown Source)
          at java.awt.EventQueue$4.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
          at java.awt.EventQueue.dispatchEvent(Unknown Source)
          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
          at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
          at java.awt.EventDispatchThread.run(Unknown Source)

          Show
          mason Mason Meyer (Inactive) added a comment - - edited While testing I noticed that the foreground color was not being respected. The foreground color should change the color of the annotations/reads but it changed the track label instead. Also, a null pointer exception was generated when changing the color settings under the Annotation tab (see exception below). Moving back to To-Do column. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.affymetrix.igb.action.ChangeColorActionA.performAction(ChangeColorActionA.java:97) at com.affymetrix.igb.shared.Actions.setLabelColor(Actions.java:44) at com.affymetrix.igb.shared.StylePanelImpl.labelColorComboBoxActionPerformedA(StylePanelImpl.java:85) at com.affymetrix.igb.shared.StylePanel.labelColorComboBoxActionPerformed(StylePanel.java:146) at com.affymetrix.igb.shared.StylePanel$$Lambda$125/987834065.actionPerformed(Unknown Source) at com.jidesoft.combobox.AbstractComboBox.fireActionEvent(Unknown Source) at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source) at com.jidesoft.combobox.ColorComboBox.setSelectedItem(Unknown Source) at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source) at com.jidesoft.combobox.AbstractComboBox$3.itemStateChanged(Unknown Source) at com.jidesoft.combobox.PopupPanel.fireItemStateChanged(Unknown Source) at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source) at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source) at com.jidesoft.combobox.ColorChooserPanel.setSelectedColor(Unknown Source) at com.jidesoft.combobox.ColorChooserPanel$d_.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
          mason Mason Meyer (Inactive) made changes -
          Assignee Mason Meyer [ mason ] Tarun Mall [ tmall ]
          mason Mason Meyer (Inactive) made changes -
          Status Testing In Progress [ 10003 ] Open [ 1 ]
          dcnorris David Norris (Inactive) made changes -
          Status Open [ 1 ] Needs Testing [ 10002 ]
          mason Mason Meyer (Inactive) made changes -
          Status Needs Testing [ 10002 ] Testing In Progress [ 10003 ]
          mason Mason Meyer (Inactive) made changes -
          Assignee Tarun Mall [ tmall ] Mason Meyer [ mason ]
          mason Mason Meyer (Inactive) made changes -
          Sprint Sprint 12, Sprint 13 [ 17, 18 ] Sprint 12 [ 17 ]
          mason Mason Meyer (Inactive) made changes -
          Sprint Sprint 12 [ 17 ] Sprint 12, Sprint 14 [ 17, 19 ]
          mason Mason Meyer (Inactive) made changes -
          Rank Ranked higher
          ann.loraine Ann Loraine made changes -
          Epic Link IGBF-99 [ 14534 ]
          mason Mason Meyer (Inactive) made changes -
          Sprint Sprint 12, Sprint 14 [ 17, 19 ] Sprint 12 [ 17 ]
          mason Mason Meyer (Inactive) made changes -
          Sprint Sprint 12 [ 17 ] Sprint 12, Sprint 15 [ 17, 20 ]
          mason Mason Meyer (Inactive) made changes -
          Rank Ranked higher
          Hide
          mason Mason Meyer (Inactive) added a comment -

          My testing verifies that IGB is still stable and operating as expected after the refactoring. Since this story is resolved it will now be closed.

          Show
          mason Mason Meyer (Inactive) added a comment - My testing verifies that IGB is still stable and operating as expected after the refactoring. Since this story is resolved it will now be closed.
          mason Mason Meyer (Inactive) made changes -
          Resolution Done [ 10000 ]
          Status Testing In Progress [ 10003 ] Closed [ 6 ]
          ann.loraine Ann Loraine made changes -
          Workflow Loraine Lab Workflow [ 15656 ] Fall 2019 Workflow Update [ 19350 ]
          ann.loraine Ann Loraine made changes -
          Workflow Fall 2019 Workflow Update [ 19350 ] Revised Fall 2019 Workflow Update [ 21467 ]

            People

            • Assignee:
              mason Mason Meyer (Inactive)
              Reporter:
              dcnorris David Norris (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: