com.frinika.notation
Class NotationEditor

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.notation.NotationEditor
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 NotationEditor
extends ItemPanel
implements EditHistoryListener, EventFilter

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
 NotationHeader header
           
 
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
protected NotationEditor(ProjectFrame frame, ItemScrollPane scroller)
           
 
Method Summary
 void clientAddToSelection(Item item)
           
 void clientClearSelection()
          Clears all items from the ItemPanels selection
 void clientNotifySelectionChange()
           
 void clientRemoveFromSelection(Item item)
           
 void dispose()
           
 void dragTo(java.awt.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[] edithistoryEntries)
           
 ClefChange getClef(MidiLane lane)
           
 int getHoverStateAt(java.awt.Point p)
           
 MidiLane getLaneAtY(int y)
           
 int[] getNotationNotePos(ClefChange clef_event, int note)
           
 int getNoteFromPos(ClefChange clef_event, int n)
           
 double getSnapQuantization()
           
 boolean isBarTick(long tick)
           
 boolean isSnapQuantized()
           
 boolean isValidEvent(MultiEvent event)
           
 Item itemAt(java.awt.Point p)
           
static void main(java.lang.String[] args)
           
 long nextBarTick(long tick)
           
 void paintHeader(java.awt.Graphics g, int scroll)
           
protected  void paintImageImpl(java.awt.Rectangle clipRect, java.awt.Graphics2D g)
           
protected  void paintImageImplLabel(java.awt.Graphics2D graphics)
          override this to draw on top of screen
static int[] parseDurToNotationLength(double tickdur)
           
 long previousBarTick(long tick)
           
protected  void processMouseEvent(java.awt.event.MouseEvent e)
           
 void repaintItems()
          flag reconstruction the image of the notes and request a repaint
 void rightButtonPressedOnItem(int x, int y)
           
 int screenToPitch(MidiLane lane, int y)
           
 long screenToTick(int x, boolean quantizeMe)
           
 void selectInRect(java.awt.Rectangle rect, boolean shift)
          Add items in the rectangle to the ItemPanels selection.
 void setFocus(Item item)
           
 void setSnapQuantization(double quant)
           
 void setSnapQuantized(boolean b)
           
 void setTimeAtX(int x)
           
 void startDrag()
           
 double tickToScreen(long tick)
           
 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.ItemPanel
armDrag, componentHidden, componentMoved, componentResized, componentShown, copyImageToScreen, followSong, getProjectContainer, getScroller, getTool, getToolTipText, getVirtualScreenRect, getXRangeModel, getYRangeModel, ignorePartWarp, isFollowSong, isRightButtonPressed, map, mapX, notifyTickPosition, paintComponent, paintImages, paintTimeImpl, paintTimeImplUser, pointInTimeLine, rebuildXScrollBars, rectZoomFinished, 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
 

Field Detail

header

public NotationHeader header
Constructor Detail

NotationEditor

protected NotationEditor(ProjectFrame frame,
                         ItemScrollPane scroller)
Method Detail

main

public static void main(java.lang.String[] args)

parseDurToNotationLength

public static int[] parseDurToNotationLength(double tickdur)

processMouseEvent

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

isBarTick

public boolean isBarTick(long tick)

nextBarTick

public long nextBarTick(long tick)

previousBarTick

public long previousBarTick(long tick)

getLaneAtY

public MidiLane getLaneAtY(int y)

getClef

public ClefChange getClef(MidiLane lane)

screenToTick

public long screenToTick(int x,
                         boolean quantizeMe)

tickToScreen

public double tickToScreen(long tick)

paintHeader

public void paintHeader(java.awt.Graphics g,
                        int scroll)

getNotationNotePos

public int[] getNotationNotePos(ClefChange clef_event,
                                int note)

getNoteFromPos

public int getNoteFromPos(ClefChange clef_event,
                          int n)

paintImageImpl

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

getSnapQuantization

public double getSnapQuantization()
Specified by:
getSnapQuantization in interface Snapable
Specified by:
getSnapQuantization in class ItemPanel

setSnapQuantization

public void setSnapQuantization(double quant)
Specified by:
setSnapQuantization in interface Snapable
Specified by:
setSnapQuantization in class ItemPanel

isSnapQuantized

public boolean isSnapQuantized()
Specified by:
isSnapQuantized in class ItemPanel

setSnapQuantized

public void setSnapQuantized(boolean b)
Specified by:
setSnapQuantized in class ItemPanel

setFocus

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

clientNotifySelectionChange

public void clientNotifySelectionChange()
Specified by:
clientNotifySelectionChange in class ItemPanel

setTimeAtX

public void setTimeAtX(int x)
Specified by:
setTimeAtX in class ItemPanel

startDrag

public void startDrag()

dragTo

public void dragTo(java.awt.Point p)
Specified by:
dragTo 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

getHoverStateAt

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

itemAt

public Item itemAt(java.awt.Point p)
Specified by:
itemAt 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

clientClearSelection

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

Specified by:
clientClearSelection in class ItemPanel

selectInRect

public void selectInRect(java.awt.Rectangle rect,
                         boolean shift)
Description copied from class: ItemPanel
Add items in the rectangle to the ItemPanels selection.

Specified by:
selectInRect in class ItemPanel

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

screenToPitch

public int screenToPitch(MidiLane lane,
                         int y)

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

erase

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

fireSequenceDataChanged

public void fireSequenceDataChanged(EditHistoryAction[] edithistoryEntries)
Specified by:
fireSequenceDataChanged in interface EditHistoryListener

isValidEvent

public boolean isValidEvent(MultiEvent event)
Specified by:
isValidEvent in interface EventFilter

repaintItems

public void repaintItems()
Description copied from class: ItemPanel
flag reconstruction the image of the notes and request a repaint

Overrides:
repaintItems in class ItemPanel

dispose

public void dispose()