public void update(Graphics g, JComponent c)
  {
    boolean divider = c.getName() == null ? false :
        c.getName().equals("dividerButton");
    if(divider)
    {
      return;
    }

    if(c.getHeight() > 255 * 2)
    {
      return; // exceedingly high component not supported
    }
    Border bo = null;
    int rim = 1;
    int left = rim;
    int top = rim;
    int right = rim;
    int bottom = rim;
    if(bo != null)
    {
      Insets ins = bo.getBorderInsets(c);
      left = ins.left;
      top = ins.top;
      right = ins.right;
      bottom = ins.bottom;
    }
    g.clearRect(0, 0, c.getSize().width, c.getSize().height);
    for(int i = top; i < c.getHeight() - bottom; i++)
    {
      int val = 255 - i * 2;
      if(val < 0)
        val = 0;
      if(val > 255)
        val = 255;
      g.setColor(new Color(val, val, val));
      g.drawLine(left, i, c.getWidth() - right, i);
    }
    if(bo == null)
    {
      drawBorder(g, c);
    }
    else
    {
      bo.paintBorder(c, g, 0, 0, c.getWidth(), c.getHeight());
    }
    paint(g, c);
  }