|
Cell Spanning |
Top Previous Next |
TreeTable extends AdvancedJTable and is therefore capable of cell spanning. TreeTable overrides AdvancedJTable's method:
protected SpanDrawer createSpanDrawer();
, in order to set an inner DefaultSpanModel subclass, TreeTable.DefaultTreeSpanModel, which spans the header rows of the treetable. Here is how DefaultTreeSpanModel is implemented:
public class DefaultTreeSpanModel extends DefaultSpanModel {
private CellSpan cs;
/**
* Constructs a DefaultTreeSpanModel.
*/
public DefaultTreeSpanModel() {
cs = new CellSpan(0, 0, 0, CellSpan.ALL_COLUMNS);
}
public CellSpan getCellSpanAt(int row, int column) {
TreeTableModel model = (TreeTableModel) getModel();
if (model.isHeader(row)) {
cs.setSpannedRow(row);
return cs;
}
return super.getCellSpanAt(row, column);
}
}