/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.bearsoft.gui.grid.selection;
import com.bearsoft.gui.grid.GridTest;
import com.bearsoft.gui.grid.insets.LinearInset;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableColumnModelListener;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Gala
*/
public class ConstraintedSelectionTest extends GridTest {
@Test
public void changeConstrainedSelectionTest() throws Exception {
int fixedRows = 2;
int fixedCols = 3;
// insets setup
LinearInset rowsInset = new LinearInset(3, 7);
LinearInset columnsInset = new LinearInset(2, 5);
ConfResult conf = beginVisual(fixedRows, fixedCols, rowsInset, columnsInset);
insettedColumnSelectionModel.setSelectionInterval(0, insettedColumnModel.getColumnCount() - 1);
insettedSelectionModel.setSelectionInterval(0, 0);
insettedColumnSelectionModel.setSelectionInterval(1, 1);
insettedColumnSelectionModel.setSelectionInterval(0, 0);
assertTrue(conf.tlTable.getSelectionModel().isSelectedIndex(0));
assertTrue(conf.tlTable.getColumnModel().getSelectionModel().isSelectedIndex(0));
endVisual();
}
@Test
public void constraintedOverInsettedSelectionTest() throws Exception {
int fixedRows = 2;
int fixedCols = 3;
// insets setup
LinearInset rowsInset = new LinearInset(3, 7);
LinearInset columnsInset = new LinearInset(2, 5);
ConfResult conf = beginVisual(fixedRows, fixedCols, rowsInset, columnsInset);
insettedColumnSelectionModel.setSelectionInterval(0, insettedColumnModel.getColumnCount() - 1);
insettedSelectionModel.setSelectionInterval(0, 1);
for (int i = 0; i < columnsInset.getPreFirst(); i++) {
assertTrue(conf.tlTable.getColumnModel().getSelectionModel().isSelectedIndex(i));
assertTrue(conf.tlTable.getSelectionModel().isSelectedIndex(0));
assertTrue(conf.tlTable.getSelectionModel().isSelectedIndex(1));
}
for (int i = 0; i < conf.trTable.getColumnCount(); i++) {
assertTrue(conf.trTable.getColumnModel().getSelectionModel().isSelectedIndex(i));
assertTrue(conf.trTable.getSelectionModel().isSelectedIndex(0));
assertTrue(conf.trTable.getSelectionModel().isSelectedIndex(1));
}
endVisual();
}
protected int columnSelectionEventsCount = 0;
protected int columnSelectionEventsCount1 = 0;
@Test
public void constraintedColumnsSelection2ColumnModelEventsChainTest() throws Exception {
columnSelectionEventsCount = 0;
int fixedRows = 2;
int fixedCols = 3;
// insets setup
LinearInset rowsInset = new LinearInset(3, 7);
LinearInset columnsInset = new LinearInset(2, 5);
ConfResult conf = beginVisual(fixedRows, fixedCols, rowsInset, columnsInset);
insettedColumnSelectionModel.setSelectionInterval(0, insettedColumnModel.getColumnCount() - 1);
insettedSelectionModel.setSelectionInterval(0, 0);
insettedColumnSelectionModel.setSelectionInterval(1, 1);
insettedColumnSelectionModel.setSelectionInterval(0, 0);
assertTrue(conf.tlTable.getSelectionModel().isSelectedIndex(0));
assertTrue(conf.tlTable.getColumnModel().getSelectionModel().isSelectedIndex(0));
conf.tlTable.getColumnModel().addColumnModelListener(new TableColumnModelListener() {
public void columnAdded(TableColumnModelEvent e) {
}
public void columnRemoved(TableColumnModelEvent e) {
}
public void columnMoved(TableColumnModelEvent e) {
}
public void columnMarginChanged(ChangeEvent e) {
}
public void columnSelectionChanged(ListSelectionEvent e) {
columnSelectionEventsCount++;
}
});
insettedColumnSelectionModel.setSelectionInterval(1, 1);
insettedColumnSelectionModel.setSelectionInterval(0, 0);
assertEquals(4, columnSelectionEventsCount);
endVisual();
}
@Test
public void insettedColumnsSelection2ColumnModelEventsChainTest() throws Exception {
columnSelectionEventsCount1 = 0;
int fixedRows = 2;
int fixedCols = 3;
// insets setup
LinearInset rowsInset = new LinearInset(3, 7);
LinearInset columnsInset = new LinearInset(2, 5);
ConfResult conf = beginVisual(fixedRows, fixedCols, rowsInset, columnsInset);
insettedColumnSelectionModel.setSelectionInterval(0, insettedColumnModel.getColumnCount() - 1);
insettedSelectionModel.setSelectionInterval(0, 0);
insettedColumnSelectionModel.setSelectionInterval(1, 1);
insettedColumnSelectionModel.setSelectionInterval(0, 0);
assertTrue(conf.tlTable.getSelectionModel().isSelectedIndex(0));
assertTrue(conf.tlTable.getColumnModel().getSelectionModel().isSelectedIndex(0));
insettedColumnModel.addColumnModelListener(new TableColumnModelListener() {
public void columnAdded(TableColumnModelEvent e) {
}
public void columnRemoved(TableColumnModelEvent e) {
}
public void columnMoved(TableColumnModelEvent e) {
}
public void columnMarginChanged(ChangeEvent e) {
}
public void columnSelectionChanged(ListSelectionEvent e) {
columnSelectionEventsCount1++;
}
});
insettedColumnSelectionModel.setSelectionInterval(1, 1);
insettedColumnSelectionModel.setSelectionInterval(0, 0);
assertEquals(2, columnSelectionEventsCount1);
endVisual();
}
}