KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > swing > plaf > gtk > PartialEdgeBorder


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.swing.plaf.gtk;
21
22 import javax.swing.*;
23 import javax.swing.border.Border JavaDoc;
24 import java.awt.*;
25 import org.netbeans.swing.plaf.util.UIUtils;
26
27 /**
28  * Drop shadow extension for right edges of tab displayers
29  *
30  * @author Tim Boudreau
31  */

32 public class PartialEdgeBorder implements Border JavaDoc {
33     private Insets ins;
34     /** Creates a new instance of PartialEdgeBorder */
35     public PartialEdgeBorder(int width) {
36         ins = new Insets (0,0,0,width);
37     }
38
39     public Insets getBorderInsets(Component c) {
40         return ins;
41     }
42     
43     public boolean isBorderOpaque() {
44         return false;
45     }
46     
47     public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
48         Color ctrl = UIManager.getColor ("control"); //NOI18N
49
Color base = UIManager.getColor("controlShadow");
50         Color curr;
51         GradientPaint gp = UIUtils.getGradientPaint (x + width - ins.right, y + (height / 2), ctrl, x + width - ins.right, y + height, base, false);
52         ((Graphics2D) g).setPaint (gp);
53         g.drawLine (x + width - ins.right, y + (height / 2), x + width - ins.right, y + height);
54         for (int i=1; i < ins.right-1; i++) {
55             curr = AdaptiveMatteBorder.colorTowards (base, ctrl, ins.right, i + 1);
56             int xpos = x + width - ins.right + i;
57             int ypos = y + (height / 3) + (i * 2);
58             gp = UIUtils.getGradientPaint(xpos, ypos, ctrl, xpos, y + height, curr, false);
59             ((Graphics2D) g).setPaint (gp);
60             g.drawLine (xpos, ypos, xpos, y + height);
61         }
62     }
63     
64 }
65
Popular Tags