private int getAvailableColumnIndex(final String id) { int x = 0; for (final DataColumnDef column : acceptableColumns) { if (column.getId().equals(id)) return x; x++; } return -1; }
private int getAvailableColumnIndex(final String id) { int x = 0; for (final DataColumnDef column : acceptableColumns) { if (column.getId().equals(id)) return x; x++; } return -1; }
public DataColumnDef getColumnById(final String id) { if (id != null && columns != null && !columns.isEmpty()) { for (final DataColumnDef columnDef : columns) { if (columnDef.getId().equalsIgnoreCase(id)) { return columnDef; } } } return null; }
public DataColumnDef getColumnById(final String id) { if (id != null && columns != null && !columns.isEmpty()) { for (final DataColumnDef columnDef : columns) { if (columnDef.getId().equalsIgnoreCase(id)) { return columnDef; } } } return null; }
@Override public DataColumnDefEditor create(final int index) { final DataColumnDef column = listEditor.getList().get(index); final int localIndex = acceptableColumns.indexOf(column); // Check single column used in data set -> it cannot be unselected. if (!checkSingleColumnEditorDisabled()) { // Enable column selection if more than one column remains on the data set. checkMultipleColumnsEditorEnabled(); } // Create the new editor. final org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor editor = createColumnEditor(); final boolean hasSingleColumn = listEditor.getList().size() == 1; final boolean isRestricted = restrictedColumns.contains(column.getId()); final String tooltipText = hasSingleColumn ? DataSetEditorConstants.INSTANCE.dataSetMustHaveAtLeastOneColumn() : ( isRestricted ? DataSetEditorConstants.INSTANCE.columnIsUsedInFilter() : null ); doSetOriginalColumnType(column.getId(), editor); replace(localIndex, editor, true, !isRestricted && !hasSingleColumn, tooltipText); return editor; }
@Override public DataColumnDefEditor create(final int index) { final DataColumnDef column = listEditor.getList().get(index); final int localIndex = acceptableColumns.indexOf(column); // Check single column used in data set -> it cannot be unselected. if (!checkSingleColumnEditorDisabled()) { // Enable column selection if more than one column remains on the data set. checkMultipleColumnsEditorEnabled(); } // Create the new editor. final org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor editor = createColumnEditor(); final boolean hasSingleColumn = listEditor.getList().size() == 1; final boolean isRestricted = restrictedColumns.contains(column.getId()); final String tooltipText = hasSingleColumn ? DataSetEditorConstants.INSTANCE.dataSetMustHaveAtLeastOneColumn() : ( isRestricted ? DataSetEditorConstants.INSTANCE.columnIsUsedInFilter() : null ); doSetOriginalColumnType(column.getId(), editor); replace(localIndex, editor, true, !isRestricted && !hasSingleColumn, tooltipText); return editor; }
@Override public DataSetMetadata getDataSetMetadata(DataSetDef def) throws Exception { List<String> columnNames = new ArrayList<>(); List<ColumnType> columnTypes = new ArrayList<>(); List<DataColumnDef> columns = def.getColumns(); for (DataColumnDef column : columns) { columnNames.add(column.getId()); columnTypes.add(column.getColumnType()); } return new DataSetMetadataImpl(def, def.getUUID(), -1, def.getColumns().size(), columnNames, columnTypes, -1); }
private List<DataColumnDef> buildAcceptableValues() { final DataColumnDef col1 = mock(DataColumnDef.class); when(col1.getId()).thenReturn("col1"); when(col1.getColumnType()).thenReturn(ColumnType.LABEL); final List<DataColumnDef> acceptableValues = new ArrayList<DataColumnDef>(); acceptableValues.add(col1); return acceptableValues; }
@Test public void testSetValue() { final DataColumnDef col1 = mock(DataColumnDef.class); when(col1.getId()).thenReturn("col1"); when(col1.getColumnType()).thenReturn(ColumnType.LABEL); presenter.setValue(col1); verify(columnType, times(1)).setEntries(any(Collection.class)); verify(columnType, times(0)).isEditMode(anyBoolean()); verify(columnType, times(1)).setHelpContent(anyString(), anyString(), any(Placement.class)); verify(columnType, times(0)).setImageSize(anyString(), anyString()); }
protected JsonArray toJsonObject(final Collection<DataColumnDef> columnList, final DataSetDef dataSetDef) throws JsonException { JsonArray result = null; if (columnList != null && !columnList.isEmpty()) { result = Json.createArray(); int idx = 0; for (final DataColumnDef column : columnList) { final String id = column.getId(); final ColumnType type = column.getColumnType(); final JsonObject columnObject = Json.createObject(); columnObject.put(COLUMN_ID, id); columnObject.put(COLUMN_TYPE, type.name().toLowerCase()); String pattern = dataSetDef.getPattern(id); if (pattern != null && pattern.trim().length() > 0) { columnObject.put(COLUMN_PATTERN, pattern); } result.set(idx++, columnObject); } } return result; }
protected JsonArray toJsonObject(final Collection<DataColumnDef> columnList, final DataSetDef dataSetDef) throws JsonException { JsonArray result = null; if (columnList != null && !columnList.isEmpty()) { result = Json.createArray(); int idx = 0; for (final DataColumnDef column : columnList) { final String id = column.getId(); final ColumnType type = column.getColumnType(); final JsonObject columnObject = Json.createObject(); columnObject.put(COLUMN_ID, id); columnObject.put(COLUMN_TYPE, type.name().toLowerCase()); String pattern = dataSetDef.getPattern(id); if (pattern != null && pattern.trim().length() > 0) { columnObject.put(COLUMN_PATTERN, pattern); } result.set(idx++, columnObject); } } return result; }
private org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor createDummyColumnEditor(final DataColumnDef def) { final org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor editor = createColumnEditor(); // Column is available but not selected, do not allow edition. editor.isEditMode(false); // Initialze edtiro with the column attributes. dataColumnDefDriver.initialize(editor); dataColumnDefDriver.edit(def); doSetOriginalColumnType(def.getId(), editor); return editor; }
private org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor createDummyColumnEditor(final DataColumnDef def) { final org.dashbuilder.client.widgets.dataset.editor.column.DataColumnDefEditor editor = createColumnEditor(); // Column is available but not selected, do not allow edition. editor.isEditMode(false); // Initialze edtiro with the column attributes. dataColumnDefDriver.initialize(editor); dataColumnDefDriver.edit(def); doSetOriginalColumnType(def.getId(), editor); return editor; }
/** * Column editor editMode set to true, as more than one column present in the dset definition, so it can be selected/unselected. */ @Test public void testOnValueUnRestricted() { final String value = "col1"; presenter.restrictedColumns.add("col1"); final DataColumnDef col2 = mock(DataColumnDef.class); when(col2.getId()).thenReturn("col2"); when(col2.getColumnType()).thenReturn(ColumnType.LABEL); presenter.listEditor.getList().add(col2); presenter.onValueUnRestricted(value); assertTrue(presenter.restrictedColumns.isEmpty()); verify(dataColumnDefEditor, times(1)).isEditMode(true); verify(view, times(1)).insert(anyInt(), any(DataColumnDefEditor.View.class), anyBoolean(), anyBoolean(), anyString()); verify(view, times(1)).remove(anyInt()); verify(view, times(0)).init(presenter); verify(view, times(0)).clear(); }
/** * Column editor created with editMode set to true, as more than one column present in the dset definition. First column enabled too, as it was disabled as was the unique one before this creation. */ @Test public void testDataColumnDefEditorSource_CreateMultiple() { final DataColumnDef col2 = mock(DataColumnDef.class); when(col2.getId()).thenReturn("col2"); when(col2.getColumnType()).thenReturn(ColumnType.LABEL); presenter.acceptableColumns.add(col2); presenter.listEditor.getList().add(col2); presenter.restrictedColumns.clear(); ColumnListEditor.DataColumnDefEditorSource source = presenter.createDataColumnDefEditorSource(); org.dashbuilder.dataset.client.editor.DataColumnDefEditor e = source.create(0); verify(dataColumnDefEditor, times(2)).isEditMode(true); verify(dataColumnDefEditor, times(1)).setOriginalColumnType(any(ColumnType.class)); verify(dataColumnDefEditor, times(1)).setProviderType(any(DataSetProviderType.class)); verify(view, times(2)).insert(anyInt(), any(DataColumnDefEditor.View.class), anyBoolean(), anyBoolean(), anyString()); verify(view, times(2)).remove(anyInt()); verify(view, times(0)).init(presenter); verify(view, times(0)).clear(); }
when(col1.getId()).thenReturn("col1"); when(col1.getColumnType()).thenReturn(ColumnType.LABEL); final List<DataColumnDef> acceptableValues = buildAcceptableValues();
/** * See https://issues.jboss.org/browse/DASHBUILDE-79 */ @Test public void testDataColumnDefEditorSource_Create_DASHBUILDE79_A() { final DataColumnDef col2 = mock(DataColumnDef.class); when(col2.getId()).thenReturn("col2"); when(col2.getColumnType()).thenReturn(ColumnType.LABEL); presenter.acceptableColumns.add(col2); presenter.listEditor.getList().add(col2); presenter.listEditor.getEditors().clear(); presenter.restrictedColumns.clear(); ColumnListEditor.DataColumnDefEditorSource source = presenter.createDataColumnDefEditorSource(); org.dashbuilder.dataset.client.editor.DataColumnDefEditor e = source.create(0); verify(dataColumnDefEditor, times(1)).isEditMode(true); verify(dataColumnDefEditor, times(1)).setOriginalColumnType(any(ColumnType.class)); verify(dataColumnDefEditor, times(1)).setProviderType(any(DataSetProviderType.class)); verify(view, times(1)).insert(anyInt(), any(DataColumnDefEditor.View.class), anyBoolean(), anyBoolean(), anyString()); verify(view, times(1)).remove(anyInt()); verify(view, times(0)).init(presenter); verify(view, times(0)).clear(); }
@Test public void testDataSetSQL() { dataSetDefs.registerDataSetDefinitions(); final ArgumentCaptor<SQLDataSetDef> dataSetDef = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(defRegistry, times(2)).registerDataSetDef(dataSetDef.capture()); for (SQLDataSetDef dataSet : dataSetDef.getAllValues()) { if (dataSet.getDbSQL() == null) { continue; } try { LOGGER.info("Testing SQL DataSet: {}", dataSet.getName()); LOGGER.info("SQL: {}", dataSet.getDbSQL()); PreparedStatement ps = conn.prepareStatement(dataSet.getDbSQL()); ResultSet rs = ps.executeQuery(); ResultSetMetaData resultSetMetaData = rs.getMetaData(); for (int i=0; i < dataSet.getColumns().size(); i++) { assertEquals("select column name don't match", dataSet.getColumns().get(i).getId(), resultSetMetaData.getColumnLabel(i+1)); } ps.close(); final String countSQL = "SELECT COUNT(*) FROM (SELECT * FROM (" + dataSet.getDbSQL() + ") )"; conn.prepareStatement(countSQL).executeQuery(); } catch (Exception ex) { LOGGER.error("Failed to execute query for DataSet {} on DB {}", dataSet.getName(), database.name(), ex); fail(ex.getMessage()); } } }