Package com.illumon.iris.gui.workspace
Class ViewClosingHandler
java.lang.Object
com.illumon.infonode.docking.DockingWindowAdapter
com.illumon.iris.gui.workspace.ViewClosingHandler
- All Implemented Interfaces:
com.illumon.infonode.docking.DockingWindowListener
- Direct Known Subclasses:
ViewClosingReusedHandler
public class ViewClosingHandler
extends com.illumon.infonode.docking.DockingWindowAdapter
Handle the windowClosing event from the view. This class will additionally listen for the same event from
it's parent so we can properly catch when the parent tab window is closed and invoke the listener.
This listener will automatically remove itself from the window's and parent window's listener list once
ViewClosingHandler.CloseListener.viewClosed()
or ViewClosingHandler.CloseListener.viewReused()
is called.-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ViewClosingHandler.CloseListener
Listen for a closing, closed, and reused events of a view. -
Constructor Summary
Constructors Constructor Description ViewClosingHandler(com.illumon.infonode.docking.DockingWindow dockingWindow, ViewClosingHandler.CloseListener listener)
-
Method Summary
Modifier and Type Method Description void
detach()
Detach this listener from the window and it's parent.void
onUserEvent(com.illumon.infonode.docking.DockingWindow window, com.illumon.infonode.docking.UserDockingWindowEvent event)
void
onUserEventWithAbort(com.illumon.infonode.docking.DockingWindow window, com.illumon.infonode.docking.UserDockingWindowEvent event)
void
windowAdded(com.illumon.infonode.docking.DockingWindow addedToWindow, com.illumon.infonode.docking.DockingWindow addedWindow)
If the window being added is us (we are being parented) add this listener to the new parent so that we can properly handle when the parent window is closed.void
windowClosed(com.illumon.infonode.docking.DockingWindow window)
Handle when this window is actually closed.void
windowClosing(com.illumon.infonode.docking.DockingWindow window)
Handle the windowClosing event from this, and it's parent.void
windowRemoved(com.illumon.infonode.docking.DockingWindow removedFromWindow, com.illumon.infonode.docking.DockingWindow removedWindow)
-
Constructor Details
-
ViewClosingHandler
public ViewClosingHandler(com.illumon.infonode.docking.DockingWindow dockingWindow, ViewClosingHandler.CloseListener listener)
-
-
Method Details
-
windowClosing
public void windowClosing(com.illumon.infonode.docking.DockingWindow window) throws com.illumon.infonode.docking.OperationAbortedExceptionHandle the windowClosing event from this, and it's parent.- Specified by:
windowClosing
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
windowClosing
in classcom.illumon.infonode.docking.DockingWindowAdapter
- Parameters:
window
- The window that's closing- Throws:
com.illumon.infonode.docking.OperationAbortedException
- If the user aborted the close operation- ImplNote:
- Since the windowClosing event is propagated up the component tree, it is possible to receive events for any other child window of the current parent. This means we must filter out events for windows that are closing that aren't either us, or our parent.
-
windowClosed
public void windowClosed(com.illumon.infonode.docking.DockingWindow window)Handle when this window is actually closed.- Specified by:
windowClosed
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
windowClosed
in classcom.illumon.infonode.docking.DockingWindowAdapter
- Parameters:
window
- the window that was closed.- ImplNote:
- In some cases with View, the object is maintained as a SoftReference and can hang around to be re-used later, ie) when the user clicks "Reload" so we need to reset the closeInProgress state.
-
detach
public void detach()Detach this listener from the window and it's parent. -
windowAdded
public void windowAdded(com.illumon.infonode.docking.DockingWindow addedToWindow, com.illumon.infonode.docking.DockingWindow addedWindow)If the window being added is us (we are being parented) add this listener to the new parent so that we can properly handle when the parent window is closed.- Specified by:
windowAdded
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
windowAdded
in classcom.illumon.infonode.docking.DockingWindowAdapter
- Parameters:
addedToWindow
- The window "addedWindow" is being added as a child ofaddedWindow
- The window being added as a child.
-
windowRemoved
public void windowRemoved(com.illumon.infonode.docking.DockingWindow removedFromWindow, com.illumon.infonode.docking.DockingWindow removedWindow)- Specified by:
windowRemoved
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
windowRemoved
in classcom.illumon.infonode.docking.DockingWindowAdapter
-
onUserEventWithAbort
public void onUserEventWithAbort(com.illumon.infonode.docking.DockingWindow window, com.illumon.infonode.docking.UserDockingWindowEvent event) throws com.illumon.infonode.docking.OperationAbortedException- Specified by:
onUserEventWithAbort
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
onUserEventWithAbort
in classcom.illumon.infonode.docking.DockingWindowAdapter
- Throws:
com.illumon.infonode.docking.OperationAbortedException
-
onUserEvent
public void onUserEvent(com.illumon.infonode.docking.DockingWindow window, com.illumon.infonode.docking.UserDockingWindowEvent event)- Specified by:
onUserEvent
in interfacecom.illumon.infonode.docking.DockingWindowListener
- Overrides:
onUserEvent
in classcom.illumon.infonode.docking.DockingWindowAdapter
-