Skip to content
Snippets Groups Projects
Commit 3974420a authored by felmer's avatar felmer
Browse files

set data set type of column for numbers

SVN: 18175
parent 131a6276
No related branches found
No related tags found
No related merge requests found
......@@ -151,7 +151,7 @@ public class TypedTableModelBuilder<T extends IsSerializable>
*/
public IColumnMetaData addColumn(String id)
{
Column column = createColumn(null, id);
Column column = createColumn(null, null, id);
String id1 = column.getHeader().getId();
Column oldColumn = columns.put(id1, column);
if (oldColumn != null)
......@@ -187,7 +187,7 @@ public class TypedTableModelBuilder<T extends IsSerializable>
public void addStringValueToColumn(String title, String id, String valueOrNull)
{
StringTableCell value = valueOrNull == null ? EMPTY_CELL : new StringTableCell(valueOrNull);
addValueToColumn(title, id, value);
addValueToColumn(title, DataTypeCode.VARCHAR, id, value);
}
/**
......@@ -208,7 +208,7 @@ public class TypedTableModelBuilder<T extends IsSerializable>
{
ISerializableComparable value =
valueOrNull == null ? EMPTY_CELL : new IntegerTableCell(valueOrNull);
addValueToColumn(title, id, value);
addValueToColumn(title, DataTypeCode.INTEGER, id, value);
}
/**
......@@ -229,7 +229,7 @@ public class TypedTableModelBuilder<T extends IsSerializable>
{
ISerializableComparable value =
valueOrNull == null ? EMPTY_CELL : new DoubleTableCell(valueOrNull);
addValueToColumn(title, id, value);
addValueToColumn(title, DataTypeCode.REAL, id, value);
}
/**
......@@ -237,26 +237,34 @@ public class TypedTableModelBuilder<T extends IsSerializable>
* does not exist.
*
* @param titleOrNull Title of the column. Will be ignored if the column already exists.
* @param dataTypeOrNull Data type of the column. Will be ignored if trhe column already exists.
*/
public void addValueToColumn(String titleOrNull, String id, ISerializableComparable value)
public void addValueToColumn(String titleOrNull, DataTypeCode dataTypeOrNull, String id,
ISerializableComparable value)
{
getOrCreateColumn(titleOrNull, id).insertValueAt(rowObjects.size() - 1, value);
getOrCreateColumn(titleOrNull, dataTypeOrNull, id).insertValueAt(rowObjects.size() - 1,
value);
}
private Column getOrCreateColumn(String titleOrNull, String id)
private Column getOrCreateColumn(String titleOrNull, DataTypeCode dataTypeOrNull, String id)
{
Column column = columns.get(id);
if (column == null)
{
column = createColumn(titleOrNull, id);
column = createColumn(titleOrNull, dataTypeOrNull, id);
columns.put(id, column);
}
return column;
}
private Column createColumn(String titleOrNull, String id)
private Column createColumn(String titleOrNull, DataTypeCode dataTypeOrNull, String id)
{
return new Column(createHeader(titleOrNull, id));
TableModelColumnHeader header = createHeader(titleOrNull, id);
if (dataTypeOrNull != null)
{
header.setDataType(dataTypeOrNull);
}
return new Column(header);
}
private TableModelColumnHeader createHeader(String titleOrNull, String id)
......
......@@ -87,7 +87,7 @@ public class TypedTableModelBuilderTest extends AssertJUnit
List<TableModelColumnHeader> headers = model.getHeader();
assertHeadersOrder(headers, "A");
assertEquals("Alpha", headers.get(0).getTitle());
assertEquals(null, headers.get(0).getDataType());
assertEquals(DataTypeCode.INTEGER, headers.get(0).getDataType());
List<TableModelRowWithObject<IsSerializable>> rows = model.getRows();
assertSame(object0, rows.get(0).getObjectOrNull());
assertEquals(new IntegerTableCell(42), rows.get(0).getValues().get(0));
......@@ -98,6 +98,34 @@ public class TypedTableModelBuilderTest extends AssertJUnit
assertEquals(3, rows.size());
}
@Test
public void testAddDoubleValueToColumn()
{
TypedTableModelBuilder<IsSerializable> builder = new TypedTableModelBuilder<IsSerializable>();
MockSerializable object0 = new MockSerializable();
builder.addRow(object0);
builder.addDoubleValueToColumn("Alpha", "A", 4.25);
MockSerializable object1 = new MockSerializable();
builder.addRow(object1);
builder.addDoubleValueToColumn("A", null);
builder.addRow(null);
builder.addDoubleValueToColumn("a", "A", 4711.5);
TypedTableModel<IsSerializable> model = builder.getModel();
List<TableModelColumnHeader> headers = model.getHeader();
assertHeadersOrder(headers, "A");
assertEquals("Alpha", headers.get(0).getTitle());
assertEquals(DataTypeCode.REAL, headers.get(0).getDataType());
List<TableModelRowWithObject<IsSerializable>> rows = model.getRows();
assertSame(object0, rows.get(0).getObjectOrNull());
assertEquals(new DoubleTableCell(4.25), rows.get(0).getValues().get(0));
assertSame(object1, rows.get(1).getObjectOrNull());
assertEquals(new StringTableCell(""), rows.get(1).getValues().get(0));
assertSame(null, rows.get(2).getObjectOrNull());
assertEquals(new DoubleTableCell(4711.5), rows.get(2).getValues().get(0));
assertEquals(3, rows.size());
}
@Test
public void testRowsWithEmptyCells()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment