KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > statusbar > TaskRenderer


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.core.gui.statusbar;
17
18 import java.awt.BorderLayout JavaDoc;
19 import java.awt.Component JavaDoc;
20
21 import javax.swing.BorderFactory JavaDoc;
22 import javax.swing.JLabel JavaDoc;
23 import javax.swing.JList JavaDoc;
24 import javax.swing.JPanel JavaDoc;
25 import javax.swing.JProgressBar JavaDoc;
26 import javax.swing.ListCellRenderer JavaDoc;
27
28 import org.columba.core.command.Worker;
29
30 /**
31  * Custom renderer using a JLabel for status messages and a JProgressBar for
32  * worker progress.
33  *
34  * @author fdietz
35  */

36 public class TaskRenderer extends JPanel JavaDoc implements ListCellRenderer JavaDoc {
37
38     private JLabel JavaDoc label;
39
40     private JProgressBar JavaDoc progressBar;
41
42     private JPanel JavaDoc progressPanel;
43
44     public TaskRenderer() {
45         super();
46
47         setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
48
49         label = new JLabel JavaDoc();
50         progressBar = new JProgressBar JavaDoc();
51         progressPanel = new JPanel JavaDoc();
52         progressPanel.setLayout(new BorderLayout JavaDoc());
53         progressPanel.setBorder(BorderFactory.createEmptyBorder(2, 10, 2, 10));
54         progressPanel.add(progressBar, BorderLayout.CENTER);
55
56         setLayout(new BorderLayout JavaDoc());
57         add(label, BorderLayout.NORTH);
58         add(progressPanel, BorderLayout.CENTER);
59     }
60
61     /*
62      * (non-Javadoc)
63      *
64      * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList,
65      * java.lang.Object, int, boolean, boolean)
66      */

67     public Component JavaDoc getListCellRendererComponent(JList JavaDoc list, Object JavaDoc value,
68             int index, boolean isSelected, boolean hasFocus) {
69
70         if (isSelected) {
71             setBackground(list.getSelectionBackground());
72             setForeground(list.getSelectionForeground());
73             progressPanel.setBackground(list.getSelectionBackground());
74             progressPanel.setForeground(list.getSelectionForeground());
75         } else {
76             setBackground(list.getBackground());
77             setForeground(list.getForeground());
78             progressPanel.setBackground(list.getBackground());
79             progressPanel.setForeground(list.getForeground());
80         }
81
82         Worker worker = (Worker) value;
83         label.setText(worker.getDisplayText());
84         progressBar.setMaximum(worker.getProgessBarMaximum());
85         progressBar.setValue(worker.getProgressBarValue());
86
87         // return super.getListCellRendererComponent(arg0, arg1, arg2, arg3,
88
// arg4);
89
return this;
90     }
91 }
92
Popular Tags