From 5aa1064b81ff888b51a25367de4f130bec2808a5 Mon Sep 17 00:00:00 2001 From: Raphael Girardot <raphael.girardot@synchrotron-soleil.fr> Date: Wed, 9 Oct 2013 13:02:20 +0000 Subject: [PATCH] IViewFactory can customize view icons, title, etc... ViewFactory becomes AbstractViewFactory --- ...ViewFactory.java => AbstractViewFactory.java} | 4 ++-- .../fr/soleil/docking/view/IViewFactory.java | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) rename dockingcore/src/main/java/fr/soleil/docking/view/{ViewFactory.java => AbstractViewFactory.java} (97%) diff --git a/dockingcore/src/main/java/fr/soleil/docking/view/ViewFactory.java b/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java similarity index 97% rename from dockingcore/src/main/java/fr/soleil/docking/view/ViewFactory.java rename to dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java index b6c063b..63c8488 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/view/ViewFactory.java +++ b/dockingcore/src/main/java/fr/soleil/docking/view/AbstractViewFactory.java @@ -22,12 +22,12 @@ import fr.soleil.docking.action.ViewAction; * * @author girardot */ -public class ViewFactory implements IViewFactory { +public abstract class AbstractViewFactory implements IViewFactory { protected final Map<Object, IView> views; protected final PropertyChangeSupport support; - public ViewFactory() { + public AbstractViewFactory() { super(); views = new ConcurrentHashMap<Object, IView>(); support = new PropertyChangeSupport(this); 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 d2baff9..cbd6037 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java +++ b/dockingcore/src/main/java/fr/soleil/docking/view/IViewFactory.java @@ -1,5 +1,6 @@ package fr.soleil.docking.view; +import java.awt.Component; import java.beans.PropertyChangeListener; import java.io.IOException; import java.io.ObjectInputStream; @@ -9,6 +10,8 @@ import java.util.List; import java.util.prefs.Preferences; import javax.swing.Action; +import javax.swing.Icon; +import javax.swing.JComponent; /** * A factory that takes care of initializing dockable components and transmitting models. @@ -75,6 +78,19 @@ 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 a 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 + * @param dockingArea The docking area + * @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, JComponent dockingArea); + public boolean removeView(IView view); /** -- GitLab