@Override
    public Component getTableCellRendererComponent(
        JTable table, Object object, boolean isSelected, boolean hasFocus, int row, int col) {
      String str;
      switch (col) {
        case 0:
          str = Util.timeToString((LogEntry) object);
          break;
        case 1:
          str = Util.levelToString((LogEntry) object);
          break;
        case 2:
          String message = ((LogEntry) object).getMessage();
          str = message != null ? message.split(";;")[0] : null;
          break;
        default:
          str = "N/A";
      }

      JLabel cell = new JLabel("" + str);

      if (col == 2) {
        Font font = new Font("Sans-serif", Font.BOLD, 12);
        cell.setFont(font);
      }
      cell.setOpaque(true);

      if (hasFocus) {
        cell.setBackground(GREY_SAND);
      } else if (isSelected) {
        cell.setBackground(Color.LIGHT_GRAY);
      } else if ((row % 2) == 0) {
        cell.setBackground(LIGHT_BLUE);
      } else {
        cell.setBackground(Color.WHITE);
      }

      return cell;
    }