Package org.jjazz.pianoroll.api
Class PianoRollEditorTopComponent
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.openide.windows.TopComponent
org.jjazz.pianoroll.api.PianoRollEditorTopComponent
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,PropertyChangeListener
,Externalizable
,Serializable
,EventListener
,Accessible
,SgsChangeListener
,org.openide.util.HelpCtx.Provider
,org.openide.util.Lookup.Provider
public final class PianoRollEditorTopComponent
extends org.openide.windows.TopComponent
implements PropertyChangeListener, SgsChangeListener
A TopComponent to use a PianoRollEditor for a song phrase.
The TopComponent closes itself when song is closed and listen to SongStructure changes to update the edited range.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.openide.windows.TopComponent
org.openide.windows.TopComponent.Cloneable, org.openide.windows.TopComponent.Description, org.openide.windows.TopComponent.NodeName, org.openide.windows.TopComponent.OpenActionRegistration, org.openide.windows.TopComponent.Registration, org.openide.windows.TopComponent.Registry, org.openide.windows.TopComponent.SubComponent
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
Fields inherited from class org.openide.windows.TopComponent
CLOSE_EACH, CLOSE_LAST, PERSISTENCE_ALWAYS, PERSISTENCE_NEVER, PERSISTENCE_ONLY_OPENED, PROP_CLOSING_DISABLED, PROP_DND_COPY_DISABLED, PROP_DRAGGING_DISABLED, PROP_KEEP_PREFERRED_SIZE_WHEN_SLIDED_IN, PROP_MAXIMIZATION_DISABLED, PROP_SLIDING_DISABLED, PROP_UNDOCKING_DISABLED
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
ConstructorDescriptionPianoRollEditorTopComponent
(Song sg, PianoRollEditorSettings settings) Create a TopComponent editor for the specified song. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Some change events might need to be authorized by all listeners before being processed by songStructureChanged().boolean
canClose()
void
void
static PianoRollEditorTopComponent
Search for the PianoRollEditorTopComponent associated to song.Action[]
Overridden to insert possible new actions from path "Actions/PianoRollEditorTopComponent".static PianoRollEditorTopComponent
Return the active (i.e. focused or ancestor of the focused component) PianoRollEditorTopComponent.The edited bar range.The edited beat range.static String
getDefaultTabName
(Song song) The default tab name for a song.org.openide.util.Lookup
Return the PianoRollEditor lookup.The MidiMix associated to the song.int
The RhythmVoice associated to thegetSong()
The song associated to this TopComponent.The edited SongPart, or null if the whole song is edited.getTitle()
The title used within the editor.org.openide.awt.UndoRedo
boolean
Check if TopComponent was last configured via setModelForSongPartCustomPhrase().void
void
setModelForSongPartCustomPhrase
(SongPart spt, Phrase p, int channel, DrumKit.KeyMap keyMap) Configure the TopComponent to edit a custom phrase of a song part.void
setModelForUserPhrase
(Phrase p, int channel, DrumKit.KeyMap keyMap) Configure the TopComponent to edit a user phrase on the whole song.void
Set the title base used within the editor.void
Process the change.Methods inherited from class org.openide.windows.TopComponent
addNotify, availableModes, cancelRequestAttention, canClose, close, close, getAccessibleContext, getActivatedNodes, getCloseOperation, getDisplayName, getHelpCtx, getHtmlDisplayName, getIcon, getRegistry, getShortName, getSubComponents, getSystemActions, getTabPosition, isOpened, isOpened, makeBusy, open, open, openAction, openAtTabPosition, readExternal, requestActive, requestAttention, requestFocus, requestFocusInWindow, requestVisible, setActivatedNodes, setAttentionHighlight, setCloseOperation, setDisplayName, setHtmlDisplayName, setIcon, setName, setToolTipText, toFront, writeExternal
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
MODE
- See Also:
-
-
Constructor Details
-
PianoRollEditorTopComponent
Create a TopComponent editor for the specified song.- Parameters:
sg
- The TopComponent listens to song structure changes to update the edited range.settings
-
-
-
Method Details
-
setModelForSongPartCustomPhrase
public void setModelForSongPartCustomPhrase(SongPart spt, Phrase p, int channel, DrumKit.KeyMap keyMap) Configure the TopComponent to edit a custom phrase of a song part.This can be used to edit a RP_SYS_CustomPhrase value.
- Parameters:
spt
- Must belong to the songp
- The phrase must start at bar/beat 0 (independently of spt start position)channel
- The Midi channel of the edited phrase (p.getChannel() is ignored). Must correspond to a RhythmVoice of the song part rhythm.keyMap
- Null for melodic phrase
-
setModelForUserPhrase
Configure the TopComponent to edit a user phrase on the whole song.- Parameters:
p
-channel
- The Midi channel of the edited Phrase (p.getChannel() is ignored). Must correspond to a UserRhythmVoice in the song's MidiMix.keyMap
- Null for melodic phrase
-
getTitle
The title used within the editor.- Returns:
-
setTitle
Set the title base used within the editor.- Parameters:
title
-
-
getSong
The song associated to this TopComponent.- Returns:
-
getMidiMix
The MidiMix associated to the song.- Returns:
-
getRhythmVoice
The RhythmVoice associated to the- Returns:
-
getSongPart
The edited SongPart, or null if the whole song is edited.- Returns:
-
getBeatRange
The edited beat range.- Returns:
-
getBarRange
The edited bar range.- Returns:
-
isRP_SYS_CustomPhraseMode
public boolean isRP_SYS_CustomPhraseMode()Check if TopComponent was last configured via setModelForSongPartCustomPhrase().- Returns:
-
preferredID
- Returns:
- For example "PianoRollEditorTopComponent-MySongName"
-
getEditor
-
getUndoRedo
public org.openide.awt.UndoRedo getUndoRedo()- Overrides:
getUndoRedo
in classorg.openide.windows.TopComponent
-
getActions
Overridden to insert possible new actions from path "Actions/PianoRollEditorTopComponent".- Overrides:
getActions
in classorg.openide.windows.TopComponent
- Returns:
- The actions to be shown in the TopComponent popup menu.
-
getLookup
public org.openide.util.Lookup getLookup()Return the PianoRollEditor lookup.- Specified by:
getLookup
in interfaceorg.openide.util.Lookup.Provider
- Overrides:
getLookup
in classorg.openide.windows.TopComponent
- Returns:
-
getPersistenceType
public int getPersistenceType()- Overrides:
getPersistenceType
in classorg.openide.windows.TopComponent
-
canClose
public boolean canClose()- Overrides:
canClose
in classorg.openide.windows.TopComponent
-
componentOpened
public void componentOpened() -
componentClosed
public void componentClosed() -
getActive
Return the active (i.e. focused or ancestor of the focused component) PianoRollEditorTopComponent.- Returns:
- Can be null
-
get
Search for the PianoRollEditorTopComponent associated to song.- Parameters:
song
-- Returns:
- Can be null
-
getDefaultTabName
The default tab name for a song.- Parameters:
song
-- Returns:
-
propertyChange
- Specified by:
propertyChange
in interfacePropertyChangeListener
-
authorizeChange
Description copied from interface:SgsChangeListener
Some change events might need to be authorized by all listeners before being processed by songStructureChanged().- Specified by:
authorizeChange
in interfaceSgsChangeListener
- Parameters:
e
- The change to authorize.- Throws:
UnsupportedEditException
- Listener shall throw this exception if change is not acceptable. Exception message might be shown to user to explain the problem.
-
songStructureChanged
Description copied from interface:SgsChangeListener
Process the change.Note that this method might be called outside of the EDT.
- Specified by:
songStructureChanged
in interfaceSgsChangeListener
-