]> ruin.nu Git - moosique.git/blobdiff - MooView.java
Fixed the scroll mode. Major performance issue.
[moosique.git] / MooView.java
index 5e25e02b46d046e6fa655f7eafb2a1a181c86abd..4ce6a8288987059901e29a52a98235bf275cd194 100644 (file)
@@ -24,6 +24,7 @@ public class MooView extends JScrollPane {
                super(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
                trackPanel = new JPanel(new GridLayout(1,3), true);
                setViewportView(trackPanel);
+               getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE);
 
                titlePanel = new JPanel(new GridLayout(1,3),true);
                JViewport columnHeader = new JViewport();
@@ -64,11 +65,19 @@ public class MooView extends JScrollPane {
                        progressDialog.setVisible(true);
        
                        // Starts filling the track panel with track views, while updating the progress bar.
-                       trackPanel.setLayout(new GridLayout(1,numberOfTracks));
+                       GridLayout gL = new GridLayout(1,numberOfTracks);
+                       trackPanel.setLayout(gL);
                        for (int i = 1; i < tracks.length; i++) {
-                               trackPanel.add(new MooTrackView(tracks[i]));
-                               titlePanel.add(new MooTrackTitle(tracks[i],i));
-                               progressBar.setValue(i);
+                               if (Moosique.shouldBeDrawn(tracks[i])) {
+                                       System.out.println("Draws track " + i);
+                                       trackPanel.add(new MooTrackView(tracks[i]));
+                                       titlePanel.add(new MooTrackTitle(tracks[i],i));
+                                       progressBar.setValue(i);
+                               } else {
+                                       System.out.println("Doesn't draw track " + i);
+                                       gL.setColumns(--numberOfTracks);
+                                       trackPanel.setLayout(gL);
+                               }
                        }
                        progressDialog.dispose();
                }