From f5f69f18e50256977177986194470f2a1fd967a8 Mon Sep 17 00:00:00 2001
From: Raphael Girardot <raphael.girardot@synchrotron-soleil.fr>
Date: Wed, 9 Oct 2013 13:29:51 +0000
Subject: [PATCH] some code refactoring

---
 .../infonode/view/InfoNodeViewFactory.java    | 41 +++++++------------
 1 file changed, 14 insertions(+), 27 deletions(-)

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 d545bb3..b5a403d 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;
     }
 
 }
-- 
GitLab