]> ruin.nu Git - moosique.git/blobdiff - MooView.java
no message
[moosique.git] / MooView.java
index b21cf29058850c885a58e89f33216dcc63cae30a..3f088bd5930f801d27e5adfafb3efa4b1ed0f256 100644 (file)
@@ -30,10 +30,28 @@ public class MooView extends JScrollPane {
         * @param tracks        the tracks for which to add views
         */
        public void setTracks(Track[] tracks) {
-               trackPanel.removeAll();
-               trackPanel.setLayout(new GridLayout(1,tracks.length));
-               for (int i = 0; i < tracks.length; i++) {
-                       trackPanel.add(new MooTrackView(tracks[i]));
+               if (tracks.length == 1) {
+                       // If MIDI file is of type 0, creates a view for the track.
+                       trackPanel.add(new MooTrackView(tracks[0]));
+               } else {
+                       // Creates dialog for progress bar.
+                       JDialog progressDialog = new JDialog(Moosique.getGUI(), "Visualizing MIDI file...", false);
+                       JProgressBar progressBar = new JProgressBar(0, tracks.length);
+                       progressBar.setValue(0);
+                       progressBar.setStringPainted(true);
+                       progressDialog.getContentPane().add(progressBar);
+                       progressDialog.pack();
+                       progressDialog.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - progressDialog.getWidth()) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - progressDialog.getHeight()) / 2);
+                       progressDialog.setVisible(true);
+       
+                       // Starts filling the track panel with track views, while updating the progress bar.
+                       trackPanel.removeAll();
+                       trackPanel.setLayout(new GridLayout(1,tracks.length));
+                       for (int i = 1; i < tracks.length; i++) {
+                               trackPanel.add(new MooTrackView(tracks[i]));
+                               progressBar.setValue(i+1);
+                       }
+                       progressDialog.dispose();
                }
                trackPanel.validate();
        }