KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > taskblocks > app > TaskConfigPanel


1 /*
2  * Copyright (C) Jakub Neubauer, 2007
3  *
4  * This file is part of TaskBlocks
5  *
6  * TaskBlocks is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * TaskBlocks is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */

19
20 package taskblocks.app;
21
22 import java.awt.Component JavaDoc;
23 import java.awt.GridBagConstraints JavaDoc;
24 import java.awt.GridBagLayout JavaDoc;
25
26 import javax.swing.DefaultComboBoxModel JavaDoc;
27 import javax.swing.JComboBox JavaDoc;
28 import javax.swing.JLabel JavaDoc;
29 import javax.swing.JList JavaDoc;
30 import javax.swing.JPanel JavaDoc;
31 import javax.swing.JSpinner JavaDoc;
32 import javax.swing.JTextField JavaDoc;
33 import javax.swing.ListCellRenderer JavaDoc;
34 import javax.swing.SpinnerNumberModel JavaDoc;
35
36 import taskblocks.modelimpl.ColorLabel;
37 import taskblocks.modelimpl.TaskImpl;
38 import taskblocks.modelimpl.TaskModelImpl;
39
40 public class TaskConfigPanel extends JPanel JavaDoc {
41
42     private TaskImpl _task;
43     private TaskModelImpl _model;
44     
45     JComboBox JavaDoc manCB;
46     JTextField JavaDoc nameTF;
47     JSpinner JavaDoc durationSP;
48     JComboBox JavaDoc _colorLabelCB;
49     
50     public TaskConfigPanel(TaskImpl task, TaskModelImpl model) {
51         _task = task;
52         _model = model;
53         buildGui();
54     }
55     
56     private void buildGui() {
57         // create components
58
JPanel JavaDoc contentP = this;
59         JLabel JavaDoc nameL = new JLabel JavaDoc("Task name:");
60         nameTF = new JTextField JavaDoc(15);
61         JLabel JavaDoc manL = new JLabel JavaDoc("Worker:");
62         manCB = new JComboBox JavaDoc(new DefaultComboBoxModel JavaDoc(_model._mans));
63         JLabel JavaDoc durationL = new JLabel JavaDoc("Duration:");
64         durationSP = new JSpinner JavaDoc(new SpinnerNumberModel JavaDoc((int)_task.getDuration(), 1, 365, 1));
65         JLabel JavaDoc colorL = new JLabel JavaDoc("Color Label:");
66         _colorLabelCB = new JComboBox JavaDoc(new DefaultComboBoxModel JavaDoc(ColorLabel.COLOR_LABELS));
67         _colorLabelCB.setRenderer(new ColorLabelRenderer(_colorLabelCB.getRenderer()));
68         
69         //layout components
70
contentP.setLayout(new GridBagLayout JavaDoc());
71         GridBagConstraints JavaDoc gc = new GridBagConstraints JavaDoc();
72         
73         // add labels
74
gc.gridx = 0; gc.gridy = 0;
75         gc.fill = GridBagConstraints.NONE;
76         gc.insets.bottom = 5;
77         gc.anchor = GridBagConstraints.EAST;
78         //
79
contentP.add(nameL, gc);
80         gc.gridy++; contentP.add(durationL, gc);
81         gc.gridy++; contentP.add(manL, gc);
82         gc.gridy++; contentP.add(colorL, gc);
83         
84         // add edit fields
85
gc.gridx++; gc.gridy=0;
86         gc.fill = GridBagConstraints.HORIZONTAL;
87         gc.weightx = 1;
88         gc.insets.left = 8;
89         //
90
contentP.add(nameTF, gc);
91         gc.gridy++; contentP.add(durationSP, gc);
92         gc.gridy++; contentP.add(manCB, gc);
93         gc.gridy++; contentP.add(_colorLabelCB, gc);
94         
95         // set component properties
96
nameTF.setText(_task.getName());
97         manCB.setSelectedItem(_task.getMan());
98         if(_task.getColorLabel() != null) {
99             _colorLabelCB.setSelectedItem(_task.getColorLabel());
100         }
101     }
102     
103     public static class ColorLabelRenderer implements ListCellRenderer JavaDoc {
104         ListCellRenderer JavaDoc _orig;
105         public ColorLabelRenderer(ListCellRenderer JavaDoc orig) {
106             _orig = orig;
107         }
108         public Component JavaDoc getListCellRendererComponent(JList JavaDoc list, Object JavaDoc value, int index, boolean isSelected, boolean cellHasFocus) {
109             Component JavaDoc c = _orig.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
110             
111             if(c instanceof JLabel JavaDoc) {
112                 ((JLabel JavaDoc)c).setIcon(((ColorLabel)value)._icon);
113             }
114             return c;
115         }
116     }
117
118 }
119
Popular Tags