@Override
    public final Component getTableCellRendererComponent(
        final JTable table,
        final Object value,
        final boolean isSelected,
        final boolean hasFocus,
        final int row,
        final int column)
    {
        if (value instanceof Program) {
            final Program program = (Program) value;
            final JPanel panel = new JPanel();
            panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
            for (final Command c : program) {
                panel.add(new JLabel(Genetic.COMMAND_ICONS.get(c)));
            }

            return panel;
        } else {
            return new JLabel(String.valueOf(value));
        }
    }