KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > base > JStatusBar


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.core.gui.base;
19
20 import java.awt.BorderLayout JavaDoc;
21 import java.awt.Color JavaDoc;
22 import java.awt.Dimension JavaDoc;
23 import java.awt.Graphics JavaDoc;
24
25 import javax.swing.JComponent JavaDoc;
26 import javax.swing.JLabel JavaDoc;
27 import javax.swing.JPanel JavaDoc;
28
29 import com.jgoodies.forms.layout.CellConstraints;
30 import com.jgoodies.forms.layout.ColumnSpec;
31 import com.jgoodies.forms.layout.FormLayout;
32
33 public class JStatusBar extends JPanel JavaDoc {
34
35     private JPanel JavaDoc contentPanel = new JPanel JavaDoc();
36
37     private FormLayout layout;
38
39     private int layoutCoordinateX = 2;
40
41     private int layoutCoordinateY = 2;
42
43     public JStatusBar() {
44
45         setLayout(new BorderLayout JavaDoc());
46         setPreferredSize(new Dimension JavaDoc(getWidth(), 23));
47
48         JLabel JavaDoc resizeIconLabel = new JLabel JavaDoc(
49                 new TriangleSquareWindowsCornerIcon());
50         resizeIconLabel.setOpaque(false);
51
52         JPanel JavaDoc rightPanel = new JPanel JavaDoc();
53         rightPanel.setOpaque(false);
54         rightPanel.add(resizeIconLabel, BorderLayout.SOUTH);
55
56         add(rightPanel, BorderLayout.EAST);
57
58         contentPanel.setOpaque(false);
59         layout = new FormLayout("2dlu, pref:grow", "3dlu, fill:10dlu, 2dlu");
60         contentPanel.setLayout(layout);
61
62         add(contentPanel, BorderLayout.CENTER);
63
64         //setBackground(new Color(236, 233, 216));
65
}
66
67     public void setMainLeftComponent(JComponent JavaDoc c) {
68         contentPanel.add(c, new CellConstraints(2, 2));
69     }
70
71     public void addRightComponent(JComponent JavaDoc c, int dialogUnits) {
72         layout.appendColumn(new ColumnSpec("2dlu"));
73         layout.appendColumn(new ColumnSpec(dialogUnits + "dlu"));
74
75         layoutCoordinateX++;
76
77         contentPanel.add(new SeparatorPanel(Color.GRAY, Color.WHITE),
78                 new CellConstraints(layoutCoordinateX, layoutCoordinateY));
79         layoutCoordinateX++;
80
81         contentPanel.add(c, new CellConstraints(layoutCoordinateX,
82                 layoutCoordinateY));
83     }
84     
85     public void addRightComponent(JComponent JavaDoc c) {
86         layout.appendColumn(new ColumnSpec("2dlu"));
87         layout.appendColumn(new ColumnSpec("default"));
88
89         layoutCoordinateX++;
90
91         contentPanel.add(new SeparatorPanel(Color.GRAY, Color.WHITE),
92                 new CellConstraints(layoutCoordinateX, layoutCoordinateY));
93         layoutCoordinateX++;
94
95         contentPanel.add(c, new CellConstraints(layoutCoordinateX,
96                 layoutCoordinateY));
97     }
98     
99
100     protected void paintComponent(Graphics JavaDoc g) {
101         super.paintComponent(g);
102
103         int y = 0;
104         g.setColor(new Color JavaDoc(156, 154, 140));
105         g.drawLine(0, y, getWidth(), y);
106         y++;
107         g.setColor(new Color JavaDoc(196, 194, 183));
108         g.drawLine(0, y, getWidth(), y);
109         y++;
110         g.setColor(new Color JavaDoc(218, 215, 201));
111         g.drawLine(0, y, getWidth(), y);
112         y++;
113         g.setColor(new Color JavaDoc(233, 231, 217));
114         g.drawLine(0, y, getWidth(), y);
115
116         y = getHeight() - 3;
117         g.setColor(new Color JavaDoc(233, 232, 218));
118         g.drawLine(0, y, getWidth(), y);
119         y++;
120         g.setColor(new Color JavaDoc(233, 231, 216));
121         g.drawLine(0, y, getWidth(), y);
122         y = getHeight() - 1;
123         g.setColor(new Color JavaDoc(221, 221, 220));
124         g.drawLine(0, y, getWidth(), y);
125
126     }
127
128     class SeparatorPanel extends JPanel JavaDoc {
129         private Color JavaDoc leftColor;
130
131         private Color JavaDoc rightColor;
132
133         SeparatorPanel(Color JavaDoc l, Color JavaDoc r) {
134             this.leftColor = l;
135             this.rightColor = r;
136             setOpaque(false);
137         }
138
139         protected void paintComponent(Graphics JavaDoc g) {
140             g.setColor(leftColor);
141             g.drawLine(0, 0, 0, getHeight());
142             g.setColor(rightColor);
143             g.drawLine(1, 0, 1, getHeight());
144         }
145     }
146 }
Popular Tags