3 import java.awt.event.*;
4 import javax.sound.midi.*;
7 * The title bar for each track with track name, channel, instrument etc.
9 * @author Andersson, Andreen, Lanneskog, Pehrson
13 public class MooTrackTitle extends JPanel {
15 private JTextField title;
16 private MooInstrumentList instruments;
17 private JComboBox channel;
18 private JCheckBox mute;
19 private JCheckBox solo;
22 * Creates the title bar.
24 public MooTrackTitle (Track aTrack) {
26 setLayout(new GridLayout(4,1));
27 setBorder(BorderFactory.createLineBorder(Color.black));
29 setPreferredSize(new Dimension(MooTrackView.VIEW_WIDTH,70));
30 title = new JTextField(); // JTextField(String text, int columns)
31 title.setFont(Moosique.getGUI().FONT);
32 title.addFocusListener(new TitleFocusListener());
35 instruments = new MooInstrumentList();
38 JPanel checkboxes = new JPanel();
39 checkboxes.setLayout(new GridLayout(1,3));
41 channel = new JComboBox();
42 channel.setFont(Moosique.getGUI().FONT);
43 for (int i = 1; i <= 16; i++)
44 channel.addItem(new Integer(i));
46 for (int j = 0; j < track.size(); j++) {
47 MidiEvent me = track.get(j);
48 if (me instanceof MooNote){
49 MooNote mn = (MooNote)me;
50 channel.setSelectedIndex(mn.getChannel());
55 channel.addItemListener(new ItemListener(){
56 public void itemStateChanged(ItemEvent e){
57 Object ob = channel.getSelectedItem();
58 if (ob instanceof Integer){
59 int chan = ((Integer)ob).intValue();
63 for (int j = 0; j < track.size(); j++) {
65 if (me instanceof MooNote){
68 System.out.println(ob);
77 mute = new JCheckBox("Mute");
78 mute.setFont(Moosique.getGUI().FONT);
79 mute.addActionListener(new ActionListener(){
80 public void actionPerformed(ActionEvent event){
82 solo.setSelected(false);
86 solo = new JCheckBox("Solo");
87 solo.setFont(Moosique.getGUI().FONT);
88 solo.addActionListener(new ActionListener(){
89 public void actionPerformed(ActionEvent event){
91 mute.setSelected(false);
97 class TitleFocusListener extends FocusAdapter {
98 public void focusLost(FocusEvent e) {
99 // Update the MidiEvent containing the title of this track