+ PopupListener pList = new PopupListener();
+ popupAdd = new JMenuItem("Add note...");
+ popupAdd.addActionListener(pList);
+ popup.add(popupAdd);
+
+ // Adds listeners for popup menu and keyboard synthesizer.
+ addMouseListener(new MAdapter());
+ addKeyListener(new MooKeyboard());
+ }
+
+ /**
+ * Layouts the element to the right place.
+ * @param elem the element that will be layouted.
+ * @param old If true, this method will remove the old layout and set the new preferredSize for the trackview.
+ */
+ public void layoutElement(MooNoteElement elem, boolean old){
+ // If the element is currently in the view, removes its coordinates from the list.
+ Rectangle r = new Rectangle();
+ if (old){
+ r = elem.getBounds(r);
+ for (Iterator i = rects.iterator(); i.hasNext();){
+ Object ob = i.next();
+ if (r.equals(ob)){
+ rects.remove(ob);
+ break;
+ }
+ }
+ }
+
+ // Creates temporary variables.
+ ticksPerSixteenth = Moosique.getSequence().getResolution() / 4;
+ MooNote mn = elem.getNote();
+ int x, y, height;