1 19 20 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor.border; 21 22 import java.awt.Color ; 23 import java.awt.GradientPaint ; 24 import java.awt.Graphics2D ; 25 import java.awt.Insets ; 26 import java.awt.Paint ; 27 import java.awt.Rectangle ; 28 import org.netbeans.api.visual.border.Border; 29 30 34 public class GradientFillBorder implements Border { 35 36 private Insets borderWidth; 37 private Insets padding; 38 39 private Color borderColor; 40 private Color gradientTopColor; 41 private Color gradientBottomColor; 42 43 44 public GradientFillBorder(int vBorderWidth, int hBorderWidth, 45 int vPadding, int hPadding, Color borderColor, 46 Color gradientTopColor, Color gradientBottomColor) 47 { 48 this.borderWidth = new Insets (vBorderWidth, hBorderWidth, 49 vBorderWidth, hBorderWidth); 50 this.padding = new Insets (vPadding, hPadding, vPadding, hPadding); 51 52 this.borderColor = borderColor; 53 this.gradientTopColor = gradientTopColor; 54 this.gradientBottomColor = gradientBottomColor; 55 } 56 57 58 public GradientFillBorder(Insets borderWidth, Insets padding, 59 Color borderColor, Color gradientTopColor, 60 Color gradientBottomColor) 61 { 62 this.borderWidth = (Insets ) borderWidth.clone(); 63 this.padding = (Insets ) padding.clone(); 64 65 this.borderColor = borderColor; 66 this.gradientTopColor = gradientTopColor; 67 this.gradientBottomColor = gradientBottomColor; 68 } 69 70 71 public Insets getInsets() { 72 return new Insets ( 73 borderWidth.top + padding.top, 74 borderWidth.left + padding.left, 75 borderWidth.bottom + padding.bottom, 76 borderWidth.right + padding.right); 77 } 78 79 80 public void paint(Graphics2D g2, Rectangle rect) { 81 Paint oldPaint = g2.getPaint(); 82 83 if (borderColor != null) { 84 g2.setPaint(borderColor); 85 g2.fill(rect); 86 } 87 88 if (gradientTopColor != null && gradientBottomColor != null) { 89 int y1 = rect.y + borderWidth.top; 90 int y2 = rect.y + rect.height - borderWidth.bottom; 91 92 93 g2.setPaint(new GradientPaint (0, y1, gradientTopColor, 94 0, y2, gradientBottomColor, false)); 95 g2.fillRect(rect.x + borderWidth.left, y1, 96 rect.width - borderWidth.left - borderWidth.right, 97 y2 - y1); 98 } 99 100 g2.setPaint(oldPaint); 101 } 102 103 104 public boolean isOpaque() { 105 return true; 106 } 107 } 108 | Popular Tags |