diff --git a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeView.java b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java similarity index 99% rename from dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeView.java rename to dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java index 736560f08deeb6db0733916124fae25712a5e86e..9ef55f37409bbe5991acc8a3e1ec26c2d4acf874 100644 --- a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/InfoNodeView.java +++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java @@ -1,4 +1,4 @@ -package fr.soleil.docking.infonode; +package fr.soleil.docking.infonode.view; import java.awt.Color; import java.awt.Component; 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 new file mode 100644 index 0000000000000000000000000000000000000000..d545bb3537a53568619b0766d8f1c868bcc3d625 --- /dev/null +++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeViewFactory.java @@ -0,0 +1,55 @@ +package fr.soleil.docking.infonode.view; + +import java.awt.Component; + +import javax.swing.Icon; +import javax.swing.JComponent; + +import net.infonode.docking.RootWindow; +import net.infonode.docking.util.DockingUtil; +import fr.soleil.docking.view.AbstractViewFactory; +import fr.soleil.docking.view.IView; + +/** + * InfoNode implementation of {@link AbstractViewFactory} + * + * @author girardot + */ +public class InfoNodeViewFactory extends AbstractViewFactory { + + public InfoNodeViewFactory() { + super(); + } + + @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); + } + } + } + return addedView; + } + +}