public void columnSizeChanged(TableColumnCore tableColumn, int diff) {
   Iterator iter = listeners.iterator();
   while (iter.hasNext()) {
     TableStructureModificationListener listener =
         (TableStructureModificationListener) iter.next();
     listener.columnSizeChanged(tableColumn, diff);
   }
 }
  public void columnOrderChanged(int[] iPositions) {

    Iterator iter = listeners.iterator();
    while (iter.hasNext()) {
      TableStructureModificationListener listener =
          (TableStructureModificationListener) iter.next();
      listener.columnOrderChanged(iPositions);
    }
  }
  public void cellInvalidate(TableColumnCore tableColumn, Object data_source) {

    Iterator iter = listeners.iterator();
    while (iter.hasNext()) {
      TableStructureModificationListener listener =
          (TableStructureModificationListener) iter.next();
      listener.cellInvalidate(tableColumn, data_source);
    }
  }
  public void columnInvalidate(TableColumnCore tableColumn) {

    Iterator iter = listeners.iterator();
    while (iter.hasNext()) {
      TableStructureModificationListener listener =
          (TableStructureModificationListener) iter.next();
      listener.columnInvalidate(tableColumn);
    }
  }
  public void tableStructureChanged(boolean columnAddedOrRemoved, Class forPluginDataSourceType) {

    Iterator iter = listeners.iterator();
    while (iter.hasNext()) {
      TableStructureModificationListener listener =
          (TableStructureModificationListener) iter.next();
      try {
        listener.tableStructureChanged(columnAddedOrRemoved, forPluginDataSourceType);
      } catch (Throwable e) {
        Debug.printStackTrace(e);
      }
    }
  }
  public Set<Class<?>> prepareForTableReset() {
    Set<Class<?>> dataSourceTypes = new HashSet<Class<?>>();

    Iterator iter = listeners.iterator();
    while (iter.hasNext()) {
      TableStructureModificationListener listener =
          (TableStructureModificationListener) iter.next();
      try {
        dataSourceTypes.addAll(listener.prepareForTableReset());
      } catch (Throwable e) {
        Debug.printStackTrace(e);
      }
    }

    return (dataSourceTypes);
  }