/**
* Copyright (c) 2009 - 2011 AppWork UG(haftungsbeschränkt) <e-mail@appwork.org>
*
* This file is part of org.appwork.utils.swing.table
*
* This software is licensed under the Artistic License 2.0,
* see the LICENSE file or http://www.opensource.org/licenses/artistic-license-2.0.php
* for details
*/
package org.appwork.utils.swing.table;
import javax.swing.event.TableColumnModelListener;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
/**
* @author thomas
*
*/
public class ExtColumnModel extends DefaultTableColumnModel {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param columnModel
*/
public ExtColumnModel(final TableColumnModel org) {
super();
this.setColumnMargin(org.getColumnMargin());
this.setColumnSelectionAllowed(org.getColumnSelectionAllowed());
this.setSelectionModel(org.getSelectionModel());
for (int i = 0; i < org.getColumnCount(); i++) {
this.addColumn(org.getColumn(i));
}
if (org instanceof DefaultTableColumnModel) {
for (final TableColumnModelListener cl : ((DefaultTableColumnModel) org).getColumnModelListeners()) {
this.addColumnModelListener(cl);
}
}
}
@Override
public TableColumn getColumn(final int columnIndex) {
/*
* Math.max(0, columnIndex)
*
* WORKAROUND for -1 column access,Index out of Bound,Unknown why it
* happens but this workaround seems to do its job
*/
return super.getColumn(columnIndex < 0 ? 0 : columnIndex);
}
}