/** * */ package icy.gui.component.renderer; import icy.math.MathUtil; import icy.type.collection.array.Array1DUtil; import icy.type.collection.array.ArrayUtil; import javax.swing.SwingConstants; import org.pushingpixels.substance.api.renderers.SubstanceDefaultTableCellRenderer; /** * @author Stephane */ public class NativeArrayTableCellRenderer extends SubstanceDefaultTableCellRenderer { /** * */ private static final long serialVersionUID = 7536618123117211456L; final boolean signed; public NativeArrayTableCellRenderer(boolean signed) { super(); this.signed = signed; setHorizontalAlignment(SwingConstants.TRAILING); } public NativeArrayTableCellRenderer() { this(true); } @Override protected void setValue(Object value) { if ((value != null) && (ArrayUtil.getDim(value) == 1)) { final int len = ArrayUtil.getLength(value); String s; if (len == 0) s = ""; else if (len == 1) s = Double.toString(MathUtil.roundSignificant(Array1DUtil.getValue(value, 0, signed), 5)); else { s = "[" + Double.toString(MathUtil.roundSignificant(Array1DUtil.getValue(value, 0, signed), 5)); for (int i = 1; i < len; i++) s += " " + MathUtil.roundSignificant(Array1DUtil.getValue(value, i, signed), 5); s += "]"; } setText(s); } else super.setValue(value); } }