com.frinika.sequencer.gui.pianoroll
Class PianoRoll

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.frinika.sequencer.gui.ItemPanel
                      extended by com.frinika.sequencer.gui.pianoroll.PianoRollPanelAdapter
                          extended by com.frinika.sequencer.gui.pianoroll.PianoRoll
All Implemented Interfaces:
Snapable, EditHistoryListener, EventFilter, SongPositionListener, java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class PianoRoll
extends PianoRollPanelAdapter

Implementation of a pianoRoll view and editor.

Author:
pjl
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class com.frinika.sequencer.gui.ItemPanel
altIsDown, controlIsDown, dragArmed, dragItem, dragMode, dragViewTool, eraseTool, isChanging, lastItemViewRect, OVER_ENVELOPE_GAIN, OVER_ENVELOPE_LEFT, OVER_ENVELOPE_RIGHT, OVER_ITEM_LEFT, OVER_ITEM_MIDDLE, OVER_ITEM_RIGHT, OVER_ITEM_TOP, OVER_NOTHING, project, rectZoomTool, scroller, selectTool, sequencer, ticksPerBeat, timeBased, tool, toolBar, userToScreen, writeTool, xAnchor, yAnchor
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PianoRoll(ProjectFrame frame, ItemScrollPane scroller)
          Constructor.
 
Method Summary
 void clientAddToSelection(Item item)
           
 void clientClearSelection()
          Clears all items from the ItemPanels selection
 void clientRemoveFromSelection(Item item)
           
 void componentResized(java.awt.event.ComponentEvent arg0)
           
 void dispose()
           
 void dragTo(java.awt.Point p)
          drags the dragList to Point p.
 void endDrag()
          This will be called when the mouse is released from a dragging operation
 void erase(Item it)
           
 void feedBack(Item item)
          play the note
 void fireSequenceDataChanged(EditHistoryAction[] edithistoryActions)
           
 int getHoverStateAt(java.awt.Point p)
           
 void ignorePartWarp(boolean b)
           
 boolean isValidEvent(MultiEvent event)
           
 Item itemAt(java.awt.Point p)
          Find component the contains point x,y and set.
 void paintImageImpl(java.awt.Rectangle visibleRect, java.awt.Graphics2D g)
           
protected  void paintImageImplLabel(java.awt.Graphics2D graphics)
          override this to draw on top of screen
protected  void processMouseEvent(java.awt.event.MouseEvent e)
           
 void rightButtonPressedOnItem(int x, int y)
           
 void selectAll()
           
 void selectInRect(java.awt.Rectangle rect, boolean shift)
          Select/deselect all the items in a rectange.
 void startDrag()
          Call this to start dragging with the reference point.
 void writeDraggedAt(java.awt.Point p)
          Notififiction that mouse has been drag during after a writeTool press.
protected  void writePressedAt(java.awt.Point p)
          Used by the write tool to insert a note.
protected  void writeReleasedAt(java.awt.Point p)
           
 
Methods inherited from class com.frinika.sequencer.gui.pianoroll.PianoRollPanelAdapter
clientNotifySelectionChange, getSnapQuantization, isSnapQuantized, setFocus, setSnapQuantization, setSnapQuantized, setTimeAtX
 
Methods inherited from class com.frinika.sequencer.gui.ItemPanel
armDrag, componentHidden, componentMoved, componentShown, copyImageToScreen, followSong, getProjectContainer, getScroller, getTool, getToolTipText, getVirtualScreenRect, getXRangeModel, getYRangeModel, isFollowSong, isRightButtonPressed, map, mapX, notifyTickPosition, paintComponent, paintImages, paintTimeImpl, paintTimeImplUser, pointInTimeLine, rebuildXScrollBars, rectZoomFinished, repaintItems, requiresNotificationOnEachTick, scaleX, screenToTickAbs, screenToTickAbs, screenToTickRel, scrollItemImageX, scrollItemImageY, scrollRectToVisible, scrollToContain, scrollToContian, setAltState, setControlState, setDirty, setDragMode, setIgnoreRepaints, setRightButton, setTool, setToolBar, setX, setY, userToScreen, zoomIn, zoomOut, zoomToRect
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PianoRoll

public PianoRoll(ProjectFrame frame,
                 ItemScrollPane scroller)
Constructor.

Parameters:
project - project to view
scroller - controls the view onto the virtualScreen.
Method Detail

processMouseEvent

protected void processMouseEvent(java.awt.event.MouseEvent e)
Overrides:
processMouseEvent in class javax.swing.JComponent

dispose

public void dispose()

dragTo

public void dragTo(java.awt.Point p)
drags the dragList to Point p.

Specified by:
dragTo in class ItemPanel

clientClearSelection

public void clientClearSelection()
Description copied from class: ItemPanel
Clears all items from the ItemPanels selection

Specified by:
clientClearSelection in class ItemPanel

startDrag

public void startDrag()
Call this to start dragging with the reference point. See dragTo

Parameters:
e -

selectInRect

public void selectInRect(java.awt.Rectangle rect,
                         boolean shift)
Select/deselect all the items in a rectange.

Specified by:
selectInRect in class ItemPanel
Parameters:
yes - true to select. false to deselect
rect - rectangle in score screen space.

writeReleasedAt

protected void writeReleasedAt(java.awt.Point p)
Specified by:
writeReleasedAt in class ItemPanel

writeDraggedAt

public void writeDraggedAt(java.awt.Point p)
Description copied from class: ItemPanel
Notififiction that mouse has been drag during after a writeTool press. Default to ignoring it

Overrides:
writeDraggedAt in class ItemPanel

writePressedAt

protected void writePressedAt(java.awt.Point p)
Used by the write tool to insert a note.

Specified by:
writePressedAt in class ItemPanel

itemAt

public Item itemAt(java.awt.Point p)
Find component the contains point x,y and set. first component found is set (is this what we want ?) TODO multitrack thinking.

Specified by:
itemAt in class ItemPanel
Parameters:
x -
y -
Returns:
the NoteEvent at this point.

fireSequenceDataChanged

public void fireSequenceDataChanged(EditHistoryAction[] edithistoryActions)

paintImageImpl

public void paintImageImpl(java.awt.Rectangle visibleRect,
                           java.awt.Graphics2D g)
Specified by:
paintImageImpl in class ItemPanel

endDrag

public void endDrag()
Description copied from class: ItemPanel
This will be called when the mouse is released from a dragging operation

Specified by:
endDrag in class ItemPanel

erase

public void erase(Item it)
Specified by:
erase in class ItemPanel

rightButtonPressedOnItem

public void rightButtonPressedOnItem(int x,
                                     int y)
Specified by:
rightButtonPressedOnItem in class ItemPanel

feedBack

public void feedBack(Item item)
play the note

Overrides:
feedBack in class ItemPanel

clientAddToSelection

public void clientAddToSelection(Item item)
Specified by:
clientAddToSelection in class ItemPanel

clientRemoveFromSelection

public void clientRemoveFromSelection(Item item)
Specified by:
clientRemoveFromSelection in class ItemPanel

getHoverStateAt

public int getHoverStateAt(java.awt.Point p)
Specified by:
getHoverStateAt in class ItemPanel

paintImageImplLabel

protected void paintImageImplLabel(java.awt.Graphics2D graphics)
Description copied from class: ItemPanel
override this to draw on top of screen

Specified by:
paintImageImplLabel in class ItemPanel

isValidEvent

public final boolean isValidEvent(MultiEvent event)

ignorePartWarp

public void ignorePartWarp(boolean b)
Overrides:
ignorePartWarp in class ItemPanel

componentResized

public void componentResized(java.awt.event.ComponentEvent arg0)
Specified by:
componentResized in interface java.awt.event.ComponentListener
Overrides:
componentResized in class ItemPanel

selectAll

public void selectAll()