diff --git a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeViewFactory.java b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeViewFactory.java
index d545bb3537a53568619b0766d8f1c868bcc3d625..b5a403d81d1a6489c2bc70f00e75900d437e886f 100644
--- a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeViewFactory.java
+++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeViewFactory.java
@@ -22,34 +22,21 @@ public class InfoNodeViewFactory extends AbstractViewFactory {
     }
 
     @Override
-    public IView addView(String title, Icon icon, Component component, Object id, JComponent dockingArea) {
-        IView addedView = null;
-        boolean added = false;
-        if (id != null) {
-            synchronized (views) {
-                if (!views.containsKey(id)) {
-                    addedView = new InfoNodeView(title, icon, component, id);
-                    views.put(id, addedView);
-                    added = true;
-                }
-                addedView = views.get(id);
-            }
-        }
-        if ((addedView != null) && added) {
-            InfoNodeView view = (InfoNodeView) addedView;
-            if (dockingArea instanceof RootWindow) {
-                view.getWindowProperties().getTabProperties().getNormalButtonProperties().getCloseButtonProperties()
-                        .setVisible(false);
-                view.getWindowProperties().getTabProperties().getHighlightedButtonProperties()
-                        .getCloseButtonProperties().setVisible(false);
-                DockingUtil.addWindow(view, (RootWindow) dockingArea);
-            } else {
-                synchronized (support) {
-                    support.firePropertyChange(VIEWS, null, addedView);
-                }
-            }
+    protected IView createView(String title, Icon icon, Component component, Object id) {
+        return new InfoNodeView(title, icon, component, id);
+    }
+
+    @Override
+    protected void updateViewForDockingArea(IView view, JComponent dockingArea) {
+        if ((view instanceof InfoNodeView) && (dockingArea instanceof RootWindow)) {
+            InfoNodeView infoNodeView = (InfoNodeView) view;
+            RootWindow rootWindow = (RootWindow) dockingArea;
+            infoNodeView.getWindowProperties().getTabProperties().getNormalButtonProperties()
+                    .getCloseButtonProperties().setVisible(false);
+            infoNodeView.getWindowProperties().getTabProperties().getHighlightedButtonProperties()
+                    .getCloseButtonProperties().setVisible(false);
+            DockingUtil.addWindow(infoNodeView, rootWindow);
         }
-        return addedView;
     }
 
 }