diff --git a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeDockingManager.java b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeDockingManager.java
index 0bff908383b3c6d3432b7dea4f72004bcf494653..84b43bca7add81bdb57ac1f48a4c99f1bb846100 100644
--- a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeDockingManager.java
+++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeDockingManager.java
@@ -176,19 +176,48 @@ public class InfoNodeDockingManager extends ADockingManager {
     }
 
     @Override
-    public void setEnabledDocking(boolean enabledDocking) {
-        RootWindow rootWindow = (RootWindow) getDockingArea();
-        rootWindow.getRootWindowProperties().getDockingWindowProperties().setCloseEnabled(enabledDocking);
-        rootWindow.getRootWindowProperties().getDockingWindowProperties().setDragEnabled(enabledDocking);
-        rootWindow.getRootWindowProperties().getDockingWindowProperties().setMaximizeEnabled(enabledDocking);
-        rootWindow.getRootWindowProperties().getDockingWindowProperties().setMinimizeEnabled(enabledDocking);
+    public void setEnabledDocking(boolean enabledDocking, JComponent dockingArea) {
+        if (dockingArea instanceof RootWindow) {
+            RootWindow rootWindow = (RootWindow) dockingArea;
+            rootWindow.getRootWindowProperties().getDockingWindowProperties().setCloseEnabled(enabledDocking);
+            rootWindow.getRootWindowProperties().getDockingWindowProperties().setDragEnabled(enabledDocking);
+            rootWindow.getRootWindowProperties().getDockingWindowProperties().setMaximizeEnabled(enabledDocking);
+            rootWindow.getRootWindowProperties().getDockingWindowProperties().setMinimizeEnabled(enabledDocking);
+        }
     }
 
     @Override
-    public boolean isEnabledDocking() {
-        DockingWindowProperties dwp = this.rootWindow.getRootWindowProperties().getDockingWindowProperties();
+    public boolean isEnabledDocking(JComponent dockingArea) {
+        boolean enabled;
+        if (dockingArea instanceof RootWindow) {
+            RootWindow rootWindow = (RootWindow) dockingArea;
+            DockingWindowProperties dwp = rootWindow.getRootWindowProperties().getDockingWindowProperties();
+            enabled = dwp.getCloseEnabled() && dwp.getDragEnabled() && dwp.getMaximizeEnabled()
+                    && dwp.getMinimizeEnabled();
+        } else {
+            enabled = false;
+        }
+        return enabled;
+    }
 
-        return dwp.getCloseEnabled() && dwp.getDragEnabled() && dwp.getMaximizeEnabled() && dwp.getMinimizeEnabled();
+    @Override
+    public void setUndockEnabled(boolean enabled, JComponent dockingArea) {
+        if (dockingArea instanceof RootWindow) {
+            RootWindow rootWindow = (RootWindow) dockingArea;
+            rootWindow.getRootWindowProperties().getDockingWindowProperties().setUndockEnabled(enabled);
+        }
+    }
+
+    @Override
+    public boolean isUndockEnabled(JComponent dockingArea) {
+        boolean enabled;
+        if (dockingArea instanceof RootWindow) {
+            RootWindow rootWindow = (RootWindow) dockingArea;
+            enabled = rootWindow.getRootWindowProperties().getDockingWindowProperties().getUndockEnabled();
+        } else {
+            enabled = false;
+        }
+        return enabled;
     }
 
     @Override