public Component getTableCellRendererComponent(
      JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

    if (!initialized) {
      myPropComponent.setLabelVisible(false);
      try {
        initialized = true;
      } catch (Exception e) {
        logger.error("Error detected", e);
      }
    }
    myPropComponent.setForeground(Color.black);
    myPropComponent.hideBorder();
    myPropComponent.setOpaque(false);
    MessageTable mm = (MessageTable) table;

    String expr = getAggregateFunction(column);
    if (expr == null) {
      setupProp(mm, new Operand(null, "String", null), column);
      return myPropComponent;
    } else {
      try {
        Operand o = myComponent.getContext().evaluate(expr, myComponent, null, mm.getMessage());
        if (o == null) {
          setText("null");
          return this;
        } else {
          setupProp(mm, o, column);
          aggregateValueMap.put(new Integer(column), o);
          myPropComponent.hideBorder();
          return myPropComponent;
        }
      } catch (Exception ex) {
        logger.error("Error detected", ex);
        setForeground(Color.red);
        setText("error");
        return this;
      }
    }
  }