package com.revolsys.swing.map.layer.record.style.panel; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.List; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; public class DashListCellRenderer extends DefaultListCellRenderer { private static final long serialVersionUID = 3249988648052455831L; private List<Double> dash; @SuppressWarnings("unchecked") @Override public Component getListCellRendererComponent(final JList<?> list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); setText(null); this.dash = (List<Double>)value; setPreferredSize(new Dimension(100, 10)); return this; } @Override public void paint(final Graphics g) { super.paint(g); g.setColor(Color.BLACK); float[] dash; if (this.dash == null) { dash = null; } else { dash = new float[this.dash.size()]; for (int i = 0; i < dash.length; i++) { final float f = this.dash.get(i).floatValue(); dash[i] = f; } } final Graphics2D g2 = (Graphics2D)g; g2.setStroke(new BasicStroke(1, 0, 0, 1, dash, 0)); final int y = getHeight() / 2; g.drawLine(0, y, getWidth(), y); } }