AttributeColumnSynchronizer extends BaseColumnSynchronizer<ColumnMetaData, ColumnMetaData, ColumnMetaData> { @Override public void delete(final ColumnMetaData metaData) throws VetoException { if (!handlesDelete(metaData)) { return; } final AttributeCol52 column = (AttributeCol52) metaData.getColumn(); final int columnIndex = model.getExpandedColumns().indexOf(column); model.getAttributeCols().remove(column); synchroniseDeleteColumn(columnIndex); }  @Override boolean handlesAppend(final MetaData metaData); @Override void append(final ColumnMetaData metaData); @Override boolean handlesUpdate(final MetaData metaData); @Override List<BaseColumnFieldDiff> update(final ColumnMetaData originalMetaData,
                                            final ColumnMetaData editedMetaData); @Override boolean handlesDelete(final MetaData metaData); @Override void delete(final ColumnMetaData metaData); @Override boolean handlesMoveColumnsTo(final List<? extends MetaData> metaData); @Override void moveColumnsTo(final List<MoveColumnToMetaData> metaData);  }
@Test public void testDelete() throws VetoException { final AttributeCol52 column = new AttributeCol52(); column.setAttribute(Attribute.SALIENCE.getAttributeName()); modelSynchronizer.appendColumn(column); assertEquals(1, model.getAttributeCols().size()); assertEquals(4, uiModel.getColumns().size()); modelSynchronizer.deleteColumn(column); assertEquals(0, model.getAttributeCols().size()); assertEquals(3, uiModel.getColumns().size()); }