Search in sources :

Example 1 with TableDataColumn

use of omero.gateway.model.TableDataColumn in project imagej-omero by imagej.

the class DownloadTableTest method downloadLongTable.

@Test
public void downloadLongTable() throws PermissionDeniedException, CannotCreateSessionException, ServerError, DSOutOfServiceException, ExecutionException, DSAccessException {
    // Setup OMERO data structures
    final TableDataColumn[] tdc = new TableDataColumn[] { new TableDataColumn("Header 1", 0, Long.class), new TableDataColumn("Header 2", 1, Long.class), new TableDataColumn("Header 3", 2, Long.class), new TableDataColumn("Header 4", 3, Long.class) };
    final Object[][] data = new Object[4][];
    data[0] = new Long[] { 0l, -9223372036854775808l, 9223372036854775807l };
    data[1] = new Long[] { 134l, 5415145l, 4775807l };
    data[2] = new Long[] { -1898l, -97234l, 75807l };
    data[3] = new Long[] { 19048l, -123l, 4l };
    final TableData table = new TableData(tdc, data);
    table.setNumberOfRows(3);
    // Create expectations
    setUpMethodCalls(table);
    final Table<?, ?> imageJTable = ((DefaultOMEROService) service).downloadTable(credentials, 0);
    // Tests
    assertTrue(LongTable.class.isInstance(imageJTable));
    assertEquals(imageJTable.getColumnCount(), 4);
    assertEquals(imageJTable.getRowCount(), 3);
    assertEquals(imageJTable.getColumnHeader(0), "Header 1");
    assertEquals(imageJTable.getColumnHeader(1), "Header 2");
    assertEquals(imageJTable.getColumnHeader(2), "Header 3");
    assertEquals(imageJTable.getColumnHeader(3), "Header 4");
    for (int r = 0; r < imageJTable.getRowCount(); r++) {
        for (int c = 0; c < imageJTable.getColumnCount(); c++) {
            assertEquals(data[c][r], imageJTable.get(c, r));
        }
    }
}
Also used : LongTable(net.imagej.table.LongTable) TableDataColumn(omero.gateway.model.TableDataColumn) TableData(omero.gateway.model.TableData) Test(org.junit.Test)

Example 2 with TableDataColumn

use of omero.gateway.model.TableDataColumn in project imagej-omero by imagej.

the class DownloadTableTest method downloadMixedTable.

@Test
@SuppressWarnings("unchecked")
public void downloadMixedTable() throws PermissionDeniedException, CannotCreateSessionException, ServerError, DSOutOfServiceException, ExecutionException, DSAccessException {
    // / Setup OMERO data structures
    final TableDataColumn[] tdc = new TableDataColumn[] { new TableDataColumn("Header 1", 0, String.class), new TableDataColumn("Header 2", 1, Boolean.class), new TableDataColumn("Header 3", 2, Double[].class), new TableDataColumn("Header 4", 3, Long.class) };
    final Object[][] data = new Object[4][];
    data[0] = new String[] { "abc", "123", "hi!" };
    data[1] = new Boolean[] { false, true, false };
    data[2] = new Double[][] { { 0.125, 3879123.5, -93.25 }, { 0d, -123353.03125, -5.5 }, { 100.25, 0.125, -9000.5 } };
    data[3] = new Long[] { -9028131908l, 0l, 12l };
    final TableData table = new TableData(tdc, data);
    table.setNumberOfRows(3);
    // Create expectations
    setUpMethodCalls(table);
    final Table<?, ?> imageJTable = ((DefaultOMEROService) service).downloadTable(credentials, 0);
    // Tests
    assertTrue(GenericTable.class.isInstance(imageJTable));
    assertTrue(DefaultColumn.class.isInstance(imageJTable.get(0)));
    assertTrue(imageJTable.get(0).getType() == String.class);
    assertTrue(BoolColumn.class.isInstance(imageJTable.get(1)));
    assertTrue(DefaultColumn.class.isInstance(imageJTable.get(2)));
    assertTrue(imageJTable.get(2).getType() == DoubleArray.class);
    assertTrue(LongColumn.class.isInstance(imageJTable.get(3)));
    assertEquals(imageJTable.getColumnCount(), 4);
    assertEquals(imageJTable.getRowCount(), 3);
    assertEquals(imageJTable.getColumnHeader(0), "Header 1");
    assertEquals(imageJTable.getColumnHeader(1), "Header 2");
    assertEquals(imageJTable.getColumnHeader(2), "Header 3");
    assertEquals(imageJTable.getColumnHeader(3), "Header 4");
    for (int r = 0; r < imageJTable.getRowCount(); r++) assertEquals(data[0][r], ((DefaultColumn<String>) imageJTable.get(0)).get(r));
    for (int r = 0; r < imageJTable.getRowCount(); r++) assertEquals(data[1][r], ((BoolColumn) imageJTable.get(1)).getValue(r));
    for (int r = 0; r < imageJTable.getRowCount(); r++) assertArrayEquals((Double[]) data[2][r], ((DefaultColumn<DoubleArray>) imageJTable.get(2)).get(r).toArray());
    for (int r = 0; r < imageJTable.getRowCount(); r++) assertEquals(data[3][r], ((LongColumn) imageJTable.get(3)).getValue(r));
}
Also used : BoolColumn(net.imagej.table.BoolColumn) DefaultColumn(net.imagej.table.DefaultColumn) GenericTable(net.imagej.table.GenericTable) LongColumn(net.imagej.table.LongColumn) TableDataColumn(omero.gateway.model.TableDataColumn) TableData(omero.gateway.model.TableData) DoubleArray(org.scijava.util.DoubleArray) Test(org.junit.Test)

Example 3 with TableDataColumn

use of omero.gateway.model.TableDataColumn in project imagej-omero by imagej.

the class DownloadTableTest method downloadDoubleTable.

@Test
public void downloadDoubleTable() throws PermissionDeniedException, CannotCreateSessionException, ServerError, DSOutOfServiceException, ExecutionException, DSAccessException {
    // Setup OMERO data structures
    final TableDataColumn[] tdc = new TableDataColumn[] { new TableDataColumn("Header 1", 0, Double.class), new TableDataColumn("Header 2", 1, Double.class) };
    final Object[][] data = new Object[2][];
    data[0] = new Double[] { 0.125, -0.5, 923014712408917.25, -241.03125, 0.0 };
    data[1] = new Double[] { 1002.125, 908082.5, 59871249.0625, -7.25, 4.5 };
    final TableData table = new TableData(tdc, data);
    table.setNumberOfRows(5);
    // Create expectations
    setUpMethodCalls(table);
    final Table<?, ?> imageJTable = ((DefaultOMEROService) service).downloadTable(credentials, 0);
    // Tests
    assertTrue(ResultsTable.class.isInstance(imageJTable));
    assertEquals(imageJTable.getColumnCount(), 2);
    assertEquals(imageJTable.getRowCount(), 5);
    assertEquals(imageJTable.getColumnHeader(0), "Header 1");
    assertEquals(imageJTable.getColumnHeader(1), "Header 2");
    for (int r = 0; r < imageJTable.getRowCount(); r++) {
        for (int c = 0; c < imageJTable.getColumnCount(); c++) {
            assertEquals((double) data[c][r], ((ResultsTable) imageJTable).get(c, r), 0);
        }
    }
}
Also used : ResultsTable(net.imagej.table.ResultsTable) TableDataColumn(omero.gateway.model.TableDataColumn) TableData(omero.gateway.model.TableData) Test(org.junit.Test)

Example 4 with TableDataColumn

use of omero.gateway.model.TableDataColumn in project imagej-omero by imagej.

the class DefaultOMEROService method convertOMEROTable.

@Override
public TableData convertOMEROTable(final Table<?, ?> imageJTable) {
    final TableDataColumn[] omeroColumns = new TableDataColumn[imageJTable.getColumnCount()];
    final Object[][] data = new Object[imageJTable.getColumnCount()][];
    for (int c = 0; c < imageJTable.getColumnCount(); c++) {
        omeroColumns[c] = TableUtils.createOMEROColumn(imageJTable.get(c), c);
        data[c] = TableUtils.populateOMEROColumn(imageJTable.get(c), convertService);
    }
    // Create table and attach to image
    final TableData omeroTable = new TableData(omeroColumns, data);
    omeroTable.setNumberOfRows(imageJTable.getRowCount());
    return omeroTable;
}
Also used : TableDataColumn(omero.gateway.model.TableDataColumn) TableData(omero.gateway.model.TableData)

Example 5 with TableDataColumn

use of omero.gateway.model.TableDataColumn in project imagej-omero by imagej.

the class DefaultOMEROService method downloadTable.

@Override
public Table<?, ?> downloadTable(final OMEROCredentials credentials, final long tableID) throws ServerError, PermissionDeniedException, CannotCreateSessionException, ExecutionException, DSOutOfServiceException, DSAccessException {
    try (final OMEROSession session = new DefaultOMEROSession(credentials)) {
        final TablesFacility tableService = session.getGateway().getFacility(TablesFacility.class);
        final TableData table = tableService.getTable(session.getSecurityContext(), tableID, 0, Integer.MAX_VALUE - 1);
        final TableDataColumn[] omeroColumns = table.getColumns();
        final Object[][] data = table.getData();
        final Table<?, ?> imageJTable = TableUtils.createImageJTable(omeroColumns);
        imageJTable.setRowCount((int) table.getNumberOfRows());
        boolean colsCreated = false;
        if (!(imageJTable instanceof GenericTable)) {
            imageJTable.appendColumns(omeroColumns.length);
            colsCreated = true;
        }
        for (int i = 0; i < omeroColumns.length; i++) {
            if (!colsCreated) {
                final Column<?> imageJCol = TableUtils.createImageJColumn(omeroColumns[i]);
                TableUtils.populateImageJColumn(omeroColumns[i].getType(), data[omeroColumns[i].getIndex()], imageJCol);
                ((GenericTable) imageJTable).add(omeroColumns[i].getIndex(), imageJCol);
            } else {
                TableUtils.populateImageJColumn(omeroColumns[i].getType(), data[omeroColumns[i].getIndex()], imageJTable.get(i));
                imageJTable.get(i).setHeader(omeroColumns[i].getName());
            }
        }
        return imageJTable;
    }
}
Also used : TablesFacility(omero.gateway.facility.TablesFacility) GenericTable(net.imagej.table.GenericTable) TableDataColumn(omero.gateway.model.TableDataColumn) TableData(omero.gateway.model.TableData)

Aggregations

TableData (omero.gateway.model.TableData)9 TableDataColumn (omero.gateway.model.TableDataColumn)9 Test (org.junit.Test)7 GenericTable (net.imagej.table.GenericTable)5 DefaultColumn (net.imagej.table.DefaultColumn)3 BoolColumn (net.imagej.table.BoolColumn)1 BoolTable (net.imagej.table.BoolTable)1 LongColumn (net.imagej.table.LongColumn)1 LongTable (net.imagej.table.LongTable)1 ResultsTable (net.imagej.table.ResultsTable)1 TablesFacility (omero.gateway.facility.TablesFacility)1 ImageData (omero.gateway.model.ImageData)1 ImageI (omero.model.ImageI)1 DoubleArray (org.scijava.util.DoubleArray)1 LongArray (org.scijava.util.LongArray)1