protected void filterColumns() {
if ( m_parent == null ) return;
for ( int i=0; i<m_pnames.size(); ++i ) {
String name = (String)m_pnames.get(i);
Column col = m_parent.getColumn(name);
boolean contained = m_names.contains(name);
boolean removedFromParent = (col == null);
if (removedFromParent || !m_colFilter.include(col, name) || contained ) {
m_pnames.remove(i--);
if ( !contained ) {
((ColumnEntry)m_entries.get(name)).dispose();
m_entries.remove(name);
}
// fire notification
fireTableEvent(m_rows.getMinimumRow(),
m_rows.getMaximumRow(),
i, EventConstants.DELETE);
}
}
m_pnames.clear();
Iterator pcols = m_parent.getColumnNames();
for ( int i=0, j=m_columns.size(); pcols.hasNext(); ++i ) {
String name = (String)pcols.next();
Column col = m_parent.getColumn(i);
if ( m_colFilter.include(col, name) && !m_names.contains(name) ) {
m_pnames.add(name);
ColumnEntry entry = (ColumnEntry)m_entries.get(name);
if ( entry == null ) {