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)  

    Methods inherited from class com.illumon.infonode.docking.DockingWindowAdapter

    viewFocusChanged, windowDocked, windowDocking, windowHidden, windowMaximized, windowMaximizing, windowMinimized, windowMinimizing, windowRestored, windowRestoring, windowShown, windowUndocked, windowUndocking

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • windowClosing

      public void windowClosing​(com.illumon.infonode.docking.DockingWindow window) throws com.illumon.infonode.docking.OperationAbortedException
      Handle the windowClosing event from this, and it's parent.
      Specified by:
      windowClosing in interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      windowClosing in class com.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 interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      windowClosed in class com.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 interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      windowAdded in class com.illumon.infonode.docking.DockingWindowAdapter
      Parameters:
      addedToWindow - The window "addedWindow" is being added as a child of
      addedWindow - 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 interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      windowRemoved in class com.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 interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      onUserEventWithAbort in class com.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 interface com.illumon.infonode.docking.DockingWindowListener
      Overrides:
      onUserEvent in class com.illumon.infonode.docking.DockingWindowAdapter