/** dispose method */
  public void dispose() {
    // remove listener
    DsfSession.removeSessionEndedListener(this);

    // dispose of any filter
    if (m_filterSessionMap != null) {
      for (MulticoreVisualizerCanvasFilter filter : m_filterSessionMap.values()) {
        filter.dispose();
      }
      m_filterSessionMap.clear();
      m_filterSessionMap = null;
    }
    m_canvas = null;
    m_currentFilter = null;
  }
 /** Clears the current filter */
 public void clearFilter() {
   if (m_currentFilter != null) {
     m_currentFilter.clearFilter();
   }
 }
 /** Sets-up a filter, based on the current canvas selection */
 public void applyFilter() {
   if (m_currentFilter != null) {
     m_currentFilter.applyFilter();
   }
 }
 /** Re-computes the current filter to reflect latest model changes */
 public void updateCurrentFilter() {
   if (m_currentFilter != null) {
     m_currentFilter.updateFilter();
   }
 }
 /** Checks if the current filter permits the display of an object */
 public boolean displayObject(final IVisualizerModelObject obj) {
   if (m_currentFilter != null) {
     return m_currentFilter.displayObject(obj);
   }
   return false;
 }
 /** Checks if the current filter is active */
 public boolean isCurrentFilterActive() {
   if (m_currentFilter != null) {
     return m_currentFilter.isFilterActive();
   }
   return false;
 }