package moviescraper.doctord.view.renderer; import java.awt.Component; import java.lang.reflect.Field; import javax.swing.DefaultListCellRenderer; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; public class MovieFieldCellRenderer implements ListCellRenderer<Field> { protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer(); @Override public Component getListCellRendererComponent(JList<? extends Field> list, Field value, int index, boolean isSelected, boolean cellHasFocus) { JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); Field entry = (Field) value; renderer.setText(formatFieldText(entry.getName())); return renderer; } /** * Transform a "aStringLikeThis" to "A String Like This" */ public static String formatFieldText(String fieldNameInCamelCase) { String formattedText = StringUtils.join(StringUtils.splitByCharacterTypeCamelCase(WordUtils.capitalize(fieldNameInCamelCase)), " "); return formattedText; } }