List of usage examples for org.apache.commons.lang3.reflect FieldUtils getAllFieldsList
public static List<Field> getAllFieldsList(final Class<?> cls)
From source file:org.objectpocket.viewer.Viewer.java
private void updateTable() { String selectedType = ((DefaultMutableTreeNode) classTree.getSelectionPath().getLastPathComponent()) .toString();//from w w w . j av a2 s .c o m String selectedObjectPocket = ((DefaultMutableTreeNode) classTree.getSelectionPath() .getPathComponent(classTree.getSelectionPath().getPathCount() - 2)).toString(); ObjectPocketImpl objectPocket = null; for (ObjectPocketImpl objectPocketImpl : objectPocketList) { if (objectPocketImpl.getSource().equals(selectedObjectPocket)) { objectPocket = objectPocketImpl; } } if (objectPocket != null) { Map<String, Object> objectMap = objectPocket.getMapForType(selectedType); try { Class<?> clazz = Class.forName(selectedType); List<Field> allFields = FieldUtils.getAllFieldsList(clazz); List<Field> fields = new ArrayList<>(); // filter fields for (Field field : allFields) { if (!Modifier.isTransient(field.getModifiers()) && !field.getName().equals("id")) { fields.add(field); } } String[] columnNames = new String[fields.size() + 2]; columnNames[0] = ""; columnNames[1] = "id"; int index = 2; for (Field f : fields) { columnNames[index] = f.getName() + "(" + f.getType().getSimpleName() + ")"; index++; } // filter objects Map<String, Object> filteredObjects = filterObjects(objectMap, fields); String[][] rowData = new String[filteredObjects.size()][columnNames.length]; index = 0; statusLabel.setText("object count: " + filteredObjects.size()); for (String key : filteredObjects.keySet()) { rowData[index][0] = "" + (index + 1); rowData[index][1] = key; for (int i = 0; i < fields.size(); i++) { Field f = fields.get(i); f.setAccessible(true); try { Object object = f.get(filteredObjects.get(key)); if (object != null) { rowData[index][2 + i] = object.toString(); } else { rowData[index][2 + i] = "null"; } } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } index++; } DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); objectTable.setModel(tableModel); viewerFrame.revalidate(); } catch (ClassNotFoundException e) { Logger.getAnonymousLogger().warning("Could not load class for type. " + selectedType); e.printStackTrace(); // --- fallback String[] columnNames = { "", "id", "data" }; String[][] rowData = new String[objectMap.size()][3]; int index = 0; for (String key : objectMap.keySet()) { rowData[index][0] = "" + (index + 1); rowData[index][1] = key; rowData[index][2] = objectMap.get(key).toString(); index++; } DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); objectTable.setModel(tableModel); viewerFrame.revalidate(); } } for (int i = 0; i < objectTable.getColumnModel().getColumnCount(); i++) { if (i == 0) { objectTable.getColumnModel().getColumn(i).setPreferredWidth(50); } else { objectTable.getColumnModel().getColumn(i).setPreferredWidth(200); } } }