@Override public int getColumnIndex( DataColumn dataColumn ) { if (dataColumn == null || "".equals(dataColumn.getId())) { throw new IllegalArgumentException("Wrong column specified."); } for (int i = 0; i < columns.size(); i++) { if ( dataColumn.getId().equalsIgnoreCase( columns.get( i ).getId() ) ) return i; } throw new IllegalArgumentException( "The column with id " + dataColumn.getId() + " does not exist." ); }
private Column<Integer, ?> createColumn( final DataColumn column, final int columnNumber ) { switch ( column.getColumnType() ) { case LABEL: return new Column<Integer, String>(new DataColumnCell(column.getId(), true)) { public String getValue( Integer row ) { Object value = dataSet.getValueAt(row, columnNumber); return TableDisplayer.this.format(value, column.getId()); } }; case TEXT: case NUMBER: case DATE:return new Column<Integer, String>(new DataColumnCell(column.getId(), false)) { public String getValue( Integer row ) { Object value = dataSet.getValueAt(row, columnNumber); return TableDisplayer.this.format(value, column.getId()); } }; } return null; }
private JsonObject formatDataColumn(DataColumn dataColumn) throws JsonException { JsonObject columnJson = Json.createObject(); if (dataColumn != null) { columnJson.put(DATASET_COLUMN_ID, dataColumn.getId()); columnJson.put(DATASET_COLUMN_TYPE, dataColumn.getColumnType().toString()); columnJson.put(DATASET_COLUMN_VALUES, formatColumnValues(dataColumn, dataColumn.getValues())); } return columnJson; }
String[] extractSingleColumnValues(DataColumn dataColumn) { List<?> values = dataColumn.getValues(); String[] data = new String[values.size() + 1]; data[0] = dataColumn.getId(); for (int i = 0; i < values.size(); i++) { Object value = values.get(i); data[i + 1] = columnValueToString(value); } return data; }
public IntervalList build(DataColumn dataColumn) { ColumnGroup columnGroup = dataColumn.getColumnGroup(); IntervalListLabel intervalList = new IntervalListLabel(columnGroup); List values = dataColumn.getValues(); return intervalList.indexValues(values, null); }
public DataColumn getColumnById(String id) { for (DataColumn column : columns) { if (column.getId().equalsIgnoreCase(id)) { return column; } GroupFunction gf = column.getGroupFunction(); if (gf != null && gf.getSourceId() != null && gf.getSourceId().equalsIgnoreCase(id)) { return column; } } return null; }
public static ColumnSettings cloneWithDefaults(ColumnSettings columnSettings, DataColumn column) { ColumnSettings clone = columnSettings == null ? new ColumnSettings(column.getId()) : columnSettings.cloneInstance(); ColumnType columnType = column.getColumnType(); ColumnGroup columnGroup = column.getColumnGroup(); DateIntervalType intervalType = DateIntervalType.getByName(column.getIntervalType()); clone.columnName = column.getId();
public Object getSelectedMax() { if (selectedMax == -1) { return new Date((long) rangeMax); } if (ColumnType.DATE.equals(dataColumnMax.getColumnType())) { return new Date((long) selectedMax); } else if (ColumnType.NUMBER.equals(dataColumnMax.getColumnType())) { return (long) selectedMax; } else { return null; } }
DataColumn column = columns.get(i).cloneEmpty(); dataSet.addColumn(column); for (int i=0; i<columns.size(); i++) { DataColumn column = dataSet.getColumnByIndex(i); column.getValues().add(_rs.getObject(i+1)); ColumnType columnType = column.getColumnType(); List values = column.getValues(); ColumnGroup cg = column.getColumnGroup(); if (cg != null && ColumnType.DATE.equals(metadata.getColumnType(cg.getSourceId()))) { dateGroupColumn = column; column.setColumnType(ColumnType.DATE); for (int j=0; j<values.size(); j++) { Object val = values.remove(j); column.setValues(values); IntervalBuilder intervalBuilder = intervalBuilderLocator.lookup(ColumnType.DATE, dateGroupColumn.getColumnGroup().getStrategy()); IntervalList intervalList = intervalBuilder.build(dateGroupColumn); if (intervalList.size() > dataSet.getRowCount() && dataSet.getRowCountNonTrimmed() < 0) { List values = dateGroupColumn.getValues(); int valueIdx = 0; if (value == null || !value.equals(interval)) { dataSet.addEmptyRowAt(intervalIdx); dateGroupColumn.getValues().set(intervalIdx, interval);
String[][] extractGroupingValues(DataColumn groupsColumn, DataColumn valuesColumn) { int n = groupsColumn.getValues().size(); String[][] output = new String[n][2]; for (int i = 0; i < n; i++) { Object group = groupsColumn.getValues().get(i); Object value = valuesColumn.getValues().get(i); output[i][0] = columnValueToString(group); output[i][1] = columnValueToString(value); } return output; }
public String formatInterval(Interval interval, DataColumn column) { // Raw values if (column == null || column.getColumnGroup() == null) { return interval.getName(); } // Date interval String type = interval.getType(); if (StringUtils.isBlank(type)) type = column.getIntervalType(); if (StringUtils.isBlank(type)) type = column.getColumnGroup().getIntervalSize(); DateIntervalType intervalType = DateIntervalType.getByName(type); if (intervalType != null) { ColumnSettings columnSettings = displayerSettings.getColumnSettings(column.getId()); String pattern = columnSettings != null ? columnSettings.getValuePattern() : ColumnSettings.getDatePattern(intervalType); String expression = columnSettings != null ? columnSettings.getValueExpression() : null; if (pattern == null) { pattern = ColumnSettings.getDatePattern(intervalType); } if (expression == null && column.getColumnGroup().getStrategy().equals(GroupStrategy.FIXED)) { expression = ColumnSettings.getFixedExpression(intervalType); } return formatDate(intervalType, column.getColumnGroup().getStrategy(), interval.getName(), pattern, expression); } // Label interval ColumnSettings columnSettings = displayerSettings.getColumnSettings(column); String expression = columnSettings.getValueExpression(); if (StringUtils.isBlank(expression)) return interval.getName(); return getEvaluator().evalExpression(interval.getName(), expression); }
private void parseColumnValues( DataColumn dataColumn, JsonObject columnJson) throws JsonException { JsonArray valueArray = columnJson.getArray(DATASET_COLUMN_VALUES); if (valueArray != null) { List values = dataColumn.getValues(); for ( int i = 0; i < valueArray.length(); i++ ) { String stringJson = valueArray.getString(i); switch ( dataColumn.getColumnType() ) { case DATE: values.add( parseDateValue(stringJson)); break; case NUMBER: values.add( parseNumberValue(stringJson)); break; case LABEL: values.add(stringJson); break; case TEXT: values.add(stringJson); break; } } } }
@Override public Interval getInterval(String columnId, int row) { if (lastLookedUpDataSet == null) { return null; } DataColumn column = lastLookedUpDataSet.getColumnById(columnId); if (column == null) { return null; } // Get the target value List values = column.getValues(); Object value = row < values.size() ? values.get(row) : null; if (value == null) { return null; } Interval result = new Interval(value.toString(), row); result.setType(column.getIntervalType()); result.setMinValue(column.getMinValue()); result.setMaxValue(column.getMaxValue()); return result; }
public IntervalList build(DataColumn dataColumn) { ColumnGroup columnGroup = dataColumn.getColumnGroup(); Date minDate = (Date) dataColumn.getMinValue(); Date maxDate = (Date) dataColumn.getMaxValue(); return results; DateIntervalType intervalType = DateIntervalType.getByName(dataColumn.getIntervalType()); if (intervalType == null) { intervalType = DateIntervalType.YEAR;
private DataSet _filterDataSet(DataSet dataSet, List<Integer> rows) { DataSet result = DataSetFactory.newEmptyDataSet(); for (DataColumn column : dataSet.getColumns()) { DataColumn sortedColumn = column.cloneEmpty(); SortedList sortedValues = new SortedList(column.getValues(), rows); sortedColumn.setValues(sortedValues); result.addColumn(sortedColumn); } return result; }
public static Date parseDate(DataColumn dateColumn, Object date) throws Exception { DateIntervalType type = DateIntervalType.getByName(dateColumn.getIntervalType()); GroupStrategy strategy = dateColumn.getColumnGroup().getStrategy(); return parseDate(type, strategy, date); }
public IntervalList build(DataColumn dataColumn) { ColumnGroup columnGroup = dataColumn.getColumnGroup(); return _build(columnGroup); }
.buildLookup()); String intervalType = result.getColumnByIndex(0).getIntervalType(); assertThat(intervalType).isNotEmpty(); assertThat(DateIntervalType.getByName(intervalType)).isEqualTo(DateIntervalType.MONTH);
public DataSetImpl cloneEmpty() { DataSetImpl other = new DataSetImpl(); for (int i=0; i<columns.size(); i++) { DataColumn column = columns.get(i); DataColumn otherCol = column.cloneEmpty(); other.addColumn(otherCol); } return other; }
public static ColumnSettings cloneWithDefaults(ColumnSettings columnSettings, DataColumn column) { ColumnSettings clone = columnSettings == null ? new ColumnSettings(column.getId()) : columnSettings.cloneInstance(); ColumnType columnType = column.getColumnType(); ColumnGroup columnGroup = column.getColumnGroup(); DateIntervalType intervalType = DateIntervalType.getByName(column.getIntervalType()); clone.columnName = column.getId();