/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.bearsoft.gui.grid.header.cell;
import com.bearsoft.gui.grid.header.GridColumnsNode;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.RowSorter;
/**
*
* @author Gala
*/
public class CellSortingToggler extends MouseAdapter {
protected HeaderCell cell;
public CellSortingToggler(HeaderCell aCell) {
super();
cell = aCell;
}
@Override
public void mouseClicked(MouseEvent e) {
GridColumnsNode colGroup = cell.getColGroup();
if (colGroup.isLeaf() && colGroup.isSortable() && colGroup.getTableColumn() != null
&& cell.getHeader().getRowSorter() != null) {
RowSorter rowSorter = cell.getHeader().getRowSorter();
int modelIndex = colGroup.getTableColumn().getModelIndex();
if (!e.isControlDown() && (rowSorter.getSortKeys().size() != 1 || ((RowSorter.SortKey)rowSorter.getSortKeys().get(0)).getColumn() != modelIndex)) {
rowSorter.setSortKeys(new ArrayList<>());
}
rowSorter.toggleSortOrder(modelIndex);
}
}
}