/* * Created on Aug 26, 2004 @ Erasmus University Rotterdam Copyright (c) Delft * University of Technology */ package nl.tudelft.simulation.dsol.swing.introspection.mapping; import java.awt.Component; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; /** * Renders Collection values in a human-readable manner. *

* Copyright (c) 2002-2022 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See * for project information https://simulation.tudelft.nl. The DSOL * project is distributed under a three-clause BSD-style license, which can be found at * * https://simulation.tudelft.nl/dsol/3.0/license.html. *

* @author Peter Jacobs. * @author Alexander Verbraeck. * @author Niels Lang. */ public class CollectionRenderer extends DefaultTableCellRenderer { /** */ private static final long serialVersionUID = 20140831L; /** {@inheritDoc} */ @Override public Component getTableCellRendererComponent(final JTable table, final Object value, final boolean isSelected, final boolean hasFocus, final int row, final int column) { List coll = new ArrayList((Collection) value); StringBuilder content = new StringBuilder(); content.append("Collection of "); if (coll.size() > 0) { content.append(getShortName(coll.get(0).getClass())); } else { content.append("?"); } content.append(": "); for (int i = 0; i < coll.size(); i++) { if (coll.get(i) == null) { content.append("null; "); } else { content.append(coll.get(i).toString() + "; "); } } return new JLabel(content.toString()); } /** * Returns the short name of a class. * @param clasz Class<?>; the class * @return the short name */ private static String getShortName(final Class clasz) { String name = clasz.getName(); return name.substring(name.lastIndexOf('.') + 1); } }