diff --git a/dockinginfonode/pom.xml b/dockinginfonode/pom.xml index fa9a8eca16beb21cf7f9b0d0505ee7aa65190ce2..759d7bba608b2e421a9f426f70b98c0cf2e2182e 100644 --- a/dockinginfonode/pom.xml +++ b/dockinginfonode/pom.xml @@ -9,7 +9,7 @@ </parent> <groupId>fr.soleil.lib</groupId> <artifactId>DockingInfoNode</artifactId> - <version>1.0.10-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> <name>Docking InfoNode</name> <description>InfoNode implementation of DockingCore</description> <developers> diff --git a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java index 5ac691259b422337862911d657a2f30249d91cfe..28489ac95c83968ee3d22afd4070b239f708b4f6 100644 --- a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java +++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java @@ -15,12 +15,13 @@ import javax.swing.Icon; import net.infonode.docking.AbstractTabWindow; import net.infonode.docking.DockingWindow; -import net.infonode.docking.DockingWindowListener; -import net.infonode.docking.OperationAbortedException; +import net.infonode.docking.DockingWindowAdapter; import net.infonode.docking.RootWindow; import net.infonode.docking.View; +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; /** * A dynamically created view containing an id. @@ -30,9 +31,10 @@ import fr.soleil.docking.view.IViewListener; */ public class InfoNodeView extends View implements IView { - private static final long serialVersionUID = 1934485690520898657L; + private static final long serialVersionUID = 6381456606851418094L; protected Object id; + protected final ViewListenerDelegate delegate; /** * Constructor. @@ -45,6 +47,24 @@ public class InfoNodeView extends View implements IView { public InfoNodeView(String title, Icon icon, Component component, Object id) { super(title, icon, component); this.id = id; + delegate = new ViewListenerDelegate(); + addListener(new DockingWindowAdapter() { + + @Override + public void windowClosed(DockingWindow window) { + delegate.warnListeners(new DockingEvent(InfoNodeView.this, DockingEvent.VIEW_CLOSED)); + } + + @Override + public void viewFocusChanged(View previouslyFocusedView, View focusedView) { + if (InfoNodeView.this.equals(focusedView)) { + delegate.warnListeners(new DockingEvent(InfoNodeView.this, DockingEvent.FOCUS_GAINED)); + } else { + delegate.warnListeners(new DockingEvent(InfoNodeView.this, DockingEvent.FOCUS_LOST)); + } + } + }); + } @Override @@ -105,7 +125,6 @@ public class InfoNodeView extends View implements IView { super.update(); super.setVisible(true); super.setEnabled(true); - } @Override @@ -228,98 +247,30 @@ public class InfoNodeView extends View implements IView { @Override public void addViewListener(final IViewListener listener) { - addListener(new DockingWindowListener() { - - @Override - public void windowUndocking(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowUndocked(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowShown(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowRestoring(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowRestored(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowRemoved(DockingWindow removedFromWindow, DockingWindow removedWindow) { - // Not used yet. - } - - @Override - public void windowMinimizing(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowMinimized(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowMaximizing(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowMaximized(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowHidden(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowDocking(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowDocked(DockingWindow window) { - // Not used yet. - } - - @Override - public void windowClosing(DockingWindow window) throws OperationAbortedException { - // Not used yet. - } - - @Override - public void windowClosed(DockingWindow window) { - listener.viewClosed(); - } + delegate.addViewListener(listener); + } - @Override - public void windowAdded(DockingWindow addedToWindow, DockingWindow addedWindow) { - // Not used yet. - } + @Override + public void removeViewListener(IViewListener listener) { + delegate.removeViewListener(listener); + } - @Override - public void viewFocusChanged(View previouslyFocusedView, View focusedView) { - if (InfoNodeView.this.equals(focusedView)) { - listener.focusGained(); - } else { - listener.focusLost(); - } - } - }); + @Override + public void setTitle(String title) { + getViewProperties().setTitle(title == null ? "" : title); + RootWindow rootWindow = getRootWindow(); + if (rootWindow != null) { + rootWindow.repaint(); + } + } + @Override + public void setIcon(Icon icon) { + getViewProperties().setIcon(icon); + RootWindow rootWindow = getRootWindow(); + if (rootWindow != null) { + rootWindow.repaint(); + } } }