X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooToolbar.java;h=542488c82ec7afdb0da5a7540a3eba013df189c8;hb=4b8e9a0a15b2dc3d94ea3cfc4297533b1e35d7d8;hp=84f0c5377238292b3102e61fb5fa70c687e5e52c;hpb=2c2d2bff843fc32659acc06c9893a0439ed51c62;p=moosique.git diff --git a/MooToolbar.java b/MooToolbar.java index 84f0c53..542488c 100644 --- a/MooToolbar.java +++ b/MooToolbar.java @@ -1,15 +1,30 @@ import javax.swing.*; import java.awt.event.*; import java.awt.*; +import javax.sound.midi.*; +import javax.swing.Icon; +/** + * Moosiques GUI representing a toolbar, with the most frequently used commands. + * + * @author Björn Lanneskog + */ public class MooToolbar extends JToolBar implements ActionListener { + private JButton rewind, playpause, stop, fastforward; + private JLabel measure, beats, ticks, measurevalue, beatsvalue, ticksvalue; + private Image pauseimage, playimage; + + /** + * Constructs a toolbar + */ + public MooToolbar() { rewind = createButton("images/rewind.gif", "rewind"); add(rewind); - playpause = createButton("images/play.gif", "play"); + playpause = createButton("images/play.gif", "play/pause"); add(playpause); stop = createButton("images/stop.gif", "stop"); @@ -18,64 +33,90 @@ public class MooToolbar extends JToolBar implements ActionListener { fastforward = createButton("images/forward.gif", "fast forward"); add(fastforward); - meas = createProjIndLabel("Mrs"); - beat = createProjIndLabel("Beat"); - tick = createProjIndLabel("Tick"); - - measvalue = createProjIndLabel("1"); - beatvalue = createProjIndLabel("1"); - ticksvalue = createProjIndLabel("1"); - - JPanel measbeattick = new JPanel(); - measbeattick.setMaximumSize(new Dimension(80,40)); - measbeattick.setLayout(new GridLayout(2,3)); - measbeattick.add(meas); - measbeattick.add(beat); - measbeattick.add(tick); - measbeattick.add(measvalue); - measbeattick.add(beatvalue); - measbeattick.add(ticksvalue); - - add(measbeattick); + JPanel panel = new JPanel(); + panel.setMaximumSize(new Dimension(100,22)); + panel.setLayout(new GridLayout(2,4)); + add(panel); + + panel.add(new JPanel()); + + measure = createProjIndLabel("Mrs",10); + panel.add(measure); + + beats = createProjIndLabel("Beat",10); + panel.add(beats); + + ticks = createProjIndLabel("Tick",10); + panel.add(ticks); + + panel.add(new JPanel()); + + measurevalue = createProjIndLabel("1",10); + panel.add(measurevalue); + + beatsvalue = createProjIndLabel("1",10); + panel.add(beatsvalue); + + ticksvalue = createProjIndLabel("1",10); + panel.add(ticksvalue); + + playimage = Toolkit.getDefaultToolkit().getImage("images/play.gif"); + pauseimage = Toolkit.getDefaultToolkit().getImage("images/pause.gif"); + } - private JButton createButton(String imageLocation, String toolTip) { - JButton button = new JButton (new ImageIcon(imageLocation)); - button.setToolTipText(toolTip); + /** + * creates a JButton for the toolbar + * @param imagelocation the imagelacation of the the image displayed in the button + * @param tooltip the tooltip associated with this button + * @return button the button to be attached to the toolbar + */ + private JButton createButton(String imagelocation, String tooltip) { + JButton button = new JButton (new ImageIcon(imagelocation)); + button.setToolTipText(tooltip); button.addActionListener(this); return button; } - - private JLabel createProjIndLabel(String title){ - JLabel titelvalue = new JLabel(title, JLabel.CENTER); - titelvalue.setFont(new Font("Times New Roman", Font.PLAIN ,8)); - titelvalue.setHorizontalTextPosition(JLabel.CENTER); + /** + * creates JLabels for the progressindikator, attached to the toolbar + * @param title the titel displayed on the label + * @param fontsize the fontzise of the text displayed on the label + * @param titelvalue the label that is a part of the progressindikator + */ + private JLabel createProjIndLabel(String title, int fontsize){ + JLabel titelvalue = new JLabel(title,JLabel.CENTER); + titelvalue.setFont(new Font("Times New Roman", + Font.PLAIN ,fontsize)); return titelvalue; } + // int pos = Moosique.getSequencer().getTickPosition(); + // int measures = pos / (4 * Moosique.getSequence.get) + // int beats = (pos - measures * 4 * 96) / 96; + // int ticks = (pos - measures*4*96 - beats*96); + - public void actionPerformed(ActionEvent e) {} - - /*if () { - - } else if () { - - - } else if () { + public void actionPerformed(ActionEvent e) { + + if (((JButton)e.getSource()).getToolTipText() == "rewind") { + //få in rewindmetoden + } else if (((JButton)e.getSource()).getToolTipText() == "play/pause") { + if (Moosique.getSequence().isRunning()) { + Moosique.pause(); + playpause.getIcon().setImage(playimage); + } else { + Moosique.play(); + playpause.getIcon().setImage(pauseimage); + } - } else if () { + } else if (((JButton)e.getSource()).getToolTipText() == "stop") { + Moosique.stop(); + + } else if (((JButton)e.getSource()).getToolTipText() == "fastforward") { + // få in fastforwardmetoden - }*/ - private JButton rewind; - private JButton playpause; - private JButton stop; - private JButton fastforward; - private JLabel meas; - private JLabel beat; - private JLabel tick; - private JLabel measvalue; - private JLabel beatvalue; - private JLabel ticksvalue; + } + } }