public void paintPalette(Graphics g) {
    boolean leftToRight = MetalUtils.isLeftToRight(frame);

    int width = getWidth();
    int height = getHeight();

    if (paletteBumps == null) {
      paletteBumps =
          new MetalBumps(
              0,
              0,
              MetalLookAndFeel.getPrimaryControlHighlight(),
              MetalLookAndFeel.getPrimaryControlInfo(),
              MetalLookAndFeel.getPrimaryControlShadow());
    }

    Color background = MetalLookAndFeel.getPrimaryControlShadow();
    Color darkShadow = MetalLookAndFeel.getPrimaryControlDarkShadow();

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

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

    int xOffset = leftToRight ? 4 : buttonsWidth + 4;
    int bumpLength = width - buttonsWidth - 2 * 4;
    int bumpHeight = getHeight() - 4;
    paletteBumps.setBumpArea(bumpLength, bumpHeight);
    paletteBumps.paintIcon(this, g, xOffset, 2);
  }
예제 #2
0
    public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {

      Color background;
      Color highlight;
      Color shadow;

      Window window = SwingUtilities.getWindowAncestor(c);
      if (window != null && window.isActive()) {
        background = MetalLookAndFeel.getPrimaryControlDarkShadow();
        highlight = MetalLookAndFeel.getPrimaryControlShadow();
        shadow = MetalLookAndFeel.getPrimaryControlInfo();
      } else {
        background = MetalLookAndFeel.getControlDarkShadow();
        highlight = MetalLookAndFeel.getControlShadow();
        shadow = MetalLookAndFeel.getControlInfo();
      }

      g.setColor(background);
      // Draw outermost lines
      g.drawLine(x + 1, y + 0, x + w - 2, y + 0);
      g.drawLine(x + 0, y + 1, x + 0, y + h - 2);
      g.drawLine(x + w - 1, y + 1, x + w - 1, y + h - 2);
      g.drawLine(x + 1, y + h - 1, x + w - 2, y + h - 1);

      // Draw the bulk of the border
      for (int i = 1; i < 5; i++) {
        g.drawRect(x + i, y + i, w - (i * 2) - 1, h - (i * 2) - 1);
      }

      if ((window instanceof Frame) && ((Frame) window).isResizable()) {
        g.setColor(highlight);
        // Draw the Long highlight lines
        g.drawLine(corner + 1, 3, w - corner, 3);
        g.drawLine(3, corner + 1, 3, h - corner);
        g.drawLine(w - 2, corner + 1, w - 2, h - corner);
        g.drawLine(corner + 1, h - 2, w - corner, h - 2);

        g.setColor(shadow);
        // Draw the Long shadow lines
        g.drawLine(corner, 2, w - corner - 1, 2);
        g.drawLine(2, corner, 2, h - corner - 1);
        g.drawLine(w - 3, corner, w - 3, h - corner - 1);
        g.drawLine(corner, h - 3, w - corner - 1, h - 3);
      }
    }
예제 #3
0
    public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {

      Color background;
      Color highlight;
      Color shadow;

      if (c instanceof JInternalFrame && ((JInternalFrame) c).isSelected()) {
        background = MetalLookAndFeel.getPrimaryControlDarkShadow();
        highlight = MetalLookAndFeel.getPrimaryControlShadow();
        shadow = MetalLookAndFeel.getPrimaryControlInfo();
      } else {
        background = MetalLookAndFeel.getControlDarkShadow();
        highlight = MetalLookAndFeel.getControlShadow();
        shadow = MetalLookAndFeel.getControlInfo();
      }

      g.setColor(background);
      // Draw outermost lines
      g.drawLine(1, 0, w - 2, 0);
      g.drawLine(0, 1, 0, h - 2);
      g.drawLine(w - 1, 1, w - 1, h - 2);
      g.drawLine(1, h - 1, w - 2, h - 1);

      // Draw the bulk of the border
      for (int i = 1; i < 5; i++) {
        g.drawRect(x + i, y + i, w - (i * 2) - 1, h - (i * 2) - 1);
      }

      if (c instanceof JInternalFrame && ((JInternalFrame) c).isResizable()) {
        g.setColor(highlight);
        // Draw the Long highlight lines
        g.drawLine(corner + 1, 3, w - corner, 3);
        g.drawLine(3, corner + 1, 3, h - corner);
        g.drawLine(w - 2, corner + 1, w - 2, h - corner);
        g.drawLine(corner + 1, h - 2, w - corner, h - 2);

        g.setColor(shadow);
        // Draw the Long shadow lines
        g.drawLine(corner, 2, w - corner - 1, 2);
        g.drawLine(2, corner, 2, h - corner - 1);
        g.drawLine(w - 3, corner, w - 3, h - corner - 1);
        g.drawLine(corner, h - 3, w - corner - 1, h - 3);
      }
    }
  protected void createButtons() {
    super.createButtons();

    Boolean paintActive = frame.isSelected() ? Boolean.TRUE : Boolean.FALSE;
    iconButton.putClientProperty("paintActive", paintActive);
    iconButton.setBorder(handyEmptyBorder);

    maxButton.putClientProperty("paintActive", paintActive);
    maxButton.setBorder(handyEmptyBorder);

    closeButton.putClientProperty("paintActive", paintActive);
    closeButton.setBorder(handyEmptyBorder);

    // The palette close icon isn't opaque while the regular close icon is.
    // This makes sure palette close buttons have the right background.
    closeButton.setBackground(MetalLookAndFeel.getPrimaryControlShadow());

    if (MetalLookAndFeel.usingOcean()) {
      iconButton.setContentAreaFilled(false);
      maxButton.setContentAreaFilled(false);
      closeButton.setContentAreaFilled(false);
    }
  }
예제 #5
0
  /**
   * Paints the track along which the thumb control moves.
   *
   * @param g the graphics device.
   */
  public void paintTrack(Graphics g) {
    Color shadowColor = MetalLookAndFeel.getControlShadow();
    if (slider.getOrientation() == JSlider.HORIZONTAL) {
      int trackX = trackRect.x;
      int trackY = trackRect.y + (trackRect.height - getTrackWidth()) / 2;
      int trackW = trackRect.width;
      int trackH = getTrackWidth();

      // draw border
      if (slider.isEnabled())
        BasicGraphicsUtils.drawEtchedRect(
            g,
            trackX,
            trackY,
            trackW,
            trackH,
            darkShadowColor,
            shadowColor,
            darkShadowColor,
            highlightColor);
      else {
        g.setColor(MetalLookAndFeel.getControlShadow());
        g.drawRect(trackX, trackY, trackW - 2, trackH - 2);
      }

      // fill track (if required)
      if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme) {
        if (slider.isEnabled()) {
          int xPos = xPositionForValue(slider.getValue());
          int x = slider.getInverted() ? xPos : trackRect.x;
          int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x;
          g.setColor(MetalLookAndFeel.getWhite());
          g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1);
          g.setColor(UIManager.getColor("Slider.altTrackColor"));
          g.drawLine(x + 1, trackY + 2, x + w - 3, trackY + 2);
          g.setColor(MetalLookAndFeel.getControlShadow());
          g.drawLine(x + 1, trackY + 3, x + w - 3, trackY + 3);
          g.setColor(MetalLookAndFeel.getPrimaryControlShadow());
          g.drawLine(x + 1, trackY + 4, x + w - 3, trackY + 4);
        }
      } else if (filledSlider) {
        int xPos = xPositionForValue(slider.getValue());
        int x = slider.getInverted() ? xPos : trackRect.x;
        int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x;
        g.setColor(MetalLookAndFeel.getControlShadow());
        g.fillRect(x + 1, trackY + 1, w - 3, getTrackWidth() - 3);
        if (slider.isEnabled()) {
          g.setColor(MetalLookAndFeel.getControl());
          g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1);
          g.drawLine(x + 1, trackY + 1, x + 1, trackY + getTrackWidth() - 3);
        }
      }
    } else {
      int trackX = trackRect.x + (trackRect.width - getTrackWidth()) / 2;
      int trackY = trackRect.y;
      int trackW = getTrackWidth();
      int trackH = trackRect.height;
      if (slider.isEnabled())
        BasicGraphicsUtils.drawEtchedRect(
            g,
            trackX,
            trackY,
            trackW,
            trackH,
            darkShadowColor,
            shadowColor,
            darkShadowColor,
            highlightColor);
      else {
        g.setColor(MetalLookAndFeel.getControlShadow());
        g.drawRect(trackX, trackY, trackW - 2, trackH - 2);
      }

      // Fill track if necessary.
      if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme) {
        if (slider.isEnabled()) {
          int yPos = yPositionForValue(slider.getValue());
          int y = slider.getInverted() ? trackY : yPos;
          int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos;

          g.setColor(MetalLookAndFeel.getWhite());
          g.drawLine(trackX + 1, y + 1, trackX + 1, y + h - 3);
          g.setColor(UIManager.getColor("Slider.altTrackColor"));
          g.drawLine(trackX + 2, y + 1, trackX + 2, y + h - 3);
          g.setColor(MetalLookAndFeel.getControlShadow());
          g.drawLine(trackX + 3, y + 1, trackX + 3, y + h - 3);
          g.setColor(MetalLookAndFeel.getPrimaryControlShadow());
          g.drawLine(trackX + 4, y + 1, trackX + 4, y + h - 3);
        }
      } else if (filledSlider) {
        int yPos = yPositionForValue(slider.getValue());
        int y = slider.getInverted() ? trackY : yPos;
        int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos;
        g.setColor(MetalLookAndFeel.getControlShadow());
        g.fillRect(trackX + 1, y + 1, getTrackWidth() - 3, h - 3);
        if (slider.isEnabled()) {
          g.setColor(MetalLookAndFeel.getControl());
          g.drawLine(trackX + 1, y + 1, trackX + trackW - 3, y + 1);
          g.drawLine(trackX + 1, y + 1, trackX + 1, y + h - 3);
        }
      }
    }
  }
예제 #6
0
 protected Color getActiveHighlight() {
   return MetalLookAndFeel.getPrimaryControlShadow();
 }