/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.bearsoft.gui.grid.header;
import java.awt.Dimension;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableColumnModelListener;
/**
*
* @author mg
*/
public class InnerColumnsListener implements TableColumnModelListener {
protected MultiLevelHeader header;
protected boolean eventsEnabled = true;
public InnerColumnsListener(MultiLevelHeader aHeader) {
super();
header = aHeader;
}
@Override
public void columnAdded(TableColumnModelEvent e) {
if (eventsEnabled) {
header.regenerate();
}
}
@Override
public void columnRemoved(TableColumnModelEvent e) {
if (eventsEnabled) {
header.regenerate();
}
}
@Override
public void columnMoved(TableColumnModelEvent e) {
if (eventsEnabled) {
header.regenerate();
}
}
@Override
public void columnMarginChanged(ChangeEvent e) {
ajustHeaderSize();
}
private void ajustHeaderSize() {
header.setSize(header.getPreferredSize());
header.validate();
Dimension s = header.getSize();
Dimension ps = header.getPreferredSize();
header.setSize(s.width, ps.height);
header.validate();
}
@Override
public void columnSelectionChanged(ListSelectionEvent e) {
}
public boolean isEventsEnabled() {
return eventsEnabled;
}
public void setEventsEnabled(boolean aValue) {
eventsEnabled = aValue;
}
}