/*****************************************************************************
* 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.layer.cell;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry;
import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
import org.eclipse.nebula.widgets.nattable.data.IRowDataProvider;
import org.eclipse.nebula.widgets.nattable.data.IRowIdAccessor;
import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
import org.eclipse.nebula.widgets.nattable.data.ReflectiveColumnPropertyAccessor;
import org.eclipse.nebula.widgets.nattable.dataset.person.Person;
import org.eclipse.nebula.widgets.nattable.dataset.person.PersonService;
import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowDataLayer;
import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowHeaderComposite;
import org.eclipse.nebula.widgets.nattable.filterrow.IFilterStrategy;
import org.eclipse.nebula.widgets.nattable.grid.GridRegion;
import org.eclipse.nebula.widgets.nattable.grid.cell.AlternatingRowConfigLabelAccumulator;
import org.eclipse.nebula.widgets.nattable.grid.data.DefaultCornerDataProvider;
import org.eclipse.nebula.widgets.nattable.grid.data.DefaultRowHeaderDataProvider;
import org.eclipse.nebula.widgets.nattable.grid.data.DummyColumnHeaderDataProvider;
import org.eclipse.nebula.widgets.nattable.grid.layer.ColumnHeaderLayer;
import org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer;
import org.eclipse.nebula.widgets.nattable.grid.layer.RowHeaderLayer;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupHeaderLayer;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
import org.eclipse.nebula.widgets.nattable.group.RowGroupHeaderLayer;
import org.eclipse.nebula.widgets.nattable.group.config.DefaultColumnGroupHeaderLayerConfiguration;
import org.eclipse.nebula.widgets.nattable.group.config.DefaultRowGroupHeaderLayerConfiguration;
import org.eclipse.nebula.widgets.nattable.group.model.RowGroupModel;
import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer;
import org.eclipse.nebula.widgets.nattable.sort.SortHeaderLayer;
import org.eclipse.nebula.widgets.nattable.sort.config.DefaultSortConfiguration;
import org.eclipse.nebula.widgets.nattable.style.SelectionStyleLabels;
import org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowLayer;
import org.eclipse.nebula.widgets.nattable.test.fixture.NatTableFixture;
import org.eclipse.nebula.widgets.nattable.test.fixture.SortModelFixture;
import org.eclipse.nebula.widgets.nattable.tree.ITreeData;
import org.eclipse.nebula.widgets.nattable.tree.TreeLayer;
import org.eclipse.nebula.widgets.nattable.tree.TreeRowModel;
import org.eclipse.nebula.widgets.nattable.tree.config.DefaultTreeLayerConfiguration;
import org.junit.Test;
public class ConfigLabelProviderTest {
IRowDataProvider<Person> bodyDataProvider =
new ListDataProvider<Person>(
PersonService.getPersons(10),
new ReflectiveColumnPropertyAccessor<Person>(
new String[] { "firstName", "lastName", "gender", "married", "birthday" }));
DataLayer bodyDataLayer =
new DataLayer(this.bodyDataProvider);
IDataProvider columnHeaderDataProvider =
new DummyColumnHeaderDataProvider(this.bodyDataProvider);
DataLayer columnHeaderDataLayer =
new DataLayer(this.columnHeaderDataProvider);
IDataProvider rowHeaderDataProvider =
new DefaultRowHeaderDataProvider(this.bodyDataProvider);
DataLayer rowHeaderDataLayer =
new DataLayer(this.rowHeaderDataProvider);
DataLayer cornerDataLayer =
new DataLayer(new DefaultCornerDataProvider(this.columnHeaderDataProvider, this.rowHeaderDataProvider));
@Test
public void testProvidedRegionLabels() {
GridLayer grid = new GridLayer(
this.bodyDataLayer,
this.columnHeaderDataLayer,
this.rowHeaderDataLayer,
this.cornerDataLayer,
false);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
NatTable natTable = new NatTableFixture(grid);
labels = natTable.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
}
@Test
public void testProvidedGridLabels() {
GridLayer grid = new GridLayer(
this.bodyDataLayer,
this.columnHeaderDataLayer,
this.rowHeaderDataLayer,
this.cornerDataLayer);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(6, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.ODD_ROW_CONFIG_TYPE));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.EVEN_ROW_CONFIG_TYPE));
}
@Test
public void testSelectionLabels() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
Collection<String> labels = selectionLayer.getProvidedLabels();
assertEquals(7, labels.size());
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
}
@Test
public void testProvidedGridLabelsColumnGroupHeader() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
GridLayer grid = new GridLayer(
selectionLayer,
new ColumnGroupHeaderLayer(
new ColumnHeaderLayer(this.columnHeaderDataLayer, this.bodyDataLayer, selectionLayer),
selectionLayer,
new ColumnGroupModel()),
this.rowHeaderDataLayer,
this.cornerDataLayer);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(16, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.COLUMN_GROUP_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.ODD_ROW_CONFIG_TYPE));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.EVEN_ROW_CONFIG_TYPE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(DefaultColumnGroupHeaderLayerConfiguration.GROUP_COLLAPSED_CONFIG_TYPE));
assertTrue(labels.contains(DefaultColumnGroupHeaderLayerConfiguration.GROUP_EXPANDED_CONFIG_TYPE));
}
@Test
public void testProvidedGridLabelsRowGroupHeader() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
GridLayer grid = new GridLayer(
selectionLayer,
this.columnHeaderDataLayer,
new RowGroupHeaderLayer<Person>(
new RowHeaderLayer(this.rowHeaderDataLayer, this.bodyDataLayer, selectionLayer),
selectionLayer,
new RowGroupModel<Person>()),
this.cornerDataLayer);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(16, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.ROW_GROUP_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.ODD_ROW_CONFIG_TYPE));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.EVEN_ROW_CONFIG_TYPE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(DefaultRowGroupHeaderLayerConfiguration.GROUP_COLLAPSED_CONFIG_TYPE));
assertTrue(labels.contains(DefaultRowGroupHeaderLayerConfiguration.GROUP_EXPANDED_CONFIG_TYPE));
}
@Test
public void testProvidedGridLabelsSortHeader() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
GridLayer grid = new GridLayer(
selectionLayer,
new SortHeaderLayer<Person>(
new ColumnHeaderLayer(this.columnHeaderDataLayer, this.bodyDataLayer, selectionLayer),
new SortModelFixture()),
this.rowHeaderDataLayer,
this.cornerDataLayer);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(19, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.ODD_ROW_CONFIG_TYPE));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.EVEN_ROW_CONFIG_TYPE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_UP_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_DOWN_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "0"));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "1"));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "2"));
}
@Test
public void testProvidedGridLabelsFilterHeader() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
GridLayer grid = new GridLayer(
selectionLayer,
new FilterRowHeaderComposite<Person>(
new IFilterStrategy<Person>() {
@Override
public void applyFilter(Map<Integer, Object> filterIndexToObjectMap) {}
},
new SortHeaderLayer<Person>(
new ColumnHeaderLayer(this.columnHeaderDataLayer, this.bodyDataLayer, selectionLayer),
new SortModelFixture()),
this.columnHeaderDataLayer.getDataProvider(),
new ConfigRegistry()),
this.rowHeaderDataLayer,
this.cornerDataLayer);
Collection<String> labels = grid.getProvidedLabels();
assertEquals(26, labels.size());
assertTrue(labels.contains(GridRegion.CORNER));
assertTrue(labels.contains(GridRegion.COLUMN_HEADER));
assertTrue(labels.contains(GridRegion.ROW_HEADER));
assertTrue(labels.contains(GridRegion.BODY));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.ODD_ROW_CONFIG_TYPE));
assertTrue(labels.contains(AlternatingRowConfigLabelAccumulator.EVEN_ROW_CONFIG_TYPE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_UP_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_DOWN_CONFIG_TYPE));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "0"));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "1"));
assertTrue(labels.contains(DefaultSortConfiguration.SORT_SEQ_CONFIG_TYPE + "2"));
assertTrue(labels.contains("columnHeader"));
assertTrue(labels.contains(GridRegion.FILTER_ROW));
assertTrue(labels.contains(FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + "0"));
assertTrue(labels.contains(FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + "1"));
assertTrue(labels.contains(FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + "2"));
assertTrue(labels.contains(FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + "3"));
assertTrue(labels.contains(FilterRowDataLayer.FILTER_ROW_COLUMN_LABEL_PREFIX + "4"));
}
@Test
public void testTreeLabels() {
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
TreeLayer treeLayer = new TreeLayer(selectionLayer, new TreeRowModel<Person>(
new ITreeData<Person>() {
@Override
public String formatDataForDepth(int depth, Person object) {
return null;
}
@Override
public String formatDataForDepth(int depth, int index) {
return null;
}
@Override
public int getDepthOfData(Person object) {
return 0;
}
@Override
public int getDepthOfData(int index) {
return 0;
}
@Override
public Person getDataAtIndex(int index) {
return null;
}
@Override
public int indexOf(Person child) {
return 0;
}
@Override
public boolean hasChildren(Person object) {
return false;
}
@Override
public boolean hasChildren(int index) {
return false;
}
@Override
public List<Person> getChildren(Person object) {
return null;
}
@Override
public List<Person> getChildren(Person object, boolean fullDepth) {
return null;
}
@Override
public List<Person> getChildren(int index) {
return null;
}
@Override
public int getElementCount() {
return 0;
}
@Override
public boolean isValidIndex(int index) {
return false;
}
}));
Collection<String> labels = treeLayer.getProvidedLabels();
assertEquals(16, labels.size());
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(TreeLayer.TREE_COLUMN_CELL));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_LEAF_CONFIG_TYPE));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_COLLAPSED_CONFIG_TYPE));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_EXPANDED_CONFIG_TYPE));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_DEPTH_CONFIG_TYPE + "0"));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_DEPTH_CONFIG_TYPE + "1"));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_DEPTH_CONFIG_TYPE + "2"));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_DEPTH_CONFIG_TYPE + "3"));
assertTrue(labels.contains(DefaultTreeLayerConfiguration.TREE_DEPTH_CONFIG_TYPE + "4"));
}
@Test
public void testSummaryRowLabels() {
SummaryRowLayer summaryRowLayer = new SummaryRowLayer(this.bodyDataLayer, new ConfigRegistry(), false);
SelectionLayer selectionLayer = new SelectionLayer(summaryRowLayer);
Collection<String> labels = selectionLayer.getProvidedLabels();
assertEquals(13, labels.size());
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_ROW_CONFIG_LABEL));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX + "0"));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX + "1"));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX + "2"));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX + "3"));
assertTrue(labels.contains(SummaryRowLayer.DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX + "4"));
}
@Test
public void testColumnOverrideLabelAccumulator() {
ColumnOverrideLabelAccumulator accumulator = new ColumnOverrideLabelAccumulator(this.bodyDataLayer);
accumulator.registerOverrides("all");
accumulator.registerOverrides("all2");
accumulator.registerOverrides(2, "two");
accumulator.registerOverrides(3, "three");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains("all"));
assertTrue(labels.contains("all2"));
assertTrue(labels.contains("two"));
assertTrue(labels.contains("three"));
}
@Test
public void testRowOverrideLabelAccumulator() {
RowOverrideLabelAccumulator<Person> accumulator = new RowOverrideLabelAccumulator<Person>(
this.bodyDataProvider, new IRowIdAccessor<Person>() {
@Override
public Serializable getRowId(Person rowObject) {
return rowObject.getId();
}
});
accumulator.registerRowOverrides(0, "all");
accumulator.registerRowOverrides(1, "all2");
accumulator.registerOverrides(2, "two");
accumulator.registerOverrides(3, "three");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains("all"));
assertTrue(labels.contains("all2"));
assertTrue(labels.contains("two"));
assertTrue(labels.contains("three"));
}
@Test
public void testCellOverrideLabelAccumulator() {
CellOverrideLabelAccumulator<Person> accumulator = new CellOverrideLabelAccumulator<Person>(this.bodyDataProvider);
accumulator.registerOverride("Simpson", 0, "Donuts");
accumulator.registerOverride("Bart", 1, "cool");
accumulator.registerOverrides(2, "two");
accumulator.registerOverrides(3, "three");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains("Donuts"));
assertTrue(labels.contains("cool"));
assertTrue(labels.contains("two"));
assertTrue(labels.contains("three"));
}
@Test
public void testLayerAccumulatorIntegrationLabels() {
ColumnOverrideLabelAccumulator accumulator = new ColumnOverrideLabelAccumulator(this.bodyDataLayer);
accumulator.registerOverrides("all");
accumulator.registerOverrides("all2");
accumulator.registerOverrides(2, "two");
accumulator.registerOverrides(3, "three");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
SelectionLayer selectionLayer = new SelectionLayer(this.bodyDataLayer);
Collection<String> labels = selectionLayer.getProvidedLabels();
assertEquals(11, labels.size());
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.SELECTION_ANCHOR_GRID_LINE_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.COLUMN_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.ROW_FULLY_SELECTED_STYLE));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_CELL));
assertTrue(labels.contains(SelectionStyleLabels.FILL_HANDLE_REGION));
assertTrue(labels.contains(SelectionStyleLabels.COPY_BORDER_STYLE));
assertTrue(labels.contains("all"));
assertTrue(labels.contains("all2"));
assertTrue(labels.contains("two"));
assertTrue(labels.contains("three"));
}
@Test
public void testClassNameConfigLabelAccumulator() {
ClassNameConfigLabelAccumulator accumulator = new ClassNameConfigLabelAccumulator(this.bodyDataProvider);
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(4, labels.size());
assertTrue(labels.contains("java.lang.String"));
assertTrue(labels.contains("org.eclipse.nebula.widgets.nattable.dataset.person.Person$Gender"));
assertTrue(labels.contains("java.lang.Boolean"));
assertTrue(labels.contains("java.util.Date"));
}
@Test
public void testColumnLabelAccumulator() {
ColumnLabelAccumulator accumulator = new ColumnLabelAccumulator();
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(0, labels.size());
accumulator = new ColumnLabelAccumulator(this.bodyDataProvider);
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(5, labels.size());
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 0));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 1));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 2));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 3));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 4));
}
@Test
public void testAggregateConfigLabelAccumulator() {
AggregateConfigLabelAccumulator accumulator = new AggregateConfigLabelAccumulator();
accumulator.add(new ColumnLabelAccumulator(this.bodyDataProvider));
accumulator.add(new ClassNameConfigLabelAccumulator(this.bodyDataProvider));
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(9, labels.size());
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 0));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 1));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 2));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 3));
assertTrue(labels.contains(ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 4));
assertTrue(labels.contains("java.lang.String"));
assertTrue(labels.contains("org.eclipse.nebula.widgets.nattable.dataset.person.Person$Gender"));
assertTrue(labels.contains("java.lang.Boolean"));
assertTrue(labels.contains("java.util.Date"));
}
@Test
public void testBodyOverrideConfigLabelAccumulator() {
BodyOverrideConfigLabelAccumulator accumulator = new BodyOverrideConfigLabelAccumulator();
accumulator.addOverride("all");
accumulator.registerOverrides("all2", "cool");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(3, labels.size());
assertTrue(labels.contains("all"));
assertTrue(labels.contains("all2"));
assertTrue(labels.contains("cool"));
}
@Test
public void testSimpleConfigLabelAccumulator() {
SimpleConfigLabelAccumulator accumulator = new SimpleConfigLabelAccumulator("cool");
this.bodyDataLayer.setConfigLabelAccumulator(accumulator);
Collection<String> labels = this.bodyDataLayer.getProvidedLabels();
assertEquals(1, labels.size());
assertTrue(labels.contains("cool"));
}
}