示例#1
0
    public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {
      if (MetalLookAndFeel.usingOcean()) {
        paintOceanBorder(c, g, x, y, w, h);
        return;
      }
      AbstractButton button = (AbstractButton) c;
      ButtonModel model = button.getModel();

      if (model.isEnabled()) {
        boolean isPressed = model.isPressed() && model.isArmed();
        boolean isDefault = (button instanceof JButton && ((JButton) button).isDefaultButton());

        if (isPressed && isDefault) {
          MetalUtils.drawDefaultButtonPressedBorder(g, x, y, w, h);
        } else if (isPressed) {
          MetalUtils.drawPressed3DBorder(g, x, y, w, h);
        } else if (isDefault) {
          MetalUtils.drawDefaultButtonBorder(g, x, y, w, h, false);
        } else {
          MetalUtils.drawButtonBorder(g, x, y, w, h, false);
        }
      } else { // disabled state
        MetalUtils.drawDisabledBorder(g, x, y, w - 1, h - 1);
      }
    }
示例#2
0
 public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {
   if (c.isEnabled()) {
     MetalUtils.drawFlush3DBorder(g, x, y, w, h);
   } else {
     MetalUtils.drawDisabledBorder(g, x, y, w, h);
   }
 }
示例#3
0
    public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {

      if (!(c instanceof JTextComponent)) {
        // special case for non-text components (bug ID 4144840)
        if (c.isEnabled()) {
          MetalUtils.drawFlush3DBorder(g, x, y, w, h);
        } else {
          MetalUtils.drawDisabledBorder(g, x, y, w, h);
        }
        return;
      }

      if (c.isEnabled() && ((JTextComponent) c).isEditable()) {
        MetalUtils.drawFlush3DBorder(g, x, y, w, h);
      } else {
        MetalUtils.drawDisabledBorder(g, x, y, w, h);
      }
    }
示例#4
0
 public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {
   AbstractButton button = (AbstractButton) c;
   ButtonModel model = button.getModel();
   if (MetalLookAndFeel.usingOcean()) {
     if (model.isArmed() || !button.isEnabled()) {
       super.paintBorder(c, g, x, y, w, h);
     } else {
       g.setColor(MetalLookAndFeel.getControlDarkShadow());
       g.drawRect(0, 0, w - 1, h - 1);
     }
     return;
   }
   if (!c.isEnabled()) {
     MetalUtils.drawDisabledBorder(g, x, y, w - 1, h - 1);
   } else {
     if (model.isPressed() && model.isArmed()) {
       MetalUtils.drawPressed3DBorder(g, x, y, w, h);
     } else if (model.isSelected()) {
       MetalUtils.drawDark3DBorder(g, x, y, w, h);
     } else {
       MetalUtils.drawFlush3DBorder(g, x, y, w, h);
     }
   }
 }
  public void paint(Graphics g) {
    boolean leftToRight = MetalUtils.isLeftToRight(this);
    boolean isEnabled = getParent().isEnabled();

    Color arrowColor =
        isEnabled ? MetalLookAndFeel.getControlInfo() : MetalLookAndFeel.getControlDisabled();
    boolean isPressed = getModel().isPressed();
    int width = getWidth();
    int height = getHeight();
    int w = width;
    int h = height;
    int arrowHeight = (height + 1) / 4;
    int arrowWidth = (height + 1) / 2;

    if (isPressed) {
      g.setColor(MetalLookAndFeel.getControlShadow());
    } else {
      g.setColor(getBackground());
    }

    g.fillRect(0, 0, width, height);

    if (getDirection() == NORTH) {
      if (!isFreeStanding) {
        height += 1;
        g.translate(0, -1);
        width += 2;
        if (!leftToRight) {
          g.translate(-1, 0);
        }
      }

      // Draw the arrow
      g.setColor(arrowColor);
      int startY = ((h + 1) - arrowHeight) / 2;
      int startX = (w / 2);
      //                  System.out.println( "startX :" + startX + " startY :"+startY);
      for (int line = 0; line < arrowHeight; line++) {
        g.drawLine(startX - line, startY + line, startX + line + 1, startY + line);
      }
      /*      g.drawLine( 7, 6, 8, 6 );
      g.drawLine( 6, 7, 9, 7 );
      g.drawLine( 5, 8, 10, 8 );
      g.drawLine( 4, 9, 11, 9 );*/

      if (isEnabled) {
        g.setColor(highlightColor);

        if (!isPressed) {
          g.drawLine(1, 1, width - 3, 1);
          g.drawLine(1, 1, 1, height - 1);
        }

        g.drawLine(width - 1, 1, width - 1, height - 1);

        g.setColor(shadowColor);
        g.drawLine(0, 0, width - 2, 0);
        g.drawLine(0, 0, 0, height - 1);
        g.drawLine(width - 2, 2, width - 2, height - 1);
      } else {
        MetalUtils.drawDisabledBorder(g, 0, 0, width, height + 1);
      }
      if (!isFreeStanding) {
        height -= 1;
        g.translate(0, 1);
        width -= 2;
        if (!leftToRight) {
          g.translate(1, 0);
        }
      }
    } else if (getDirection() == SOUTH) {
      if (!isFreeStanding) {
        height += 1;
        width += 2;
        if (!leftToRight) {
          g.translate(-1, 0);
        }
      }

      // Draw the arrow
      g.setColor(arrowColor);

      int startY = (((h + 1) - arrowHeight) / 2) + arrowHeight - 1;
      int startX = (w / 2);

      //          System.out.println( "startX2 :" + startX + " startY2 :"+startY);

      for (int line = 0; line < arrowHeight; line++) {
        g.drawLine(startX - line, startY - line, startX + line + 1, startY - line);
      }

      /*      g.drawLine( 4, 5, 11, 5 );
      g.drawLine( 5, 6, 10, 6 );
      g.drawLine( 6, 7, 9, 7 );
      g.drawLine( 7, 8, 8, 8 ); */

      if (isEnabled) {
        g.setColor(highlightColor);

        if (!isPressed) {
          g.drawLine(1, 0, width - 3, 0);
          g.drawLine(1, 0, 1, height - 3);
        }

        g.drawLine(1, height - 1, width - 1, height - 1);
        g.drawLine(width - 1, 0, width - 1, height - 1);

        g.setColor(shadowColor);
        g.drawLine(0, 0, 0, height - 2);
        g.drawLine(width - 2, 0, width - 2, height - 2);
        g.drawLine(2, height - 2, width - 2, height - 2);
      } else {
        MetalUtils.drawDisabledBorder(g, 0, -1, width, height + 1);
      }

      if (!isFreeStanding) {
        height -= 1;
        width -= 2;
        if (!leftToRight) {
          g.translate(1, 0);
        }
      }
    } else if (getDirection() == EAST) {
      if (!isFreeStanding) {
        height += 2;
        width += 1;
      }

      // Draw the arrow
      g.setColor(arrowColor);

      int startX = (((w + 1) - arrowHeight) / 2) + arrowHeight - 1;
      int startY = (h / 2);

      // System.out.println( "startX2 :" + startX + " startY2 :"+startY);

      for (int line = 0; line < arrowHeight; line++) {
        g.drawLine(startX - line, startY - line, startX - line, startY + line + 1);
      }

      /*              g.drawLine( 5, 4, 5, 11 );
      g.drawLine( 6, 5, 6, 10 );
      g.drawLine( 7, 6, 7, 9 );
      g.drawLine( 8, 7, 8, 8 );*/

      if (isEnabled) {
        g.setColor(highlightColor);

        if (!isPressed) {
          g.drawLine(0, 1, width - 3, 1);
          g.drawLine(0, 1, 0, height - 3);
        }

        g.drawLine(width - 1, 1, width - 1, height - 1);
        g.drawLine(0, height - 1, width - 1, height - 1);

        g.setColor(shadowColor);
        g.drawLine(0, 0, width - 2, 0);
        g.drawLine(width - 2, 2, width - 2, height - 2);
        g.drawLine(0, height - 2, width - 2, height - 2);
      } else {
        MetalUtils.drawDisabledBorder(g, -1, 0, width + 1, height);
      }
      if (!isFreeStanding) {
        height -= 2;
        width -= 1;
      }
    } else if (getDirection() == WEST) {
      if (!isFreeStanding) {
        height += 2;
        width += 1;
        g.translate(-1, 0);
      }

      // Draw the arrow
      g.setColor(arrowColor);

      int startX = (((w + 1) - arrowHeight) / 2);
      int startY = (h / 2);

      for (int line = 0; line < arrowHeight; line++) {
        g.drawLine(startX + line, startY - line, startX + line, startY + line + 1);
      }

      /*      g.drawLine( 6, 7, 6, 8 );
      g.drawLine( 7, 6, 7, 9 );
      g.drawLine( 8, 5, 8, 10 );
      g.drawLine( 9, 4, 9, 11 );*/

      if (isEnabled) {
        g.setColor(highlightColor);

        if (!isPressed) {
          g.drawLine(1, 1, width - 1, 1);
          g.drawLine(1, 1, 1, height - 3);
        }

        g.drawLine(1, height - 1, width - 1, height - 1);

        g.setColor(shadowColor);
        g.drawLine(0, 0, width - 1, 0);
        g.drawLine(0, 0, 0, height - 2);
        g.drawLine(2, height - 2, width - 1, height - 2);
      } else {
        MetalUtils.drawDisabledBorder(g, 0, 0, width + 1, height);
      }

      if (!isFreeStanding) {
        height -= 2;
        width -= 1;
        g.translate(1, 0);
      }
    }
  }