public static void collectionPropertyToTableModelRows(CollectionProperty prop, PowerTableModel model, Class[] columnClasses) { model.clearData(); for (int rowN = 0; rowN < prop.size(); rowN++) { ArrayList<StringProperty> rowStrings = (ArrayList<StringProperty>) prop.get(rowN).getObjectValue(); ArrayList<Object> rowObject = new ArrayList<>(rowStrings.size()); for (int i = 0; i < columnClasses.length && i < rowStrings.size(); i++) { rowObject.add(convertToClass(rowStrings.get(i), columnClasses[i])); } //for now work only if new fields are added at the end... //needed for retro compatibility if new fields added if (rowObject.size() < columnClasses.length) { for (int i = rowObject.size(); i < columnClasses.length; i++) { rowObject.add(new Object()); } } model.addRow(rowObject.toArray()); } model.fireTableDataChanged(); }
public static void collectionPropertyToTableModelRows(CollectionProperty prop, PowerTableModel model, Class[] columnClasses) { model.clearData(); for (int rowN = 0; rowN < prop.size(); rowN++) { ArrayList<StringProperty> rowStrings = (ArrayList<StringProperty>) prop.get(rowN).getObjectValue(); ArrayList<Object> rowObject = new ArrayList<>(rowStrings.size()); for (int i = 0; i < columnClasses.length && i < rowStrings.size(); i++) { rowObject.add(convertToClass(rowStrings.get(i), columnClasses[i])); } //for now work only if new fields are added at the end... //needed for retro compatibility if new fields added if (rowObject.size() < columnClasses.length) { for (int i = rowObject.size(); i < columnClasses.length; i++) { rowObject.add(new Object()); } } model.addRow(rowObject.toArray()); } model.fireTableDataChanged(); }