diff --git a/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java b/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java index 5e37a3376a49b427a17aaf91c3561b1714648d81..2a728875cc82d3ae3443b85b1f5e842ae3795ca3 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java +++ b/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java @@ -221,14 +221,37 @@ public abstract class ADockingManager implements PropertyChangeListener { * * @param enabledDocking */ - public abstract void setEnabledDocking(boolean enabledDocking); + public void setEnabledDocking(boolean enabledDocking) { + setEnabledDocking(enabledDocking, getDockingArea()); + } /** * Get the Enabled Docking property * * @return true if the docking is enabled */ - public abstract boolean isEnabledDocking(); + public boolean isEnabledDocking() { + return isEnabledDocking(getDockingArea()); + } + + /** + * Enable the docking or not in a docking area. If the docking is disable, the inherit class must disable all + * functionality of the docking for the docking area. I must be comparable to a JPanel composed by JtabbedPane, + * JSplitPane etc... + * + * @param enabledDocking Whetehr to enable docking + * @param dockingArea The docking area for which to enable/disable docking + */ + public abstract void setEnabledDocking(boolean enabledDocking, JComponent dockingArea); + + /** + * Get the Enabled Docking property for a docking area + * + * @param dockingArea The docking area to test + * + * @return true if the docking is enabled + */ + public abstract boolean isEnabledDocking(JComponent dockingArea); /** * Returns whether a view, once closed, is sure to be restored at the exact previous position once shown again @@ -237,4 +260,40 @@ public abstract class ADockingManager implements PropertyChangeListener { */ public abstract boolean canRestoreExactViewPosition(); + /** + * Configures a docking area to accept or not component undocking (window creation outside of the docking area for + * given component) + * + * @param enabled Whether to accept component undocking + * @param dockingArea The concerned docking area + */ + public abstract void setUndockEnabled(boolean enabled, JComponent dockingArea); + + /** + * Configures main docking area to accept or not component undocking + * + * @param enabled Whether to accept component undocking + */ + public void setUndockEnabled(boolean enabled) { + setUndockEnabled(enabled, getDockingArea()); + } + + /** + * Returns whether a docking area accepts component undocking (window creation outside of the docking area for + * given component) + * + * @param dockingArea The concerned docking area + * @return A <code>boolean</code> + */ + public abstract boolean isUndockEnabled(JComponent dockingArea); + + /** + * Returns whether main docking area accepts component undocking + * + * @return A <code>boolean</code> + */ + public boolean isUndockEnabled() { + return isUndockEnabled(getDockingArea()); + } + }