protected void initColumnListBox() { view.clearColumnSelector(); for (int i=0; i<metadata.getNumberOfColumns(); i++) { String columnId = metadata.getColumnId(i); ColumnType columnType = metadata.getColumnType(i); // Only add columns that match the target type. // When the target is not specified or is numeric then all the columns are eligible if (targetType == null || columnType == null || isColumnNumeric() || targetType.equals(columnType)) { view.addColumnItem(columnId); if (columnId != null && columnId.equals(groupFunction.getSourceId())) { view.setSelectedColumnIndex(i); } } } }
@Override public void callback(final DataSetMetadata metadata) { final int estimatedSize = metadata.getEstimatedSize(); final int rowCount = metadata.getNumberOfRows(); view.showSizePanel(humanReadableRowCount(rowCount) + " " + DataSetExplorerConstants.INSTANCE.rows(), humanReadableByteCount(estimatedSize)); }
protected int _assertColumnExists(DataSetMetadata metadata, String columnId) { for (int i = 0; i < metadata.getNumberOfColumns(); i++) { if (metadata.getColumnId(i).equalsIgnoreCase(columnId)) { return i; } } throw new RuntimeException("Column '" + columnId + "' not found in data set: " + metadata.getUUID()); }
private int getGroupColumn(DataSetMetadata metatada) { for (int i=0; i<metatada.getNumberOfColumns(); i++) { ColumnType type = metatada.getColumnType(i); if (type.equals(ColumnType.LABEL)) return i; } for (int i=0; i<metatada.getNumberOfColumns(); i++) { ColumnType type = metatada.getColumnType(i); if (type.equals(ColumnType.DATE)) return i; } return -1; }
protected Collection<Column> _createAllColumns() { Collection<Column> columns = new ArrayList<>(); for (int i = 0; i < metadata.getNumberOfColumns(); i++) { String columnId = metadata.getColumnId(i); columns.add(SQLFactory.column(columnId)); } return columns; }
public DataSetLookup newDataSetLookup(DataSetMetadata metatada) { DataSetLookupBuilder<DataSetLookupBuilderImpl> builder = DataSetFactory.newDataSetLookupBuilder(); builder.dataset(metatada.getUUID()); builder.group(metatada.getColumnId(groupIdx)); builder.column(metatada.getColumnId(groupIdx)); startIndex = 1; if (types == null || types.length == 0) { if (minColumns > 0 && minColumns < metatada.getNumberOfColumns()) { types = new ColumnType[minColumns]; types = new ColumnType[metatada.getNumberOfColumns()]; types[i] = metatada.getColumnType(i); String columnId = metatada.getColumnId(idx); ColumnType columnType = metatada.getColumnType(idx); exclude.add(idx); DataSetLookup currentLookup = builder.buildLookup();
public ColumnType getColumnType(int index) { return dataSetMetadata.getColumnType(index); }
DataSetMetadata result = dataSetManager.getDataSetMetadata(EXPENSE_REPORTS); assertEquals(result.getNumberOfColumns(), 6); assertEquals(result.getNumberOfRows(), 50); List<String> columnIds = result.getColumnIds(); assertEquals(columnIds.size(), 6); assertEquals(result.getColumnType("Expenses_id"), ColumnType.NUMBER); assertEquals(result.getColumnType("City"), ColumnType.LABEL); assertEquals(result.getColumnType("Department"), ColumnType.LABEL); assertEquals(result.getColumnType("Employee"), ColumnType.LABEL); assertEquals(result.getColumnType("Creation_date"), ColumnType.DATE); assertEquals(result.getColumnType("Amount"), ColumnType.NUMBER); assertEquals(result.getColumnType("expenses_id"), ColumnType.NUMBER); assertEquals(result.getColumnType("city"), ColumnType.LABEL); assertEquals(result.getColumnType("department"), ColumnType.LABEL); assertEquals(result.getColumnType("employee"), ColumnType.LABEL); assertEquals(result.getColumnType("creation_date"), ColumnType.DATE); assertEquals(result.getColumnType("amount"), ColumnType.NUMBER); assertEquals(result.getColumnType("EXPENSES_ID"), ColumnType.NUMBER); assertEquals(result.getColumnType("CITY"), ColumnType.LABEL); assertEquals(result.getColumnType("DEPARTMENT"), ColumnType.LABEL); assertEquals(result.getColumnType("EMPLOYEE"), ColumnType.LABEL); assertEquals(result.getColumnType("CREATION_DATE"), ColumnType.DATE); assertEquals(result.getColumnType("AMOUNT"), ColumnType.NUMBER);
public String getColumnId(int index) { return dataSetMetadata.getColumnId(index); }
@Test public void testAllColumns() throws Exception { URL fileURL = Thread.currentThread().getContextClassLoader().getResource("expenseReports_allcolumns.dset"); String json = IOUtils.toString(fileURL, StandardCharsets.UTF_8); SQLDataSetDef def = (SQLDataSetDef) jsonMarshaller.fromJson(json); dataSetDefRegistry.registerDataSetDef(def); DataSetMetadata metadata = dataSetManager.getDataSetMetadata("expense_reports_allcolumns"); assertThat(metadata.getNumberOfColumns()).isEqualTo(6); assertThat(metadata.getEstimatedSize()).isEqualTo(6350); }
public void onCreateFilter() { int selectedIdx = view.getSelectedColumnIndex(); String columnId = metadata.getColumnId(selectedIdx); ColumnType columnType = metadata.getColumnType(selectedIdx); CoreFunctionFilter columnFilter = FilterFactory.createCoreFunctionFilter( columnId, columnType, ColumnType.DATE.equals(columnType) ? CoreFunctionType.TIME_FRAME : CoreFunctionType.NOT_EQUALS_TO); if (filter == null) { filter = new DataSetFilter(); } filter.addFilterColumn(columnFilter); ColumnFilterEditor columnFilterEditor = beanManager.lookupBean(ColumnFilterEditor.class).newInstance(); columnFilterEditor.init(metadata, columnFilter); columnFilterEditor.expand(); view.addColumnFilterEditor(columnFilterEditor); view.resetSelectedColumn(); view.showNewFilterHome(); changeEvent.fire(new DataSetFilterChangedEvent(filter)); }
@Test public void testSQLDataSet() throws Exception { String testDsetFile = testSettings.getExpenseReportsSqlDsetFile(); URL fileURL = Thread.currentThread().getContextClassLoader().getResource(testDsetFile); String json = IOUtils.toString(fileURL, StandardCharsets.UTF_8); SQLDataSetDef def = (SQLDataSetDef) jsonMarshaller.fromJson(json); dataSetDefRegistry.registerDataSetDef(def); DataSetMetadata metadata = dataSetManager.getDataSetMetadata("expense_reports_sql"); assertThat(metadata.getNumberOfColumns()).isEqualTo(3); assertThat(metadata.getNumberOfRows()).isEqualTo(6); final String uuid = "expense_reports_sql"; DataSet dataSet = dataSetManager.lookupDataSet( DataSetLookupFactory.newDataSetLookupBuilder() .dataset(uuid) .filter(COLUMN_AMOUNT, FilterFactory.lowerThan(1000)) .group(COLUMN_EMPLOYEE) .column(COLUMN_EMPLOYEE) .column(COLUMN_AMOUNT, AggregateFunctionType.SUM) .sort(COLUMN_EMPLOYEE, SortOrder.ASCENDING) .buildLookup()); assertDataSetDefinition(dataSet, uuid); assertDataSetValues(dataSet, dataSetFormatter, new String[][]{ {"Jamie Gilbeau", "792.59"}, {"Roxie Foraker", "1,020.45"} }, 0); }
int rows = metadata.getNumberOfRows(); if (rows > sqlDef.getCacheMaxRows()) { return _lookupDataSet(sqlDef, lookup);
private int getTargetColumn(DataSetMetadata metatada, Set<Integer> exclude) { for (int i=0; i<metatada.getNumberOfColumns(); i++) { if (!exclude.contains(i)) { return i; } } return 0; } }
public void notFound() { pushRequestMap.remove(dataSetMetadata.getUUID()); for (DataSetLookupListenerPair pair : listenerList) { pair.listener.notFound(); } }
@Test(expected = IllegalArgumentException.class) public void testNoColumnsDeclared() throws Exception { DataSetMetadata metadata = dataSetProvider.getDataSetMetadata( DataSetDefFactory.newSQLDataSetDef() .uuid("test") .dbTable("test", false) .buildDef()); List<String> columnIds = metadata.getColumnIds(); assertEquals(columnIds.size(), 2); assertEquals(columnIds.get(0), "dbWins1"); assertEquals(columnIds.get(1), "dbWins2"); }
public void callback(DataSetMetadata metatada) { // Push the data set to client if and only if the push feature is enabled, the data set is // pushable & the data set is smaller than the max push size defined. DataSetDef dsetDef = metatada.getDefinition(); int estimatedSize = metatada.getEstimatedSize() / 1000; boolean isPushable = dsetDef != null && dsetDef.isPushEnabled() && estimatedSize < dsetDef.getPushMaxSize(); if (pushRemoteDataSetEnabled && isPushable) { // Check if a push is already in progress. // (This is necessary in order to avoid repeating multiple push requests over the same data set). DataSetPushHandler pushHandler = pushRequestMap.get(request.getDataSetUUID()); if (pushHandler == null) { // Create a push handler. pushHandler = new DataSetPushHandler(metatada); // Send the lookup request to the server... DataSetLookup lookupSourceDataSet = new DataSetLookup(request.getDataSetUUID()); _lookupDataSet(lookupSourceDataSet, pushHandler); } // Register the lookup request into the current handler. pushHandler.registerLookup(request, listener); } // Lookup the remote data set otherwise. else { _lookupDataSet(request, listener); } }
protected Collection<Column> _createAllColumns() { Collection<Column> columns = new ArrayList<>(); for (int i = 0; i < metadata.getNumberOfColumns(); i++) { String columnId = metadata.getColumnId(i); columns.add(SQLFactory.column(columnId)); } return columns; }
public DataSetLookup newDataSetLookup(DataSetMetadata metatada) { DataSetLookupBuilder<DataSetLookupBuilderImpl> builder = DataSetLookupFactory.newDataSetLookupBuilder(); builder.dataset(metatada.getUUID()); builder.group(metatada.getColumnId(groupIdx)); builder.column(metatada.getColumnId(groupIdx)); startIndex = 1; if (types == null || types.length == 0) { if (minColumns > 0 && minColumns < metatada.getNumberOfColumns()) { types = new ColumnType[minColumns]; types = new ColumnType[metatada.getNumberOfColumns()]; types[i] = metatada.getColumnType(i); String columnId = metatada.getColumnId(idx); ColumnType columnType = metatada.getColumnType(idx); exclude.add(idx); DataSetLookup currentLookup = builder.buildLookup();
private int getGroupColumn(DataSetMetadata metatada) { for (int i=0; i<metatada.getNumberOfColumns(); i++) { ColumnType type = metatada.getColumnType(i); if (type.equals(ColumnType.LABEL)) return i; } for (int i=0; i<metatada.getNumberOfColumns(); i++) { ColumnType type = metatada.getColumnType(i); if (type.equals(ColumnType.DATE)) return i; } return -1; }