/**
* Graphical representation of a MIDI track.
*
- * @author Andersson, Andreen, Lanneskog, Pehrson
+ * @author Andersson , Andreen, Lanneskog, Pehrson
* @version 1
*/
-public class MooTrackView extends JPanel {
+public class MooTrackView extends JPanel implements ActionListener {
private MooTrackTitle title;
private NoteArea notes;
private Rectangle box;
- //private Rectangle box2;
- //private JPanel notes;
-
- private static final int PANEL_WIDTH = 65;
- private static final int TITLE_HEIGHT = 45;
- private static final int NOTEVIEW_HEIGHT = 200;
+ private JPopupMenu popup;
+ private JMenuItem menuItem;
+ private String newline = "\n";
- /**
- * Creates
- */
public MooTrackView () {
setLayout(new BorderLayout());
this.setBorder(BorderFactory.createLineBorder(Color.black));
add(trackTitle(), BorderLayout.NORTH);
add(noteView(), BorderLayout.CENTER);
- }
+ }
private JPanel trackTitle () {
title = new MooTrackTitle();
private JPanel noteView () {
notes = new NoteArea();
notes.setBackground(Color.white);
- notes.setBorder(BorderFactory.createLineBorder(Color.black));
+ notes.setBorder(BorderFactory.createLineBorder(Color.black));
+
+ popup = new JPopupMenu();
+ menuItem = new JMenuItem("Add...");
+ menuItem.addActionListener(this);
+ popup.add(menuItem);
+ menuItem = new JMenuItem("Preferences...");
+ menuItem.addActionListener(this);
+ popup.add(menuItem);
+
+ MouseListener popupListener = new PopupListener();
+ notes.addMouseListener(popupListener);
+
return notes;
}
+ public void actionPerformed(ActionEvent e) {
+ JMenuItem source = (JMenuItem)(e.getSource());
+ String s = "Action event detected."
+ + newline
+ + " Event source: " + source.getText();
+ }
+
class NoteArea extends JPanel {
public void RectanglePanel() {
setPreferredSize(new Dimension(20, 20));
+
}
public void paintComponent(Graphics g) {
}
}
}
+
+ class PopupListener extends MouseAdapter {
+ public void mousePressed(MouseEvent e) {
+ maybeShowPopup(e);
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ maybeShowPopup(e);
+ }
+
+ private void maybeShowPopup(MouseEvent e) {
+ if (e.isPopupTrigger()) {
+ popup.show(e.getComponent(),
+ e.getX(), e.getY());
+ }
+ }
+ }
+
+ private static final int PANEL_WIDTH = 65;
+ private static final int TITLE_HEIGHT = 60;
+ private static final int NOTEVIEW_HEIGHT = 200;
}