org.gjt.sp.jedit.gui
Class DockableWindowManager

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 org.gjt.sp.jedit.gui.DockableWindowManager
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, EBComponent
Direct Known Subclasses:
DockableWindowManagerImpl

public abstract class DockableWindowManager
extends javax.swing.JPanel
implements EBComponent

See Also:
Serialized Form

Nested Class Summary
static interface DockableWindowManager.DockingArea
           
static class DockableWindowManager.DockingLayout
          Objects of DockingLayout class describe which dockables are docked where, which ones are floating, and their sizes/positions for saving/loading perspectives.
 
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
static java.lang.String BOTTOM
          Bottom position.
protected  DockableWindowFactory factory
           
static java.lang.String FLOATING
          Floating position.
static java.lang.String LEFT
          Left position.
static java.lang.String RIGHT
          Right position.
static java.lang.String TOP
          Top position.
protected  View view
           
protected  java.util.Map<java.lang.String,javax.swing.JComponent> windows
           
 
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
DockableWindowManager(View view, DockableWindowFactory instance, View.ViewConfig config)
           
 
Method Summary
 void addDockableWindow(java.lang.String name)
          Opens the specified dockable window.
protected  void applyAlternateLayout(boolean alternateLayout)
           
 void applyDockingLayout(DockableWindowManager.DockingLayout docking)
           
 void close()
           
abstract  void closeCurrentArea()
           
 java.awt.event.KeyListener closeListener(java.lang.String dockableName)
          The actionEvent "close-docking-area" by default only works on windows that are docked.
protected  javax.swing.JComponent createDockable(java.lang.String name)
           
abstract  void disposeDockableWindow(java.lang.String name)
          Completely dispose of a dockable - called when a plugin is unloaded, to remove all references to the its dockables.
protected  void dockableLoaded(java.lang.String dockableName, java.lang.String position)
           
 void dockableTitleChanged(java.lang.String dockable, java.lang.String newTitle)
           
protected  void dockingPositionChanged(java.lang.String dockableName, java.lang.String oldPosition, java.lang.String newPosition)
           
abstract  javax.swing.JComponent floatDockableWindow(java.lang.String name)
           
protected  void focusDockable(java.lang.String name)
           
protected  boolean getAlternateLayoutProp()
           
abstract  DockableWindowManager.DockingArea getBottomDockingArea()
           
 javax.swing.JComponent getDockable(java.lang.String name)
           
protected  java.lang.String getDockablePosition(java.lang.String name)
           
 java.lang.String getDockableTitle(java.lang.String name)
          Returns the title of the specified dockable window.
 javax.swing.JComponent getDockableWindow(java.lang.String name)
          Returns the specified dockable window.
static java.lang.String getDockableWindowPluginName(java.lang.String name)
           
abstract  DockableWindowManager.DockingLayout getDockingLayout(View.ViewConfig config)
           
abstract  DockableWindowManager.DockingArea getLeftDockingArea()
           
protected  java.lang.String getLongTitlePropertyName(java.lang.String dockableName)
           
static java.lang.String[] getRegisteredDockableWindows()
           
abstract  DockableWindowManager.DockingArea getRightDockingArea()
           
abstract  DockableWindowManager.DockingArea getTopDockingArea()
           
 View getView()
          Returns this dockable window manager's view.
 void handleMessage(EBMessage msg)
          Handles a message sent on the EditBus.
abstract  void hideDockableWindow(java.lang.String name)
           
 void init()
           
abstract  boolean isDockableWindowDocked(java.lang.String name)
           
abstract  boolean isDockableWindowVisible(java.lang.String name)
           
 java.lang.String longTitle(java.lang.String name)
           
protected  void propertiesChanged()
           
 void removeDockableWindow(java.lang.String name)
          Hides the specified dockable window.
 void setDockableTitle(java.lang.String dockable, java.lang.String title)
          Changes the .longtitle property of a dockable window, which corresponds to the title shown when it is floating (not docked).
 void setDockingLayout(DockableWindowManager.DockingLayout docking)
           
abstract  void setMainPanel(javax.swing.JPanel panel)
           
 java.lang.String shortTitle(java.lang.String name)
           
abstract  void showDockableWindow(java.lang.String name)
           
 void toggleDockableWindow(java.lang.String name)
          Toggles the visibility of the specified dockable window.
 void toggleDockAreas()
          Hides all visible dock areas, or shows them again, if the last time it was a hide.
 
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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, 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, 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, transferFocusBackward, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FLOATING

public static final java.lang.String FLOATING
Floating position.

Since:
jEdit 2.6pre3
See Also:
Constant Field Values

TOP

public static final java.lang.String TOP
Top position.

Since:
jEdit 2.6pre3
See Also:
Constant Field Values

LEFT

public static final java.lang.String LEFT
Left position.

Since:
jEdit 2.6pre3
See Also:
Constant Field Values

BOTTOM

public static final java.lang.String BOTTOM
Bottom position.

Since:
jEdit 2.6pre3
See Also:
Constant Field Values

RIGHT

public static final java.lang.String RIGHT
Right position.

Since:
jEdit 2.6pre3
See Also:
Constant Field Values

view

protected View view

factory

protected DockableWindowFactory factory

windows

protected java.util.Map<java.lang.String,javax.swing.JComponent> windows
Constructor Detail

DockableWindowManager

public DockableWindowManager(View view,
                             DockableWindowFactory instance,
                             View.ViewConfig config)
Method Detail

setMainPanel

public abstract void setMainPanel(javax.swing.JPanel panel)

showDockableWindow

public abstract void showDockableWindow(java.lang.String name)

hideDockableWindow

public abstract void hideDockableWindow(java.lang.String name)

disposeDockableWindow

public abstract void disposeDockableWindow(java.lang.String name)
Completely dispose of a dockable - called when a plugin is unloaded, to remove all references to the its dockables.


floatDockableWindow

public abstract javax.swing.JComponent floatDockableWindow(java.lang.String name)

isDockableWindowDocked

public abstract boolean isDockableWindowDocked(java.lang.String name)

isDockableWindowVisible

public abstract boolean isDockableWindowVisible(java.lang.String name)

closeCurrentArea

public abstract void closeCurrentArea()

getDockingLayout

public abstract DockableWindowManager.DockingLayout getDockingLayout(View.ViewConfig config)

getLeftDockingArea

public abstract DockableWindowManager.DockingArea getLeftDockingArea()

getRightDockingArea

public abstract DockableWindowManager.DockingArea getRightDockingArea()

getTopDockingArea

public abstract DockableWindowManager.DockingArea getTopDockingArea()

getBottomDockingArea

public abstract DockableWindowManager.DockingArea getBottomDockingArea()

init

public void init()

close

public void close()

applyDockingLayout

public void applyDockingLayout(DockableWindowManager.DockingLayout docking)

addDockableWindow

public void addDockableWindow(java.lang.String name)
Opens the specified dockable window. As of jEdit 4.0pre1, has the same effect as calling showDockableWindow().

Parameters:
name - The dockable window name
Since:
jEdit 2.6pre3

removeDockableWindow

public void removeDockableWindow(java.lang.String name)
Hides the specified dockable window. As of jEdit 4.2pre1, has the same effect as calling hideDockableWindow().

Parameters:
name - The dockable window name
Since:
jEdit 4.2pre1

toggleDockableWindow

public void toggleDockableWindow(java.lang.String name)
Toggles the visibility of the specified dockable window.

Parameters:
name - The dockable window name

getDockableWindow

public javax.swing.JComponent getDockableWindow(java.lang.String name)
Returns the specified dockable window. Note that this method will return null if the dockable has not been added yet. Make sure you call addDockableWindow(String) first.

Parameters:
name - The name of the dockable window
Since:
jEdit 4.1pre2

toggleDockAreas

public void toggleDockAreas()
Hides all visible dock areas, or shows them again, if the last time it was a hide.

Since:
jEdit 4.3pre16

dockableTitleChanged

public void dockableTitleChanged(java.lang.String dockable,
                                 java.lang.String newTitle)

closeListener

public java.awt.event.KeyListener closeListener(java.lang.String dockableName)
The actionEvent "close-docking-area" by default only works on windows that are docked. If you want your floatable plugins to also respond to this event, you need to add key listeners to each component in your plugin that usually has keyboard focus. This function returns a key listener which does exactly that. You should not need to call this method - it is used by FloatingWindowContainer.

Parameters:
dockableName - the name of your dockable
Returns:
a KeyListener you can add to that plugin's component.
Since:
jEdit 4.3pre6

getView

public View getView()
Returns this dockable window manager's view.

Since:
jEdit 4.0pre2

getDockable

public javax.swing.JComponent getDockable(java.lang.String name)
Since:
jEdit 4.3pre2

getDockableTitle

public java.lang.String getDockableTitle(java.lang.String name)
Returns the title of the specified dockable window.

Parameters:
name - The name of the dockable window.
Since:
jEdit 4.1pre5

setDockableTitle

public void setDockableTitle(java.lang.String dockable,
                             java.lang.String title)
Changes the .longtitle property of a dockable window, which corresponds to the title shown when it is floating (not docked). Fires a change event that makes sure all floating dockables change their title.

Parameters:
dockable - the name of the dockable, as specified in the dockables.xml
title - the new .longtitle you want to see above it.
Since:
4.3pre5

getRegisteredDockableWindows

public static java.lang.String[] getRegisteredDockableWindows()

getDockableWindowPluginName

public static java.lang.String getDockableWindowPluginName(java.lang.String name)

setDockingLayout

public void setDockingLayout(DockableWindowManager.DockingLayout docking)

handleMessage

public void handleMessage(EBMessage msg)
Description copied from interface: EBComponent
Handles a message sent on the EditBus. This method must specify the type of responses the plugin will have for various subclasses of the EBMessage class. Typically this is done with one or more if blocks that test whether the message is an instance of a derived message class in which the component has an interest. For example:
 if(msg instanceof BufferUpdate) {
     // a buffer's state has changed!
 }
 else if(msg instanceof ViewUpdate) {
     // a view's state has changed!
 }
 // ... and so on

Specified by:
handleMessage in interface EBComponent
Parameters:
msg - The message

longTitle

public java.lang.String longTitle(java.lang.String name)

shortTitle

public java.lang.String shortTitle(java.lang.String name)

applyAlternateLayout

protected void applyAlternateLayout(boolean alternateLayout)

dockableLoaded

protected void dockableLoaded(java.lang.String dockableName,
                              java.lang.String position)

dockingPositionChanged

protected void dockingPositionChanged(java.lang.String dockableName,
                                      java.lang.String oldPosition,
                                      java.lang.String newPosition)

getAlternateLayoutProp

protected boolean getAlternateLayoutProp()

propertiesChanged

protected void propertiesChanged()

createDockable

protected javax.swing.JComponent createDockable(java.lang.String name)

getDockablePosition

protected java.lang.String getDockablePosition(java.lang.String name)

focusDockable

protected void focusDockable(java.lang.String name)

getLongTitlePropertyName

protected java.lang.String getLongTitlePropertyName(java.lang.String dockableName)