class ColumnDefinitionController extends BaseSelectedColumnObserver {

    private void applyChanges()
    {
        ColumnDefinitionTableModel columnTable = myModel.getDefinitionTableModel();
        CSVParseParameters parameters = myModel.getSelectedParameters();

        List<String> columnNames = New.list();
        List<SpecialColumn> specialColumns = New.list();
        List<Integer> ignoreColumns = New.list();

        for (int i = 0; i < columnTable.getRowCount(); i++)
        {
            ColumnDefinitionRow row = columnTable.getRow(i);

            columnNames.add(row.getColumnName());

            String dataType = row.getDataType();

            if (StringUtils.isNotEmpty(dataType))
            {
                SpecialColumn specialColumn = new SpecialColumn();
                specialColumn.setColumnIndex(row.getColumnId());
                specialColumn.setColumnType(ColumnType.fromString(dataType));
                specialColumn.setFormat(row.getFormat());

                specialColumns.add(specialColumn);
            }

            if (!row.isImport())
            {
                ignoreColumns.add(Integer.valueOf(row.getColumnId()));
            }
        }

        parameters.setColumnNames(columnNames);
        parameters.getSpecialColumns().clear();
        parameters.getSpecialColumns().addAll(specialColumns);
        parameters.setColumnsToIgnore(ignoreColumns);
    }

    public  ColumnDefinitionController(PreferencesRegistry preferencesRegistry, ColumnDefinitionModel model, CellSampler sampler);

}