From c3a31c2aa833e2197f0929655c69a2090e8bbecc Mon Sep 17 00:00:00 2001 From: Einar Pehrson Date: Fri, 16 May 2003 17:10:36 +0000 Subject: [PATCH] no message --- MooGUI.java | 2 +- MooView.java | 41 ++++++++++++++++++++++++++++------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/MooGUI.java b/MooGUI.java index 8596818..e1ee025 100644 --- a/MooGUI.java +++ b/MooGUI.java @@ -122,7 +122,7 @@ public class MooGUI extends JFrame { */ public void setSequence(Sequence sequence) { seq = sequence; - view.setTracks(seq.getTracks()); + view.setTracks(seq.getTracks(), true); toolbar.resetProgInd(); } diff --git a/MooView.java b/MooView.java index 0215b82..1b114b6 100644 --- a/MooView.java +++ b/MooView.java @@ -15,6 +15,8 @@ public class MooView extends JScrollPane { private JPanel trackPanel; private JPanel titlePanel; private MooViewCounter viewCounter; + private JDialog progressDialog; + private JProgressBar progressBar; private int numberOfTracks; /** @@ -22,28 +24,33 @@ public class MooView extends JScrollPane { */ public MooView(Track[] tracks) { super(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + + // Configures scroll pane viewport (track views). trackPanel = new JPanel(new GridLayout(1,3), true); setViewportView(trackPanel); getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE); + // Configures viewport column header (track titles). titlePanel = new JPanel(new GridLayout(1,3),true); JViewport columnHeader = new JViewport(); columnHeader.setView(titlePanel); setColumnHeaderView(columnHeader); + // Configures viewport row header (view counter). viewCounter = new MooViewCounter(null); JViewport rowHeader = new JViewport(); rowHeader.setView(viewCounter); setRowHeaderView(rowHeader); - setTracks(tracks); + // Updates the view with the given tracks. + setTracks(tracks, false); } /** * Fills the track panel with track views for all tracks in the current sequence. * @param tracks the tracks for which to add views */ - public void setTracks(Track[] tracks) { + public void setTracks(Track[] tracks, boolean showProgress) { setDoubleBuffered(true); numberOfTracks = tracks.length; trackPanel.removeAll(); @@ -55,15 +62,21 @@ public class MooView extends JScrollPane { titlePanel.add(title); trackPanel.add(new MooTrackView(tracks[0], title)); } else { - // Creates dialog for progress bar. - JDialog progressDialog = new JDialog(Moosique.getGUI(), "Visualizing...", 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); + if (showProgress) { + // Creates dialog for progress bar. + progressDialog = new JDialog(Moosique.getGUI(), "Visualizing...", false); + int tracksToDraw = 0; + for (int i = 0; i < tracks.length; i++) { + if (Moosique.shouldBeDrawn(tracks[i])) tracksToDraw++; + } + progressBar = new JProgressBar(0, tracksToDraw); + 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); + } else System.out.println("Creating track views"); // Starts filling the track panel with track views, while updating the progress bar. GridLayout gL = new GridLayout(1,numberOfTracks); @@ -73,13 +86,15 @@ public class MooView extends JScrollPane { MooTrackTitle title = new MooTrackTitle(tracks[i]); titlePanel.add(title); trackPanel.add(new MooTrackView(tracks[i], title)); - progressBar.setValue(i); + if (showProgress) progressBar.setValue(i); + else System.out.print("."); } else { gL.setColumns(--numberOfTracks); trackPanel.setLayout(gL); } } - progressDialog.dispose(); + if (showProgress) progressDialog.dispose(); + else System.out.print("Done"); } /* JPanel filler = new JPanel(); int totalViewLength = trackPanel.getComponents().length * MooTrackView.VIEW_WIDTH; -- 2.39.2