From 9bae52d59c74680fd3f0015aebed8ede90bc6768 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 --- .../docking/view/AbstractViewFactory.java | 18 ++++++++++++++++++ .../fr/soleil/docking/view/IViewFactory.java | 12 ++++++++++++ 2 files changed, 30 insertions(+) diff --git a/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java b/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java index 63c8488..bcfbb06 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java +++ b/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java @@ -14,6 +14,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.prefs.Preferences; import javax.swing.Action; +import javax.swing.Icon; +import javax.swing.JComponent; import fr.soleil.docking.action.ViewAction; @@ -111,6 +113,22 @@ public abstract class AbstractViewFactory implements IViewFactory { return toRemove; } + @Override + public IView addView(String title, Icon icon, Component component, Object id) { + return addView(title, icon, component, id, null); + } + + @Override + public IView addView(String title, Icon icon, Component component, Object id, JComponent dockingArea) { + IView view = createView(title, icon, component, id); + updateViewForDockingArea(view, dockingArea); + return addView(view); + } + + protected abstract IView createView(String title, Icon icon, Component component, Object id); + + protected abstract void updateViewForDockingArea(IView view, JComponent dockingArea); + @Override public boolean removeView(IView view) { boolean result; diff --git a/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java b/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java index cbd6037..b3d59f7 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java +++ b/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java @@ -78,6 +78,18 @@ public interface IViewFactory { public IView addView(IView view); + /** + * Creates an {@link IView} for a given {@link Component}, adds it in the list of views, and + * tries to put it in the docking area + * + * @param title The {@link IView} title + * @param icon The {@link IView} {@link Icon} + * @param component The concerned {@link Component} + * @param id The {@link IView} id + * @return The {@link IView} if it was successfully created and added, <code>null</code> otherwise + */ + public IView addView(String title, Icon icon, Component component, Object id); + /** * Creates an {@link IView} for a given {@link Component}, adds it in the list of views, and * tries to put it in a docking area -- GitLab