Beispiel #1
0
  public Component getTableCellRendererComponent(
      JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    setText(null);
    setIcon(((Boolean) value).booleanValue() ? trueIcon : falseIcon);

    return this;
  }
Beispiel #2
0
    /** Returns the cell renderer component. */
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean selected, boolean focused, int row, int column) {
      setForeground(null);
      setBackground(null);

      setRenderer(row, column);
      super.getTableCellRendererComponent(table, value, selected, focused, row, column);

      return this;
    }
 @Override
 public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
   super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
   String str = Objects.toString(value, "");
   if (highlighter.isHighlightableCell(row, column)) {
     setText("<html><u>" + str);
     setForeground(isSelected ? table.getSelectionForeground() : HIGHLIGHT);
     setBackground(isSelected ? table.getSelectionBackground().darker() : table.getBackground());
   } else {
     setText(str);
     setForeground(isSelected ? table.getSelectionForeground() : table.getForeground());
     setBackground(isSelected ? table.getSelectionBackground() : table.getBackground());
   }
   return this;
 }
 public Component getTableCellRendererComponent(
     JTable table, Object value, boolean selected, boolean focused, int row, int column) {
   super.getTableCellRendererComponent(table, value, selected, focused, row, column);
   if (column == 0 || column == 6) { // Week-end
     setBackground(new Color(255, 220, 220));
   } else { // Week
     setBackground(new Color(255, 255, 255));
   }
   if (value != null) {
     if (Integer.parseInt(value.toString()) == rday
         && currentMonth == rmonth
         && currentYear == ryear) { // Today
       setBackground(new Color(220, 220, 255));
     }
   }
   setBorder(null);
   setForeground(Color.black);
   return this;
 }
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean selected, boolean focused, int row, int column) {
      setEnabled(table == null || table.isEnabled());

      if (column == 0 || column == 1) {
        setHorizontalAlignment(SwingConstants.CENTER);
        setForeground(null);
        setBackground(null);
      } else {
        setHorizontalAlignment(SwingConstants.RIGHT);
        for (int i = 0; i < highlightIndex.size(); i++) {
          if (row == ((Integer) highlightIndex.elementAt(i)).intValue()) {
            setForeground(Color.blue);
            break;
          } else setForeground(null);
        }
        if (row == flashIndex) {
          setBackground(Color.orange);
        } else setBackground(null);
      }
      super.getTableCellRendererComponent(table, value, selected, focused, row, column);

      return this;
    }
Beispiel #6
0
  /**
   * Renders a table cell in the main JTable. As a TableCellRenderer, we have to implement this
   * method, but we use it to colour different types of matches in different ways. Remember that
   * this is run every time a cell is displayed on the screen, so it needs to be as fast as can be.
   *
   * @param table The table which needs rendering.
   * @param value The object which needs rendering. For now, this can only be a Name object, but
   *     later on we might colour different types of cells in different ways.
   * @param isSelected Is this cell selected, i.e. is the row selected?
   * @param hasFocus Is this cell focused, i.e. is this individual cell selected?
   * @param row The row coordinate of this cell.
   * @param column The column coordinate of this cell.
   * @return A component representing this cell.
   */
  @Override
  public Component getTableCellRendererComponent(
      JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    // TODO: Check if we can get a saving out of this by just rendering a JLabel/JTextField
    // directly.
    Component c =
        defTableCellRenderer.getTableCellRendererComponent(
            table, value, isSelected, hasFocus, row, column);

    // Set all backgrounds to white.
    c.setBackground(Color.WHITE);

    if (value == null) {
      // Null values look null-ish.
      c.setBackground(COLOR_NULL);
      return c;

    } else if (hasFocus) {
      // ANY cell with focus should look focussed.
      c.setBackground(COLOR_FOCUS);
      return c;

    } else if (Name.class.isAssignableFrom(value.getClass())) {
      // Aha, a Name! Color it special.
      Name name = (Name) value;
      int str_length = name.toString().length();

      if (currentMatch == null) {
        // No current match? Then just colour blank cells blank,
        // and unmatched name colours special so people know that
        // they have been recognized as names.

        if (str_length == 0) {
          c.setBackground(COLOR_BLANK_CELL);
        } else {
          c.setBackground(COLOR_NAME_UNMATCHED);
        }
      } else {
        // So which RowIndex is the match against?
        RowIndex against = currentMatch.getAgainst();

        // System.err.println("Checking against: " + against);

        if (str_length == 0) {
          // Mark blank cells as such.
          c.setBackground(COLOR_BLANK_CELL);
        } else if (against.hasName(name)) {
          // Perfect match!
          c.setBackground(COLOR_NAME_FULL_MATCH);
        } else if (against.hasName(name.getGenus())) {
          // Genus-match.
          c.setBackground(COLOR_NAME_GENUS_MATCH);
        } else {
          // No match!
          c.setBackground(COLOR_NAME_NO_MATCH);
        }
      }

    } else {
      // Not a name? Note that Strings will NOT make it here: we don't
      // push Strings through this. So this is really just for later.
      c.setBackground(COLOR_NULL);
    }

    // If the row is selected, make it darker.
    if (isSelected) c.setBackground(c.getBackground().darker());

    return c;
  }