]> ruin.nu Git - moosique.git/blobdiff - MooTrackView.java
no message
[moosique.git] / MooTrackView.java
index 4bce7b2fe41f7e44c160844e5c37be294a0ae7d4..51403272c24a16e37eeddc144ec0d91ab2a2c73a 100644 (file)
@@ -5,31 +5,25 @@ import java.awt.*;
 /**
  * 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();
@@ -41,13 +35,33 @@ public class MooTrackView extends JPanel {
        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) {
@@ -63,4 +77,25 @@ public class MooTrackView extends JPanel {
                        }
                }
        }
+       
+       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;
 }