private void detachFrom(Component paramComponent)
  {
    if ((paramComponent instanceof ImageComponent)) {
      ((ImageComponent)paramComponent).removeImageListener(this);
    } else if ((paramComponent instanceof ImageComposite)) {
      ((ImageComposite)paramComponent).removeImageListener(this);
    } else if (((paramComponent instanceof Container)) && ((paramComponent instanceof ReportingContainer)))
    {
      Container localContainer = (Container)paramComponent;
      ((ReportingContainer)paramComponent).removeReportingContainerListener(this);
      Component[] arrayOfComponent = localContainer.getComponents();
      for (int i = 0; i < arrayOfComponent.length; i++) {
        detachFrom(arrayOfComponent[i]);
      }
    }
    if ((paramComponent instanceof ReportingComponent))
      ((ReportingComponent)paramComponent).removeReportingComponentListener(this);
  }