X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooGUI.java;h=2ae23a64849221afc93de30cefd997f47f958ef4;hp=43c553a5d0f11336cb3a1a25f56e5733124ce8b3;hb=HEAD;hpb=623c453a916803c781d32f667fca8698d0814c8c diff --git a/MooGUI.java b/MooGUI.java index 43c553a..2ae23a6 100644 --- a/MooGUI.java +++ b/MooGUI.java @@ -3,6 +3,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; +import java.io.*; /** * Moosique's graphical user interface. @@ -18,6 +19,7 @@ public class MooGUI extends JFrame { private MooView view; private JLabel statusBar; private java.util.Timer timer; + private boolean updateView = false; public static final int statusResetDelay = 3000; public static final Font FONT = new Font("Helvetica", Font.PLAIN, 10); public static final Color bgColor = new Color(192, 224, 255); @@ -27,8 +29,9 @@ public class MooGUI extends JFrame { * Creates the GUI. * @param seq The sequence that the program is operating on. */ - public MooGUI(Sequence seq) { + public MooGUI(Sequence seq, File file) { super("Moosique"); + if (file != null) setTitle("Moosique - " + file.getName()); this.seq = seq; advanceStatus(); @@ -76,8 +79,8 @@ public class MooGUI extends JFrame { } }}; am.put("Play", playAction); - am.put("Change octave up", createOctaveAction(1)); - am.put("Change octave down", createOctaveAction(-1)); + am.put("Change octave up", createOctaveAction(true)); + am.put("Change octave down", createOctaveAction(false)); InputMap im = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); KeyStroke playKey = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0); @@ -117,8 +120,10 @@ public class MooGUI extends JFrame { * Changes the sequence of the GUI. * @param sequence the MIDI sequence to visualize */ - public void setSequence(Sequence sequence) { + public void setSequence(Sequence sequence, File file) { seq = sequence; + if (file != null) setTitle("Moosique - " + file.getName()); + else setTitle("Moosique"); view.setTracks(seq.getTracks(), true); toolbar.resetProgInd(); } @@ -136,23 +141,30 @@ public class MooGUI extends JFrame { * Calls on the main view to update the track views, * and on the toolbar to update the progress indicator. */ - public void update(long tickPosition){ - view.update(tickPosition); + public synchronized void update(long tickPosition){ + if (updateView) view.update(tickPosition); toolbar.updateProgInd(tickPosition); } + public MooView getView() { + return view; + } + /** * Creates an action for a specific octave. - * @param octave The octave we want an action for. + * @param increase true for increase, false for decrease */ - private Action createOctaveAction(final int octave) { + private Action createOctaveAction(final boolean increase) { Action octaveAction = new AbstractAction() { public void actionPerformed(ActionEvent ae) { - MooKeyboard.setOctave(octave); + MooKeyboard.setRelativeOctave(increase); }}; return octaveAction; } + /** + * Advances the current progress counter by printing a "." to the System output. + */ private void advanceStatus() { System.out.print("."); }