Skip to content
Snippets Groups Projects
Commit 35f6c0a6 authored by GIRARDOT Raphael's avatar GIRARDOT Raphael Committed by MADELA Patrick
Browse files

- better listeners management. Big change --> version set to 1.1.0-SNAPSHOT

- added the possibility to change IView's icon and title (JAVAAPI-262)
parent d7e04c6c
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
......@@ -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));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment