1 package org.columba.core.gui.statusbar; 17 18 import java.awt.BorderLayout ; 19 import java.awt.Component ; 20 21 import javax.swing.BorderFactory ; 22 import javax.swing.JLabel ; 23 import javax.swing.JList ; 24 import javax.swing.JPanel ; 25 import javax.swing.JProgressBar ; 26 import javax.swing.ListCellRenderer ; 27 28 import org.columba.core.command.Worker; 29 30 36 public class TaskRenderer extends JPanel implements ListCellRenderer { 37 38 private JLabel label; 39 40 private JProgressBar progressBar; 41 42 private JPanel progressPanel; 43 44 public TaskRenderer() { 45 super(); 46 47 setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); 48 49 label = new JLabel (); 50 progressBar = new JProgressBar (); 51 progressPanel = new JPanel (); 52 progressPanel.setLayout(new BorderLayout ()); 53 progressPanel.setBorder(BorderFactory.createEmptyBorder(2, 10, 2, 10)); 54 progressPanel.add(progressBar, BorderLayout.CENTER); 55 56 setLayout(new BorderLayout ()); 57 add(label, BorderLayout.NORTH); 58 add(progressPanel, BorderLayout.CENTER); 59 } 60 61 67 public Component getListCellRendererComponent(JList list, Object 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 this; 90 } 91 } 92 | Popular Tags |