import java.awt.*;
import java.awt.event.*;
import java.util.*;
+import java.io.*;
/**
* Moosique's graphical user interface.
private MooView view;
private JLabel statusBar;
private java.util.Timer timer;
+ private boolean updateView = true;
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);
* 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();
* 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();
}
* 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);
}
return octaveAction;
}
+ /**
+ * Advances the current progress counter by printing a "." to the System output.
+ */
private void advanceStatus() {
System.out.print(".");
}