/*****************************************************************************
* Copyright (c) 2015 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Dirk Fauth <dirk.fauth@googlemail.com> - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.nebula.widgets.nattable.fillhandle;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.config.AbstractRegistryConfiguration;
import org.eclipse.nebula.widgets.nattable.config.EditableRule;
import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
import org.eclipse.nebula.widgets.nattable.copy.command.CopyDataToClipboardCommand;
import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
import org.eclipse.nebula.widgets.nattable.fillhandle.command.FillHandlePasteCommand;
import org.eclipse.nebula.widgets.nattable.fillhandle.command.FillHandlePasteCommand.FillHandleOperation;
import org.eclipse.nebula.widgets.nattable.fillhandle.config.FillHandleConfiguration;
import org.eclipse.nebula.widgets.nattable.formula.TwoDimensionalArrayDataProvider;
import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum;
import org.eclipse.nebula.widgets.nattable.test.fixture.NatTableFixture;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class FillHandlePasteTest {
IDataProvider dataProvider = new TwoDimensionalArrayDataProvider(new Object[10][10]);
SelectionLayer selectionLayer = new SelectionLayer(new DataLayer(this.dataProvider));
NatTable natTable = new NatTableFixture(this.selectionLayer, false);
@Before
public void setup() {
this.natTable.addConfiguration(new FillHandleConfiguration(this.selectionLayer));
this.natTable.addConfiguration(new AbstractRegistryConfiguration() {
@Override
public void configureRegistry(IConfigRegistry configRegistry) {
configRegistry.registerConfigAttribute(
EditConfigAttributes.CELL_EDITABLE_RULE,
EditableRule.ALWAYS_EDITABLE);
}
});
this.natTable.configure();
}
@After
public void tearDown() {
this.selectionLayer.clear();
this.selectionLayer.setFillHandleRegion(null);
}
@Test
public void testSingleCellDragOneDown() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 1, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(new Point(4, 4), new Point(4, 5));
}
@Test
public void testSingleCellDragOneUp() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 3, 1, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 3));
testCellStates(new Point(4, 4), new Point(4, 3));
}
@Test
public void testSingleCellDragOneRight() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 2, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 4));
testCellStates(new Point(4, 4), new Point(5, 4));
}
@Test
public void testSingleCellDragOneLeft() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 2, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 4));
testCellStates(new Point(4, 4), new Point(3, 4));
}
@Test
public void testSingleCellDragMultipleDown() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 1, 4));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 7));
testCellStates(new Point(4, 4), new Point(4, 5), new Point(4, 6), new Point(4, 7));
}
@Test
public void testSingleCellDragMultiUp() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 0, 1, 5));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 0));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 1));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 2));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 3));
testCellStates(new Point(4, 4), new Point(4, 0), new Point(4, 1), new Point(4, 2), new Point(4, 3));
}
@Test
public void testSingleCellDragMultiRight() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 4, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(6, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(7, 4));
testCellStates(new Point(4, 4), new Point(5, 4), new Point(6, 4), new Point(7, 4));
}
@Test
public void testSingleCellDragMultiLeft() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(0, 4, 5, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(0, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(1, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(2, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 4));
testCellStates(new Point(4, 4), new Point(0, 4), new Point(1, 4), new Point(2, 4), new Point(3, 4));
}
@Test
public void testSingleCellDragDownRight() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 2, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 5));
testCellStates(new Point(4, 4), new Point(4, 5), new Point(5, 4), new Point(5, 5));
}
@Test
public void testSingleCellDragOneUpRight() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 3, 2, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 4));
testCellStates(new Point(4, 3), new Point(5, 3), new Point(4, 4), new Point(5, 4));
}
@Test
public void testSingleCellDragUpLeft() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 3, 2, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
testCellStates(new Point(3, 3), new Point(4, 3), new Point(3, 4), new Point(4, 4));
}
@Test
public void testSingleCellDragDownLeft() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.setSelectedCell(4, 4);
testCellStates(new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 2, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
}
@Test
public void testMultiVerticalCellDragRight() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(4, 4), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 3, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(5, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(6, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(6, 5));
testCellStates(new Point(4, 4), new Point(4, 5), new Point(5, 4), new Point(5, 5), new Point(6, 4), new Point(6, 5));
}
@Test
public void testMultiVerticalCellDragLeft() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(4, 4), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(2, 4, 3, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(2, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(2, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(new Point(2, 4), new Point(2, 5), new Point(3, 4), new Point(3, 5), new Point(4, 4), new Point(4, 5));
}
@Test
public void testMultiVerticalCellDragDown() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(4, 4), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 4, 1, 5));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 7));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 8));
testCellStates(new Point(4, 4), new Point(4, 5), new Point(4, 6), new Point(4, 7), new Point(4, 8));
}
@Test
public void testMultiVerticalCellDragUp() {
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(4, 4), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(4, 1, 1, 5));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 1));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 2));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(new Point(4, 1), new Point(4, 2), new Point(4, 3), new Point(4, 4), new Point(4, 5));
}
@Test
public void testMultiHorizontalCellDragRight() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
testCellStates(new Point(3, 4), new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 5, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(6, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(7, 4));
testCellStates(new Point(3, 4), new Point(4, 4), new Point(5, 4), new Point(6, 4), new Point(7, 4));
}
@Test
public void testMultiHorizontalCellDragLeft() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
testCellStates(new Point(3, 4), new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(0, 4, 5, 1));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(0, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(1, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(2, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
testCellStates(new Point(0, 4), new Point(1, 4), new Point(2, 4), new Point(3, 4), new Point(4, 4));
}
@Test
public void testMultiHorizontalCellDragDown() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
testCellStates(new Point(3, 4), new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 2, 3));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 6));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5), new Point(3, 6), new Point(4, 6));
}
@Test
public void testMultiHorizontalCellDragUp() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
testCellStates(new Point(3, 4), new Point(4, 4));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 2, 2, 3));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 2));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 2));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 3));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
testCellStates(new Point(3, 2), new Point(4, 2), new Point(3, 3), new Point(4, 3), new Point(3, 4), new Point(4, 4));
}
@Test
public void testMultiCellDragOneDown() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 2, 3));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 6));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
testCellStates(
new Point(3, 4), new Point(4, 4),
new Point(3, 5), new Point(4, 5),
new Point(3, 6), new Point(4, 6));
}
@Test
public void testMultiCellDragThreeDown() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 2, 5));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.DOWN, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 6));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 6));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 6));
testCellStates(
new Point(3, 4), new Point(4, 4),
new Point(3, 5), new Point(4, 5),
new Point(3, 6), new Point(4, 6),
new Point(3, 7), new Point(4, 7),
new Point(3, 8), new Point(4, 8));
}
@Test
public void testMultiCellDragOneUp() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 3, 2, 3));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 3));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(
new Point(3, 3), new Point(4, 3),
new Point(3, 4), new Point(4, 4),
new Point(3, 5), new Point(4, 5));
}
@Test
public void testMultiCellDragThreeUp() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 1, 2, 5));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.UP, this.natTable.getConfigRegistry()));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 1));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 1));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 2));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 2));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 3));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 3));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(
new Point(3, 1), new Point(4, 1),
new Point(3, 2), new Point(4, 2),
new Point(3, 3), new Point(4, 3),
new Point(3, 4), new Point(4, 4),
new Point(3, 5), new Point(4, 5));
}
@Test
public void testMultiCellDragOneRight() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 3, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(5, 5));
testCellStates(
new Point(3, 4), new Point(4, 4), new Point(5, 4),
new Point(3, 5), new Point(4, 5), new Point(5, 5));
}
@Test
public void testMultiCellDragThreeRight() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(3, 4, 5, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.RIGHT, this.natTable.getConfigRegistry()));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(5, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(6, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(7, 4));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(5, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(6, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(7, 5));
testCellStates(
new Point(3, 4), new Point(4, 4), new Point(5, 4), new Point(6, 4), new Point(7, 4),
new Point(3, 5), new Point(4, 5), new Point(5, 5), new Point(6, 5), new Point(7, 5));
}
@Test
public void testMultiCellDragOneLeft() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(2, 4, 3, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(2, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(2, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(
new Point(2, 4), new Point(3, 4), new Point(4, 4),
new Point(2, 5), new Point(3, 5), new Point(4, 5));
}
@Test
public void testMultiCellDragThreeLeft() {
this.dataProvider.setDataValue(3, 4, "Homer");
this.dataProvider.setDataValue(4, 4, "Simpson");
this.dataProvider.setDataValue(3, 5, "Ned");
this.dataProvider.setDataValue(4, 5, "Flanders");
this.selectionLayer.selectCell(3, 4, false, true);
this.selectionLayer.selectCell(4, 4, false, true);
this.selectionLayer.selectCell(3, 5, false, true);
this.selectionLayer.selectCell(4, 5, false, true);
testCellStates(new Point(3, 4), new Point(4, 4), new Point(3, 5), new Point(4, 5));
this.natTable.doCommand(new CopyDataToClipboardCommand(
"\t", //$NON-NLS-1$
System.getProperty("line.separator"), //$NON-NLS-1$
this.natTable.getConfigRegistry()));
this.selectionLayer.setFillHandleRegion(new Rectangle(0, 4, 5, 2));
this.natTable.doCommand(
new FillHandlePasteCommand(FillHandleOperation.COPY, MoveDirectionEnum.LEFT, this.natTable.getConfigRegistry()));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(0, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(1, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(2, 4));
assertEquals("Homer", this.selectionLayer.getDataValueByPosition(3, 4));
assertEquals("Simpson", this.selectionLayer.getDataValueByPosition(4, 4));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(0, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(1, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(2, 5));
assertEquals("Ned", this.selectionLayer.getDataValueByPosition(3, 5));
assertEquals("Flanders", this.selectionLayer.getDataValueByPosition(4, 5));
testCellStates(
new Point(0, 4), new Point(1, 4), new Point(2, 4), new Point(3, 4), new Point(4, 4),
new Point(0, 5), new Point(1, 5), new Point(2, 5), new Point(3, 5), new Point(4, 5));
}
private void testCellStates(Point... nonNull) {
for (int i = 0; i < this.dataProvider.getColumnCount(); i++) {
for (int j = 0; j < this.dataProvider.getRowCount(); j++) {
boolean check = true;
for (Point p : nonNull) {
if ((i == p.x) && (j == p.y)) {
check = false;
break;
}
}
if (check) {
assertNull("Position " + i + "/" + j + " is not null", this.selectionLayer.getDataValueByPosition(i, j));
} else {
assertNotNull("Position " + i + "/" + j + " is null", this.selectionLayer.getDataValueByPosition(i, j));
}
}
}
}
}