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; } }