]> ruin.nu Git - moosique.git/blobdiff - MooTrackView.java
Fixed the FileFilter, implemented some menu options, tweaked the GUI and organized...
[moosique.git] / MooTrackView.java
index 04b675583b3aa18bf50406026be52cda4f350d0e..71018d1ea765a2a4b8305bc0986be9e9791c12ce 100644 (file)
@@ -1,18 +1,72 @@
 import javax.swing.*;
+import java.awt.event.*;
+import java.awt.*;
 
 /**
- * 
+ * Graphical representation of a MIDI track.
  * 
  * @author  Andersson, Andreen, Lanneskog, Pehrson
  * @version 1
  */
  
-public class MooTrackView {
+public class MooTrackView extends JPanel {
+
+       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 = 40;
+       private static final int NOTEVIEW_HEIGHT = 200;
+       
        /** 
         * Creates 
         */
        public MooTrackView () {
+               addMouseMotionListener(doScrollRectToVisible);
+               addKeyListener(new MooKeyboard());
+               setLayout(new BorderLayout());
+               setBorder(BorderFactory.createLineBorder(Color.black));
+               add(trackTitle(), BorderLayout.NORTH);
+               add(noteView(), BorderLayout.CENTER);
+       }
+       
+       MouseMotionListener doScrollRectToVisible = new MouseMotionAdapter() {
+       public void mouseDragged(MouseEvent e) {
+               Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
+               ((JPanel)e.getSource()).scrollRectToVisible(r);
+       }
+       };
+       
+       private JPanel trackTitle () {
+               title = new MooTrackTitle();
+               title.setPreferredSize(new Dimension(PANEL_WIDTH, TITLE_HEIGHT));
+               title.setBorder(BorderFactory.createLineBorder(Color.black));
+               return title;
+       }
 
+       private JPanel noteView () {
+               notes = new NoteArea(); 
+               notes.setBackground(Color.white);
+               notes.setBorder(BorderFactory.createLineBorder(Color.black));   
+               return notes;           
+       }
+       
+       class NoteArea extends JPanel {
+               public void RectanglePanel() {
+                       setPreferredSize(new Dimension(20, 20));
+               }
+               
+               
+               public void paintComponent(Graphics g) {
+                       super.paintComponent(g);
+                       Graphics2D g2 = (Graphics2D)g;
+                       box = new Rectangle(0,0,20,20);
+                       g2.draw(box);
+                       box2 = new Rectangle(20,0,20,20);
+                       g2.draw(box2);
+               }
        }
-}
+}
\ No newline at end of file