com.frinika.sequencer.gui.partview
Class PartView

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.partview.PartView
All Implemented Interfaces:
SelectionListener<Part>, Snapable, EditHistoryListener, SongPositionListener, java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class PartView
extends ItemPanel
implements SelectionListener<Part>, EditHistoryListener

Panel displaying the parts.

Author:
pjl
See Also:
Serialized Form

Nested Class Summary
 class PartView.PartImage
           
 
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
PartView(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 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 fireSequenceDataChanged(EditHistoryAction[] edithistoryActions)
           
 int getHoverStateAt(java.awt.Point p)
           
 java.awt.Rectangle getPartBounds(Part part)
           
 ProjectFrame getProjectFrame()
           
 double getSnapQuantization()
           
 ToolAdapter getTool(java.lang.String name)
          Get the tool associated with name.
 void gluePart(Item item)
           
 boolean isSnapQuantized()
           
 Item itemAt(java.awt.Point p)
          Find component the contains point x,y and set.
 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
protected  void processMouseEvent(java.awt.event.MouseEvent e)
           
 void rectZoomFinished()
           
 boolean requiresNotificationOnEachTick()
          Your implementation should return true if your listener requires to be notified for each and every tick.
 void rightButtonPressedOnItem(int x, int y)
           
 void selectAll()
           
 void selectInRect(java.awt.Rectangle rect, boolean shift)
          Set all selectables in the rect to yes.
 void selectionChanged(SelectionContainer<? extends Part> src)
          Notify observers that the slection has changed.
 void setFocus(Item item)
           
 void setSnapQuantization(double quant)
           
 void setSnapQuantized(boolean b)
           
 void setTimeAtX(int x)
           
 void splitAt(java.awt.Point p)
           
 void splitIsOver(java.awt.Point p)
           
 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)
           
protected  void writeReleasedAt(java.awt.Point p)
           
 
Methods inherited from class com.frinika.sequencer.gui.ItemPanel
armDrag, componentHidden, componentMoved, componentResized, componentShown, copyImageToScreen, feedBack, followSong, getProjectContainer, getScroller, getToolTipText, getVirtualScreenRect, getXRangeModel, getYRangeModel, ignorePartWarp, isFollowSong, isRightButtonPressed, map, mapX, notifyTickPosition, paintComponent, paintImages, paintTimeImpl, paintTimeImplUser, pointInTimeLine, rebuildXScrollBars, repaintItems, 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

PartView

public PartView(ProjectFrame frame,
                ItemScrollPane scroller)
Method Detail

processMouseEvent

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

dragTo

public void dragTo(java.awt.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)
Set all selectables in the rect to yes.

Specified by:
selectInRect in class ItemPanel
Parameters:
yes -
rect -

getPartBounds

public java.awt.Rectangle getPartBounds(Part part)

rightButtonPressedOnItem

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

rectZoomFinished

public void rectZoomFinished()
Overrides:
rectZoomFinished 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

writeReleasedAt

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

writePressedAt

protected void writePressedAt(java.awt.Point p)
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:

paintImageImpl

public void paintImageImpl(java.awt.Rectangle clipRect,
                           java.awt.Graphics2D g)
Specified by:
paintImageImpl in class ItemPanel
Parameters:
virtualScreenRect - area of screen that needs to be painted

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

requiresNotificationOnEachTick

public boolean requiresNotificationOnEachTick()
Description copied from interface: SongPositionListener
Your implementation should return true if your listener requires to be notified for each and every tick. Otherwise (which is in most cases) return false. WARNING: If you return true on this method, you MUST return absolutely immediately everytime. Otherwise it may result in a halting song.

Specified by:
requiresNotificationOnEachTick in interface SongPositionListener
Overrides:
requiresNotificationOnEachTick in class ItemPanel
Returns:

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

fireSequenceDataChanged

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

selectionChanged

public void selectionChanged(SelectionContainer<? extends Part> src)
Description copied from interface: SelectionListener
Notify observers that the slection has changed.

Specified by:
selectionChanged in interface SelectionListener<Part>

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

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

getTool

public ToolAdapter getTool(java.lang.String name)
Description copied from class: ItemPanel
Get the tool associated with name.

Overrides:
getTool in class ItemPanel
Returns:

splitIsOver

public void splitIsOver(java.awt.Point p)

splitAt

public void splitAt(java.awt.Point p)

gluePart

public void gluePart(Item item)

selectAll

public void selectAll()

clientNotifySelectionChange

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

setTimeAtX

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

getProjectFrame

public ProjectFrame getProjectFrame()