diff --git a/dockingvl/pom.xml b/dockingvl/pom.xml index 9e204d5d403ce509667b84e95b78151de4cf5775..6680a90fd7a99c3c5f113acd8ab6cc8f12972b7b 100644 --- a/dockingvl/pom.xml +++ b/dockingvl/pom.xml @@ -9,7 +9,7 @@ </parent> <groupId>fr.soleil.lib</groupId> <artifactId>DockingVl</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> <name>Docking VL</name> <description>VL Docking implementation of DockingCore</description> <developers> diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java index 27c892f3a6b5501389b162e13ba66bb2aa88666e..ca1d81acaf9dccef32666cf890538bfa9e430863 100644 --- a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java +++ b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java @@ -25,11 +25,14 @@ import com.vldocking.swing.docking.event.DockingActionCloseEvent; import com.vldocking.swing.docking.event.DockingActionEvent; import com.vldocking.swing.docking.event.DockingActionListener; +import fr.soleil.docking.event.DockingEvent; +import fr.soleil.docking.listener.IViewListener; +import fr.soleil.docking.listener.ViewListenerDelegate; import fr.soleil.docking.view.IView; -import fr.soleil.docking.view.IViewListener; import fr.soleil.docking.vl.SoleilDockingDesktop; public class VlDockView implements IView, Dockable, DockingActionListener, FocusListener { + protected Object id; protected boolean enabled; protected String title; @@ -37,7 +40,7 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus protected Icon icon; protected DockKey key; protected SoleilDockingDesktop dockingDesktop; - protected List<IViewListener> viewListeners; + protected final ViewListenerDelegate delegate; public VlDockView(String title, Icon icon, Component component, Object id) { this.title = title; @@ -51,7 +54,7 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus this.key = new DockKey(title, title, title, icon); } - this.viewListeners = new ArrayList<IViewListener>(); + delegate = new ViewListenerDelegate(); this.component.addFocusListener(this); } @@ -107,7 +110,7 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus @Override public void select() { setVisible(true); - // TODO marche pas !!!!!! + // TODO Doesn't work !!!!!! focus(component); focusGained(new FocusEvent(component, FocusEvent.FOCUS_GAINED)); } @@ -139,11 +142,21 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus return title; } + @Override + public void setTitle(String title) { + this.title = title; + } + @Override public Icon getIcon() { return icon; } + @Override + public void setIcon(Icon icon) { + this.icon = icon; + } + @Override public Color getViewBackground() { return component.getBackground(); @@ -168,11 +181,10 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus component.setForeground(fg); } - /* + /** * Sets the background of all {@link Component}s in a given {@link List} * * @param components The {@link List} - * * @param bg The background to set */ protected void setComponentsBackground(List<?> components, Color bg) { @@ -216,12 +228,16 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus @Override public void setClosable(boolean closable) { key.setCloseEnabled(closable); - } @Override public void addViewListener(final IViewListener listener) { - viewListeners.add(listener); + delegate.addViewListener(listener); + } + + @Override + public void removeViewListener(IViewListener listener) { + delegate.removeViewListener(listener); } @Override @@ -235,26 +251,23 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus } @Override - public void dockingActionPerformed(DockingActionEvent event) { - if (event.getActionType() == DockingActionEvent.ACTION_CLOSE) { - Dockable closedDockable = ((DockingActionCloseEvent) event).getDockable(); + public void dockingActionPerformed(DockingActionEvent e) { + if (e.getActionType() == DockingActionEvent.ACTION_CLOSE) { + Dockable closedDockable = ((DockingActionCloseEvent) e).getDockable(); if (getDockKey().getKey().equals(closedDockable.getDockKey().getKey())) { - for (IViewListener listener : viewListeners) { - listener.viewClosed(); - } + delegate.warnListeners(new DockingEvent(this, DockingEvent.VIEW_CLOSED)); } } } @Override public void focusGained(FocusEvent e) { - for (IViewListener listener : viewListeners) { - listener.focusGained(); - } + delegate.warnListeners(new DockingEvent(this, DockingEvent.FOCUS_GAINED)); } @Override public void focusLost(FocusEvent e) { - // Not managed. + delegate.warnListeners(new DockingEvent(this, DockingEvent.FOCUS_LOST)); } + }