X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooView.java;h=9bf83673048412345f35a1f5d812ae1c1c825a56;hp=1b114b61e7f334ea2e0a66c4fd1b8892be598dc6;hb=HEAD;hpb=c3a31c2aa833e2197f0929655c69a2090e8bbecc diff --git a/MooView.java b/MooView.java index 1b114b6..9bf8367 100644 --- a/MooView.java +++ b/MooView.java @@ -60,7 +60,9 @@ public class MooView extends JScrollPane { trackPanel.setLayout(new FlowLayout()); MooTrackTitle title = new MooTrackTitle(tracks[0]); titlePanel.add(title); - trackPanel.add(new MooTrackView(tracks[0], title)); + MooTrackView mtv = new MooTrackView(tracks[0], title); + trackPanel.add(mtv); + title.setTrackView(mtv); } else { if (showProgress) { // Creates dialog for progress bar. @@ -76,8 +78,8 @@ public class MooView extends JScrollPane { 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); trackPanel.setLayout(gL); @@ -85,7 +87,9 @@ public class MooView extends JScrollPane { if (Moosique.shouldBeDrawn(tracks[i])) { MooTrackTitle title = new MooTrackTitle(tracks[i]); titlePanel.add(title); - trackPanel.add(new MooTrackView(tracks[i], title)); + MooTrackView mtv = new MooTrackView(tracks[i], title); + trackPanel.add(mtv); + title.setTrackView(mtv); if (showProgress) progressBar.setValue(i); else System.out.print("."); } else { @@ -94,7 +98,6 @@ public class MooView extends JScrollPane { } } if (showProgress) progressDialog.dispose(); - else System.out.print("Done"); } /* JPanel filler = new JPanel(); int totalViewLength = trackPanel.getComponents().length * MooTrackView.VIEW_WIDTH; @@ -117,6 +120,19 @@ public class MooView extends JScrollPane { getViewport().setViewPosition(new Point((int)getViewport().getViewPosition().getX(), (int)(tickPosition / (Moosique.getSequence().getResolution() / 4)) * MooTrackView.NOTE_HEIGHT)); } + + /** + * Creates a view for the given track and adds it to the main view. + * @param track the track for which to find the view + */ + public MooTrackView getTrackView(Track track) { + for (int i = 0; i < trackPanel.getComponents().length; i++) { + MooTrackView mtv = (MooTrackView)(trackPanel.getComponents())[i]; + if(mtv.getTrack() == track) return mtv; + } + return null; + } + /** * Creates a view for the given track and adds it to the main view. * @param track the track for which to add a view