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

Investigate replacing Jidesoft components

    Details

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

      Description

      1. After eliminating Jidesoft Ultimate from IGB Project multiple UI components do not work. This issue is for the JideTable component

      This work is going to be done using main-JDK8 as the starting point: https://bitbucket.org/lorainelab/integrated-genome-browser/src/main-JDK8/

        Attachments

        1. Jidesoft_ColorComboBox.png
          Jidesoft_ColorComboBox.png
          6 kB
        2. Jidesoft_DataManagement.png
          Jidesoft_DataManagement.png
          6 kB
        3. Jidesoft_SpeciesTable.png
          Jidesoft_SpeciesTable.png
          9 kB
        4. Jidesoft_TrackPreferences.png
          Jidesoft_TrackPreferences.png
          28 kB
        5. MapRangeBox.png
          MapRangeBox.png
          274 kB
        6. SearchView.png
          SearchView.png
          253 kB
        7. StatusBar.png
          StatusBar.png
          475 kB
        8. StyledJTable_WebLinksView.png
          StyledJTable_WebLinksView.png
          241 kB

          Issue Links

            Activity

            Hide
            karthik Karthik Raveendran added a comment -

            There is an issue with runtime NullException in the new JideTable in Java 8 which needs to be addressed before I can proceed with creating a UI Component

             Error during instantiation of the implementation object
            java.lang.NullPointerException
                    at javax.swing.JTable.createDefaultColumnsFromModel(JTable.java:1283)
                    at javax.swing.JTable.tableChanged(JTable.java:4392)
                    at javax.swing.JTable.setModel(JTable.java:3694)
                    at javax.swing.JTable.<init>(JTable.java:635)
                    at javax.swing.JTable.<init>(JTable.java:563)
                    at com.affymetrix.igb.swing.jide.utils.JideTable.<init>(JideTable.java:14)
                    at com.affymetrix.igb.swing.jide.StyledJTable.<init>(StyledJTable.java:45)
            
            
            Show
            karthik Karthik Raveendran added a comment - There is an issue with runtime NullException in the new JideTable in Java 8 which needs to be addressed before I can proceed with creating a UI Component Error during instantiation of the implementation object java.lang.NullPointerException at javax.swing.JTable.createDefaultColumnsFromModel(JTable.java:1283) at javax.swing.JTable.tableChanged(JTable.java:4392) at javax.swing.JTable.setModel(JTable.java:3694) at javax.swing.JTable.<init>(JTable.java:635) at javax.swing.JTable.<init>(JTable.java:563) at com.affymetrix.igb.swing.jide.utils.JideTable.<init>(JideTable.java:14) at com.affymetrix.igb.swing.jide.StyledJTable.<init>(StyledJTable.java:45)
            Hide
            karthik Karthik Raveendran added a comment -

            New error in the issue:

             Unable to resolve org.osgi.service.component.annotations [56](R 56.0): missing requirement [org.osgi.service.component.annotations [56](R 56.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolved requirements: [[org.osgi.service.component.annotations [56](R 56.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*)))]
            	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4368)
            	at org.apache.felix.framework.Felix.startBundle(Felix.java:2281)
            	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
            	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
            	at com.affymetrix.main.OSGiHandler.loadBundles(OSGiHandler.java:83)
            	at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:63)
            	at com.affymetrix.main.Main.main(Main.java:30)
            
            Show
            karthik Karthik Raveendran added a comment - New error in the issue: Unable to resolve org.osgi.service.component.annotations [56](R 56.0): missing requirement [org.osgi.service.component.annotations [56](R 56.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolved requirements: [[org.osgi.service.component.annotations [56](R 56.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*)))] at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4368) at org.apache.felix.framework.Felix.startBundle(Felix.java:2281) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) at com.affymetrix.main.OSGiHandler.loadBundles(OSGiHandler.java:83) at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:63) at com.affymetrix.main.Main.main(Main.java:30)
            Hide
            karthik Karthik Raveendran added a comment -

            All errors resolved. Jidesoft dependencies are removed and Jidesoft classes used by IGB are replaced with placeholders. However, this has caused significant problems in the UI which needs to be inspected. Screenshots of some of these problems are added to this issue.

            See commit: https://bitbucket.org/KarthikRavee91/karthikfork-igb/commits/1c24fc511f6ffd1475719612a333c661b130802f

            Show
            karthik Karthik Raveendran added a comment - All errors resolved. Jidesoft dependencies are removed and Jidesoft classes used by IGB are replaced with placeholders. However, this has caused significant problems in the UI which needs to be inspected. Screenshots of some of these problems are added to this issue. See commit: https://bitbucket.org/KarthikRavee91/karthikfork-igb/commits/1c24fc511f6ffd1475719612a333c661b130802f
            Hide
            nfreese Nowlan Freese added a comment - - edited

            JideTable - See StyledJTable.java and WebLinksView.java. Removing references to JideTable (and replacing with a JTable) gets rid of the empty grid lines in tables in IGB. This functionality is mostly cosmetic and may not need to be replaced. See IGBF-3494.

            ListDataIntelliHints - See SearchView.java (in the Advanced Search Tab plugin) and MapRangeBox.java (in Core - IGB view) classes. Removing searchHints (uses ListDataIntelliHints) from SearchView.java gets rid of the hints when searching in the Advanced Search Tab while using a Search type of ID, Name, or Title. Removing SearchHints, which extends ListDataIntelliHints, from MapRangeBox gets rid of the hints when typing in the range and search box. This hint functionality would need to be replaced as it is very useful when searching in IGB. Note that there are other instances of searchHints in the IGB codebase that do not use Jide. See IGBF-3496.

            MemoryStatusBarItem - See StatusBar.java class. Removing this gets rid of the memory usage widget at the bottom corner of IGB. The MemoryStatusBarItem extends Jide StatusBarItem > NullPanel > JPanel. The lost functionality would be good to replace, at least so far as knowing how much memory is available and how much is being used. See IGBF-3497.

            ColorComboBox and ColorExComboBox - Used extensively throughout the codebase for providing a color picker widget. See IGBF-3491 for additional details.

            LookAndFeelFactory - See IGB.java. Removing this does not appear to impact the look and feel on Mac, I am unsure about Windows and Linux. Karthik has already worked on a replacement (see IGBF-3493).

            Show
            nfreese Nowlan Freese added a comment - - edited JideTable - See StyledJTable.java and WebLinksView.java. Removing references to JideTable (and replacing with a JTable) gets rid of the empty grid lines in tables in IGB. This functionality is mostly cosmetic and may not need to be replaced. See IGBF-3494 . ListDataIntelliHints - See SearchView.java (in the Advanced Search Tab plugin) and MapRangeBox.java (in Core - IGB view) classes. Removing searchHints (uses ListDataIntelliHints) from SearchView.java gets rid of the hints when searching in the Advanced Search Tab while using a Search type of ID, Name, or Title. Removing SearchHints, which extends ListDataIntelliHints, from MapRangeBox gets rid of the hints when typing in the range and search box. This hint functionality would need to be replaced as it is very useful when searching in IGB. Note that there are other instances of searchHints in the IGB codebase that do not use Jide. See IGBF-3496 . MemoryStatusBarItem - See StatusBar.java class. Removing this gets rid of the memory usage widget at the bottom corner of IGB. The MemoryStatusBarItem extends Jide StatusBarItem > NullPanel > JPanel. The lost functionality would be good to replace, at least so far as knowing how much memory is available and how much is being used. See IGBF-3497 . ColorComboBox and ColorExComboBox - Used extensively throughout the codebase for providing a color picker widget. See IGBF-3491 for additional details. LookAndFeelFactory - See IGB.java. Removing this does not appear to impact the look and feel on Mac, I am unsure about Windows and Linux. Karthik has already worked on a replacement (see IGBF-3493 ).
            Hide
            nfreese Nowlan Freese added a comment -

            Investigation complete, new tickets created to implement/replace jidesoft features.

            Closing ticket.

            Show
            nfreese Nowlan Freese added a comment - Investigation complete, new tickets created to implement/replace jidesoft features. Closing ticket.
            Hide
            nfreese Nowlan Freese added a comment -

            After discussing with Karthik, we will not merge the current commit removing JideSoft with the loraine lab main-JDK8 branch at this time. The 3486 branch will act as a branch point with additional commits being merged in as part of the above mentioned tickets. Once the above tickets are complete the 3486 branch will be rebased on top of main-JDK8 and then merged.

            Show
            nfreese Nowlan Freese added a comment - After discussing with Karthik, we will not merge the current commit removing JideSoft with the loraine lab main-JDK8 branch at this time. The 3486 branch will act as a branch point with additional commits being merged in as part of the above mentioned tickets. Once the above tickets are complete the 3486 branch will be rebased on top of main-JDK8 and then merged.

              People

              • Assignee:
                karthik Karthik Raveendran
                Reporter:
                karthik Karthik Raveendran
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: