Search in sources :

Example 6 with Column

use of au.gov.asd.tac.constellation.views.tableview.api.Column in project constellation by constellation-app.

the class TableNGTest method getRowDataForTransaction.

@Test
public void getRowDataForTransaction() {
    final ReadableGraph readableGraph = mock(ReadableGraph.class);
    final Map<Integer, ObservableList<String>> elementIdToRowIndex = new HashMap<>();
    final Map<ObservableList<String>, Integer> rowToElementIdIndex = new HashMap<>();
    doReturn(elementIdToRowIndex).when(activeTableReference).getElementIdToRowIndex();
    doReturn(rowToElementIdIndex).when(activeTableReference).getRowToElementIdIndex();
    final int transactionId = 42;
    final int sourceVertexId = 52;
    final int destinationVertexId = 62;
    // Set up the attributes for each column
    when(readableGraph.getAttribute(GraphElementType.VERTEX, "COLUMN_1")).thenReturn(101);
    when(readableGraph.getAttributeName(101)).thenReturn("COLUMN_1");
    when(readableGraph.getAttributeElementType(101)).thenReturn(GraphElementType.VERTEX);
    when(readableGraph.getAttributeType(101)).thenReturn("string");
    final Attribute attribute1 = new GraphAttribute(readableGraph, 101);
    when(readableGraph.getAttribute(GraphElementType.TRANSACTION, "COLUMN_2")).thenReturn(102);
    when(readableGraph.getAttributeName(102)).thenReturn("COLUMN_2");
    when(readableGraph.getAttributeElementType(102)).thenReturn(GraphElementType.TRANSACTION);
    when(readableGraph.getAttributeType(102)).thenReturn("string");
    final Attribute attribute2 = new GraphAttribute(readableGraph, 102);
    // There are 2 columns. One called COLUMN_1 and the other COLUMN_2. COLUMN_1
    // is present on source and destination verticies. COLUMN_2 is present on transactions
    final CopyOnWriteArrayList<Column> columnIndex = new CopyOnWriteArrayList<>();
    columnIndex.add(new Column("source.", attribute1, null));
    columnIndex.add(new Column("destination.", attribute1, null));
    columnIndex.add(new Column("transaction.", attribute2, null));
    when(table.getColumnIndex()).thenReturn(columnIndex);
    // When looking at a source vertex column, it gets the source vertex of
    // the transaction and extracts the value for the column from that vertex
    final Object sourceVertexCoulmnValue = new Object();
    when(readableGraph.getTransactionSourceVertex(transactionId)).thenReturn(sourceVertexId);
    when(readableGraph.getObjectValue(101, sourceVertexId)).thenReturn(sourceVertexCoulmnValue);
    // When looking at a destination vertex column, it gets the destination vertex of
    // the transaction and extracts the value for the column from that vertex
    final Object destinationVertexCoulmnValue = new Object();
    when(readableGraph.getTransactionDestinationVertex(transactionId)).thenReturn(destinationVertexId);
    when(readableGraph.getObjectValue(101, destinationVertexId)).thenReturn(destinationVertexCoulmnValue);
    // When looking at a transaction column, it extracts the value from the passed transaction
    final Object transactionCoulmnValue = new Object();
    when(readableGraph.getObjectValue(102, transactionId)).thenReturn(transactionCoulmnValue);
    try (final MockedStatic<AbstractAttributeInteraction> attrInteractionMockedStatic = Mockito.mockStatic(AbstractAttributeInteraction.class)) {
        final AbstractAttributeInteraction interaction = mock(AbstractAttributeInteraction.class);
        attrInteractionMockedStatic.when(() -> AbstractAttributeInteraction.getInteraction("string")).thenReturn(interaction);
        when(interaction.getDisplayText(sourceVertexCoulmnValue)).thenReturn("sourceVertex_COLUMN_1_Value");
        when(interaction.getDisplayText(destinationVertexCoulmnValue)).thenReturn("destinationVertext_COLUMN_1_Value");
        when(interaction.getDisplayText(transactionCoulmnValue)).thenReturn("transaction_COLUMN_2_Value");
        assertEquals(FXCollections.observableArrayList("sourceVertex_COLUMN_1_Value", "destinationVertext_COLUMN_1_Value", "transaction_COLUMN_2_Value"), table.getRowDataForTransaction(readableGraph, transactionId));
        assertEquals(Map.of(transactionId, FXCollections.observableArrayList("sourceVertex_COLUMN_1_Value", "destinationVertext_COLUMN_1_Value", "transaction_COLUMN_2_Value")), elementIdToRowIndex);
        assertEquals(Map.of(FXCollections.observableArrayList("sourceVertex_COLUMN_1_Value", "destinationVertext_COLUMN_1_Value", "transaction_COLUMN_2_Value"), transactionId), rowToElementIdIndex);
    }
}
Also used : ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) HashMap(java.util.HashMap) Attribute(au.gov.asd.tac.constellation.graph.Attribute) GraphAttribute(au.gov.asd.tac.constellation.graph.GraphAttribute) GraphAttribute(au.gov.asd.tac.constellation.graph.GraphAttribute) ObservableList(javafx.collections.ObservableList) Column(au.gov.asd.tac.constellation.views.tableview.api.Column) TableColumn(javafx.scene.control.TableColumn) AbstractAttributeInteraction(au.gov.asd.tac.constellation.graph.attribute.interaction.AbstractAttributeInteraction) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Test(org.testng.annotations.Test)

Example 7 with Column

use of au.gov.asd.tac.constellation.views.tableview.api.Column in project constellation by constellation-app.

the class TableNGTest method updateColumns.

@Test
public void updateColumns() {
    final ChangeListener<ObservableList<String>> tableSelectionListener = mock(ChangeListener.class);
    final ListChangeListener selectedOnlySelectionListener = mock(ListChangeListener.class);
    doReturn(tableSelectionListener).when(table).getTableSelectionListener();
    doReturn(selectedOnlySelectionListener).when(table).getSelectedOnlySelectionListener();
    final ReadableGraph readableGraph = mock(ReadableGraph.class);
    when(graph.getReadableGraph()).thenReturn(readableGraph);
    // Set up the initial column index. Column 4 will not be found in the graph and
    // dropped in the column index created by the update call
    final String columnType1 = "source.";
    final Attribute attribute1 = mock(Attribute.class);
    final TableColumn<ObservableList<String>, String> column1 = mock(TableColumn.class);
    when(column1.getText()).thenReturn("source.COLUMN_A");
    final String columnType2 = "destination.";
    final Attribute attribute2 = mock(Attribute.class);
    final TableColumn<ObservableList<String>, String> column2 = mock(TableColumn.class);
    when(column2.getText()).thenReturn("destination.COLUMN_A");
    final String columnType3 = "transaction.";
    final Attribute attribute3 = mock(Attribute.class);
    final TableColumn<ObservableList<String>, String> column3 = mock(TableColumn.class);
    when(column3.getText()).thenReturn("transaction.COLUMN_B");
    final String columnType4 = "source.";
    final Attribute attribute4 = mock(Attribute.class);
    final TableColumn<ObservableList<String>, String> column4 = mock(TableColumn.class);
    when(column4.getText()).thenReturn("source.COLUMN_C");
    final CopyOnWriteArrayList<Column> columnIndex = new CopyOnWriteArrayList<>();
    columnIndex.add(new Column(columnType1, attribute1, column1));
    columnIndex.add(new Column(columnType2, attribute2, column2));
    columnIndex.add(new Column(columnType3, attribute3, column3));
    columnIndex.add(new Column(columnType4, attribute4, column4));
    when(activeTableReference.getColumnIndex()).thenReturn(columnIndex);
    // This is a reference of the old column index that will be used whilst the new
    // index is being created. Because that creation is mocked this is used only as a
    // vertification that the parameter is being correctly constructed.
    final Map<String, TableColumn<ObservableList<String>, String>> columnReferenceMap = Map.of("source.COLUMN_A", column1, "destination.COLUMN_A", column2, "transaction.COLUMN_B", column3, "source.COLUMN_C", column4);
    // Mock out the re-population of the column index from the graph. This excludes column 4.
    final CopyOnWriteArrayList<Column> sourceColumnIndex = new CopyOnWriteArrayList<>();
    sourceColumnIndex.add(new Column(columnType1, attribute1, column1));
    final CopyOnWriteArrayList<Column> destinationColumnIndex = new CopyOnWriteArrayList<>();
    destinationColumnIndex.add(new Column(columnType2, attribute2, column2));
    final CopyOnWriteArrayList<Column> transactionColumnIndex = new CopyOnWriteArrayList<>();
    transactionColumnIndex.add(new Column(columnType3, attribute3, column3));
    doReturn(sourceColumnIndex).when(table).createColumnIndexPart(readableGraph, GraphElementType.VERTEX, "source.", columnReferenceMap);
    doReturn(destinationColumnIndex).when(table).createColumnIndexPart(readableGraph, GraphElementType.VERTEX, "destination.", columnReferenceMap);
    doReturn(transactionColumnIndex).when(table).createColumnIndexPart(readableGraph, GraphElementType.TRANSACTION, "transaction.", columnReferenceMap);
    // Set up the table state
    final TableViewState tableViewState = new TableViewState();
    tableViewState.setElementType(GraphElementType.TRANSACTION);
    // This is used by the sort comparator. This will order the columnIndex
    // in a certain way that we can then verify below
    tableViewState.setColumnAttributes(List.of(Tuple.create("source.", attribute1), Tuple.create("transaction.", attribute3), Tuple.create("destination.", attribute2)));
    try (final MockedStatic<Platform> platformMockedStatic = Mockito.mockStatic(Platform.class)) {
        platformMockedStatic.when(Platform::isFxApplicationThread).thenReturn(false);
        platformMockedStatic.when(() -> Platform.runLater(any(Runnable.class))).then(mockInvocation -> {
            assertTrue(mockInvocation.getArgument(0) instanceof UpdateColumnsTask);
            return null;
        });
        table.updateColumns(graph, tableViewState);
    }
    // Verify the new column index
    final CopyOnWriteArrayList<Column> expectedColumnIndex = new CopyOnWriteArrayList<>();
    expectedColumnIndex.add(new Column(columnType1, attribute1, column1));
    expectedColumnIndex.add(new Column(columnType3, attribute3, column3));
    expectedColumnIndex.add(new Column(columnType2, attribute2, column2));
    assertEquals(expectedColumnIndex, columnIndex);
    verify(column1, times(1)).setCellValueFactory(any(Callback.class));
    verify(column2, times(1)).setCellValueFactory(any(Callback.class));
    verify(column3, times(1)).setCellValueFactory(any(Callback.class));
    verify(column1, times(1)).setCellFactory(any(Callback.class));
    verify(column2, times(1)).setCellFactory(any(Callback.class));
    verify(column3, times(1)).setCellFactory(any(Callback.class));
}
Also used : ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) Platform(javafx.application.Platform) Attribute(au.gov.asd.tac.constellation.graph.Attribute) GraphAttribute(au.gov.asd.tac.constellation.graph.GraphAttribute) UpdateColumnsTask(au.gov.asd.tac.constellation.views.tableview.tasks.UpdateColumnsTask) TableColumn(javafx.scene.control.TableColumn) ListChangeListener(javafx.collections.ListChangeListener) Callback(javafx.util.Callback) ObservableList(javafx.collections.ObservableList) Column(au.gov.asd.tac.constellation.views.tableview.api.Column) TableColumn(javafx.scene.control.TableColumn) TableViewState(au.gov.asd.tac.constellation.views.tableview.state.TableViewState) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Test(org.testng.annotations.Test)

Example 8 with Column

use of au.gov.asd.tac.constellation.views.tableview.api.Column in project constellation by constellation-app.

the class UpdateColumnsTaskNGTest method setUpMethod.

@BeforeMethod
public void setUpMethod() throws Exception {
    tableViewTopComponent = mock(TableViewTopComponent.class);
    tableView = mock(TableView.class);
    tablePane = mock(TablePane.class);
    table = mock(Table.class);
    activeTableReference = mock(ActiveTableReference.class);
    selectionModel = mock(TableViewSelectionModel.class);
    selectedItemProperty = mock(ReadOnlyObjectProperty.class);
    selectedItems = mock(ObservableList.class);
    tableSelectionListener = mock(ChangeListener.class);
    selectedOnlySelectionListener = mock(ListChangeListener.class);
    columnType1 = "source.";
    attribute1 = mock(Attribute.class);
    column1 = mock(TableColumn.class);
    columnType2 = "destination.";
    attribute2 = mock(Attribute.class);
    column2 = mock(TableColumn.class);
    columnType3 = "source.";
    attribute3 = mock(Attribute.class);
    column3 = mock(TableColumn.class);
    columnType4 = "transaction.";
    attribute4 = mock(Attribute.class);
    column4 = mock(TableColumn.class);
    columnType5 = "transaction.";
    attribute5 = mock(Attribute.class);
    column5 = mock(TableColumn.class);
    final CopyOnWriteArrayList<Column> columnIndex = new CopyOnWriteArrayList<>();
    columnIndex.add(new Column(columnType1, attribute1, column1));
    columnIndex.add(new Column(columnType2, attribute2, column2));
    columnIndex.add(new Column(columnType3, attribute3, column3));
    columnIndex.add(new Column(columnType4, attribute4, column4));
    columnIndex.add(new Column(columnType5, attribute5, column5));
    when(tableViewTopComponent.getTablePane()).thenReturn(tablePane);
    when(tablePane.getTable()).thenReturn(table);
    when(tablePane.getActiveTableReference()).thenReturn(activeTableReference);
    when(tablePane.getParentComponent()).thenReturn(tableViewTopComponent);
    when(activeTableReference.getColumnIndex()).thenReturn(columnIndex);
    when(table.getTableView()).thenReturn(tableView);
    when(table.getSelectedOnlySelectionListener()).thenReturn(selectedOnlySelectionListener);
    when(table.getTableSelectionListener()).thenReturn(tableSelectionListener);
    when(table.getParentComponent()).thenReturn(tablePane);
    when(tableView.getSelectionModel()).thenReturn(selectionModel);
    when(selectionModel.selectedItemProperty()).thenReturn(selectedItemProperty);
    when(selectionModel.getSelectedItems()).thenReturn(selectedItems);
    updateColumnsTask = spy(new UpdateColumnsTask(table));
}
Also used : Table(au.gov.asd.tac.constellation.views.tableview.components.Table) Attribute(au.gov.asd.tac.constellation.graph.Attribute) TableViewSelectionModel(javafx.scene.control.TableView.TableViewSelectionModel) TableColumn(javafx.scene.control.TableColumn) ListChangeListener(javafx.collections.ListChangeListener) TableViewTopComponent(au.gov.asd.tac.constellation.views.tableview.TableViewTopComponent) ReadOnlyObjectProperty(javafx.beans.property.ReadOnlyObjectProperty) ObservableList(javafx.collections.ObservableList) TableColumn(javafx.scene.control.TableColumn) Column(au.gov.asd.tac.constellation.views.tableview.api.Column) ListChangeListener(javafx.collections.ListChangeListener) ChangeListener(javafx.beans.value.ChangeListener) ActiveTableReference(au.gov.asd.tac.constellation.views.tableview.api.ActiveTableReference) TableView(javafx.scene.control.TableView) TablePane(au.gov.asd.tac.constellation.views.tableview.panes.TablePane) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 9 with Column

use of au.gov.asd.tac.constellation.views.tableview.api.Column in project constellation by constellation-app.

the class PreferenceMenuNGTest method loadPreferences.

@Test
public void loadPreferences() {
    try (final MockedStatic<TableViewPreferencesIoProvider> tablePrefIOUtilsMockedStatic = Mockito.mockStatic(TableViewPreferencesIoProvider.class)) {
        final TableViewState tableViewState = new TableViewState();
        tableViewState.setElementType(GraphElementType.VERTEX);
        final Graph graph = mock(Graph.class);
        when(tableViewTopComponent.getCurrentState()).thenReturn(tableViewState);
        when(tableViewTopComponent.getCurrentGraph()).thenReturn(graph);
        // These are the existing table userTablePreferences
        final UserTablePreferences currentTablePreferences = new UserTablePreferences();
        currentTablePreferences.setMaxRowsPerPage(42);
        // There are 4 columns in the table. Set them up and all required variables
        // that describe them
        when(activeTableReference.getUserTablePreferences()).thenReturn(currentTablePreferences);
        final TableView<ObservableList<String>> tableView = mock(TableView.class);
        when(table.getTableView()).thenReturn(tableView);
        final TableColumn<ObservableList<String>, String> column1 = mock(TableColumn.class);
        final TableColumn<ObservableList<String>, String> column2 = mock(TableColumn.class);
        final TableColumn<ObservableList<String>, String> column3 = mock(TableColumn.class);
        final TableColumn<ObservableList<String>, String> column4 = mock(TableColumn.class);
        when(column1.getText()).thenReturn("Column1");
        when(column2.getText()).thenReturn("Column2");
        when(column3.getText()).thenReturn("Column3");
        when(column4.getText()).thenReturn("Column4");
        when(tableView.getColumns()).thenReturn(FXCollections.observableList(List.of(column1, column2, column3, column4)));
        final Attribute attribute1 = mock(Attribute.class);
        final Attribute attribute2 = mock(Attribute.class);
        final Attribute attribute3 = mock(Attribute.class);
        final Attribute attribute4 = mock(Attribute.class);
        final CopyOnWriteArrayList<Column> columnIndex = new CopyOnWriteArrayList<>();
        columnIndex.add(new Column("type1", attribute1, column1));
        columnIndex.add(new Column("type2", attribute2, column2));
        columnIndex.add(new Column("type3", attribute3, column3));
        columnIndex.add(new Column("type4", attribute4, column4));
        when(table.getColumnIndex()).thenReturn(columnIndex);
        // The loaded userTablePreferences specifies 3 of the 4 columns in the table
        final UserTablePreferences loadedTablePreferences = new UserTablePreferences();
        loadedTablePreferences.setColumnOrder(List.of("Column1", "Column2", "Column4"));
        loadedTablePreferences.setSortByColumn(ImmutablePair.of("Column2", TableColumn.SortType.DESCENDING));
        loadedTablePreferences.setMaxRowsPerPage(150);
        when(activeTableReference.updateVisibleColumns(any(Graph.class), any(TableViewState.class), any(List.class), eq(UpdateMethod.REPLACE))).thenReturn(CompletableFuture.completedFuture(null));
        // Create page size option menu items, with one matching the pages size
        // in the loaded prefs above
        final ToggleGroup toggleGroup = mock(ToggleGroup.class);
        final RadioMenuItem pageSizeOption1 = mock(RadioMenuItem.class);
        final RadioMenuItem pageSizeOption2 = mock(RadioMenuItem.class);
        when(pageSizeOption1.getText()).thenReturn("100");
        when(pageSizeOption2.getText()).thenReturn("150");
        when(preferencesMenu.getPageSizeToggle()).thenReturn(toggleGroup);
        when(toggleGroup.getToggles()).thenReturn(FXCollections.observableList(List.of(pageSizeOption1, pageSizeOption2)));
        // Return the loaded userTablePreferences when the load call is made
        tablePrefIOUtilsMockedStatic.when(() -> TableViewPreferencesIoProvider.getPreferences(GraphElementType.VERTEX)).thenReturn(loadedTablePreferences);
        // Start the test
        preferencesMenu.loadPreferences();
        verify(column1).setVisible(true);
        verify(column2).setVisible(true);
        verify(column3, times(0)).setVisible(anyBoolean());
        verify(column4).setVisible(true);
        verify(activeTableReference).saveSortDetails("Column2", TableColumn.SortType.DESCENDING);
        verify(activeTableReference).updateVisibleColumns(same(graph), same(tableViewState), eq(List.of(Tuple.create("type1", attribute1), Tuple.create("type2", attribute2), Tuple.create("type4", attribute4))), eq(UpdateMethod.REPLACE));
        verify(pageSizeOption1, times(0)).setSelected(true);
        verify(pageSizeOption2, times(1)).setSelected(true);
        assertEquals(150, currentTablePreferences.getMaxRowsPerPage());
    }
}
Also used : Attribute(au.gov.asd.tac.constellation.graph.Attribute) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) RadioMenuItem(javafx.scene.control.RadioMenuItem) Graph(au.gov.asd.tac.constellation.graph.Graph) UserTablePreferences(au.gov.asd.tac.constellation.views.tableview.api.UserTablePreferences) ObservableList(javafx.collections.ObservableList) Column(au.gov.asd.tac.constellation.views.tableview.api.Column) TableColumn(javafx.scene.control.TableColumn) TableViewState(au.gov.asd.tac.constellation.views.tableview.state.TableViewState) ToggleGroup(javafx.scene.control.ToggleGroup) List(java.util.List) ObservableList(javafx.collections.ObservableList) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) TableViewPreferencesIoProvider(au.gov.asd.tac.constellation.views.tableview.io.TableViewPreferencesIoProvider) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Test(org.testng.annotations.Test)

Example 10 with Column

use of au.gov.asd.tac.constellation.views.tableview.api.Column in project constellation by constellation-app.

the class TableNGTest method updateColumnsStateColumnsNotSet.

@Test
public void updateColumnsStateColumnsNotSet() {
    final ChangeListener<ObservableList<String>> tableSelectionListener = mock(ChangeListener.class);
    final ListChangeListener selectedOnlySelectionListener = mock(ListChangeListener.class);
    doReturn(tableSelectionListener).when(table).getTableSelectionListener();
    doReturn(selectedOnlySelectionListener).when(table).getSelectedOnlySelectionListener();
    final ReadableGraph readableGraph = mock(ReadableGraph.class);
    when(graph.getReadableGraph()).thenReturn(readableGraph);
    // Set up the initial column index.
    final String columnType1 = "source.";
    final Attribute attribute1 = mock(Attribute.class);
    final TableColumn<ObservableList<String>, String> column1 = mock(TableColumn.class);
    when(column1.getText()).thenReturn("source.COLUMN_A");
    final CopyOnWriteArrayList<Column> columnIndex = new CopyOnWriteArrayList<>();
    columnIndex.add(new Column(columnType1, attribute1, column1));
    when(activeTableReference.getColumnIndex()).thenReturn(columnIndex);
    // This is a reference of the old column index that will be used whilst the new
    // index is being created. Because that creation is mocked this is used only as a
    // vertification that the parameter is being correctly constructed.
    final Map<String, TableColumn<ObservableList<String>, String>> columnReferenceMap = Map.of("source.COLUMN_A", column1);
    // Mock out the re-population of the column index from the graph
    final CopyOnWriteArrayList<ThreeTuple<String, Attribute, TableColumn<ObservableList<String>, String>>> sourceColumnIndex = new CopyOnWriteArrayList<>();
    sourceColumnIndex.add(ThreeTuple.create(columnType1, attribute1, column1));
    doReturn(sourceColumnIndex).when(table).createColumnIndexPart(readableGraph, GraphElementType.VERTEX, "source.", columnReferenceMap);
    // Set up the table state
    final TableViewState tableViewState = new TableViewState();
    tableViewState.setElementType(GraphElementType.VERTEX);
    // When this is null, the update is interrupted and the user is asked to select
    // which columns they want visible
    tableViewState.setColumnAttributes(null);
    // Don't want it trying to open the menu to select which columns to show
    doNothing().when(table).openColumnVisibilityMenu();
    try (final MockedStatic<Platform> platformMockedStatic = Mockito.mockStatic(Platform.class)) {
        platformMockedStatic.when(Platform::isFxApplicationThread).thenReturn(false);
        platformMockedStatic.when(() -> Platform.runLater(any(Runnable.class))).then(mockInvocation -> {
            assertTrue(mockInvocation.getArgument(0) instanceof UpdateColumnsTask);
            return null;
        });
        table.updateColumns(graph, tableViewState);
    }
    // Verify the new column index
    final CopyOnWriteArrayList<ThreeTuple<String, Attribute, TableColumn<ObservableList<String>, String>>> expectedColumnIndex = new CopyOnWriteArrayList<>();
    expectedColumnIndex.add(ThreeTuple.create(columnType1, attribute1, column1));
    assertEquals(expectedColumnIndex, columnIndex);
    // Because the state element type is set to vertex, only the source columns are populated
    verify(table, times(0)).createColumnIndexPart(readableGraph, GraphElementType.VERTEX, "destination.", columnReferenceMap);
    verify(table, times(0)).createColumnIndexPart(readableGraph, GraphElementType.TRANSACTION, "transaction.", columnReferenceMap);
    // Verify the menu open method was called
    verify(table).openColumnVisibilityMenu();
    // Verify that the new column index did not have its factories set
    verify(column1, times(0)).setCellValueFactory(any(Callback.class));
    verify(column1, times(0)).setCellFactory(any(Callback.class));
}
Also used : ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) Platform(javafx.application.Platform) Attribute(au.gov.asd.tac.constellation.graph.Attribute) GraphAttribute(au.gov.asd.tac.constellation.graph.GraphAttribute) UpdateColumnsTask(au.gov.asd.tac.constellation.views.tableview.tasks.UpdateColumnsTask) TableColumn(javafx.scene.control.TableColumn) ListChangeListener(javafx.collections.ListChangeListener) Callback(javafx.util.Callback) ObservableList(javafx.collections.ObservableList) Column(au.gov.asd.tac.constellation.views.tableview.api.Column) TableColumn(javafx.scene.control.TableColumn) TableViewState(au.gov.asd.tac.constellation.views.tableview.state.TableViewState) ThreeTuple(au.gov.asd.tac.constellation.utilities.datastructure.ThreeTuple) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Test(org.testng.annotations.Test)

Aggregations

Column (au.gov.asd.tac.constellation.views.tableview.api.Column)18 TableColumn (javafx.scene.control.TableColumn)17 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)13 ObservableList (javafx.collections.ObservableList)11 Test (org.testng.annotations.Test)11 Attribute (au.gov.asd.tac.constellation.graph.Attribute)9 GraphAttribute (au.gov.asd.tac.constellation.graph.GraphAttribute)9 ReadableGraph (au.gov.asd.tac.constellation.graph.ReadableGraph)8 ActiveTableReference (au.gov.asd.tac.constellation.views.tableview.api.ActiveTableReference)5 TableViewState (au.gov.asd.tac.constellation.views.tableview.state.TableViewState)5 TableViewTopComponent (au.gov.asd.tac.constellation.views.tableview.TableViewTopComponent)4 TablePane (au.gov.asd.tac.constellation.views.tableview.panes.TablePane)4 List (java.util.List)4 ListChangeListener (javafx.collections.ListChangeListener)4 CustomMenuItem (javafx.scene.control.CustomMenuItem)4 Graph (au.gov.asd.tac.constellation.graph.Graph)3 UpdateColumnsTask (au.gov.asd.tac.constellation.views.tableview.tasks.UpdateColumnsTask)3 ArrayList (java.util.ArrayList)3 Collectors (java.util.stream.Collectors)3 Platform (javafx.application.Platform)3