KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > hero > client > manager > JTodoList


1 package hero.client.manager;
2
3 /*
4 *
5 * JTodoList.java -
6 * Copyright (C) 2003 Ecoo Team
7 * valdes@loria.fr
8 *
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 */

24
25 import hero.interfaces.Constants;
26 import hero.util.BonitaClient;
27
28 import java.awt.BorderLayout JavaDoc;
29 import java.awt.Color JavaDoc;
30 import java.awt.Dimension JavaDoc;
31 import java.awt.FlowLayout JavaDoc;
32 import java.awt.Toolkit JavaDoc;
33 import java.awt.event.ActionEvent JavaDoc;
34 import java.awt.event.ActionListener JavaDoc;
35 import java.awt.event.MouseEvent JavaDoc;
36 import java.awt.event.MouseListener JavaDoc;
37 import java.beans.PropertyChangeEvent JavaDoc;
38 import java.beans.PropertyChangeListener JavaDoc;
39 import java.util.Iterator JavaDoc;
40 import java.util.Collection JavaDoc;
41 import java.util.Enumeration JavaDoc;
42 import java.util.ArrayList JavaDoc;
43
44 import javax.swing.DefaultListModel JavaDoc;
45 import javax.swing.JLabel JavaDoc;
46 import javax.swing.JList JavaDoc;
47 import javax.swing.JMenuItem JavaDoc;
48 import javax.swing.JOptionPane JavaDoc;
49 import javax.swing.JPanel JavaDoc;
50 import javax.swing.JPopupMenu JavaDoc;
51 import javax.swing.JScrollPane JavaDoc;
52 import javax.swing.ImageIcon JavaDoc;
53
54 public class JTodoList extends JPanel JavaDoc implements PropertyChangeListener JavaDoc, MouseListener JavaDoc, Constants.Nd {
55
56 static java.util.ResourceBundle JavaDoc resource = java.util.ResourceBundle.getBundle("resources.Traduction")/*#BundleType=List*/;
57
58     private BonitaClient soapclient;
59     private DefaultListModel JavaDoc model;
60     private JList JavaDoc todoList;
61     private String JavaDoc project = null;
62     MListener ml;
63     public final static String JavaDoc imageBase = "images/";
64     public final static ImageIcon JavaDoc icon = new ImageIcon JavaDoc(Thread.currentThread().getContextClassLoader().getResource(imageBase + "icon.png"));
65
66     public JTodoList(BonitaClient soapclient, MListener ml) {
67         try {
68             this.soapclient = soapclient;
69             ml.addEventTodoListener(this);
70
71             model = new DefaultListModel JavaDoc();
72             todoList = new JList JavaDoc(model);
73             todoList.setCellRenderer(new ManagerCellRenderer());
74
75             JScrollPane JavaDoc jsptdl = new JScrollPane JavaDoc(todoList);
76
77             JPanel JavaDoc p = new JPanel JavaDoc();
78             p.setLayout(new FlowLayout JavaDoc());
79             p.setBackground(new Color JavaDoc(177,177,251));
80
81             this.setLayout(new BorderLayout JavaDoc());
82             this.setBackground(new Color JavaDoc(177,177,251));
83             this.add(new JLabel JavaDoc(resource.getString("jtodolist.todo")), BorderLayout.NORTH);
84             this.add(jsptdl, BorderLayout.CENTER);
85             this.add(p, BorderLayout.SOUTH);
86             
87             todoList.addMouseListener(this);
88         } catch (Exception JavaDoc e) {
89             JOptionPane.showMessageDialog(null,resource.getString("jtodolist.error"),resource.getString("jtodolist.inerror"),JOptionPane.INFORMATION_MESSAGE,icon);
90         }
91     }
92
93     public void mouseReleased(MouseEvent JavaDoc e) {
94         try {
95             // Popup Menu
96
if ((e.getModifiers() & java.awt.event.InputEvent.BUTTON3_MASK) != 0) {
97                 // if (todoList.getSelectedValue() != null)
98
// {
99
JPopupMenu JavaDoc menu = new JPopupMenu JavaDoc();
100                 PopupMenu(menu);
101
102                 Dimension JavaDoc screen = Toolkit.getDefaultToolkit().getScreenSize();
103                 Dimension JavaDoc size = menu.getPreferredSize();
104
105                 // Flip along screen
106
int x = e.getX();
107                 int y = e.getY();
108
109                 menu.show(this, x, y);
110                 //}
111
} else if (e.getClickCount() == 2)
112                 try {
113                     BrowserControl.displayURL(java.lang.System.getProperty("bonita.host")+ "/bonita/protected/Action.jsp?projectname="
114                             + project
115                             + "&nodename="
116                             + ((ListItem) todoList.getSelectedValue()).getValue());
117                 } catch (Exception JavaDoc ex) {
118                 }
119         } catch (Exception JavaDoc ex) {
120         };
121     }
122
123     public void PopupMenu(JPopupMenu JavaDoc menu) {
124         JMenuItem JavaDoc mi;
125         ClassLoader JavaDoc cl = this.getClass().getClassLoader();
126
127         if (todoList.getSelectedIndex() != -1) {
128             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jtodolist.start")));
129             mi.addActionListener(new ActionListener JavaDoc() {
130                 public void actionPerformed(ActionEvent JavaDoc e) {
131                     start();
132                 }
133             });
134
135             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jtodolist.details")));
136             mi.addActionListener(new ActionListener JavaDoc() {
137                 public void actionPerformed(ActionEvent JavaDoc e) {
138                     BrowserControl.displayURL(java.lang.System.getProperty("bonita.host")
139                             + "/bonita/protected/Action.jsp?projectname="
140                             + project
141                             + "&nodename="
142                             + ((ListItem) todoList.getSelectedValue()).getValue());
143                 }
144             });
145         }
146     }
147
148     void start() {
149         try {
150             if (project != null)
151                 soapclient.startActivity(project, ((ListItem) todoList.getSelectedValue()).getValue());
152         } catch (Exception JavaDoc start) {
153             JOptionPane.showMessageDialog(null,resource.getString("jtodolist.starterror")+start.getMessage(),resource.getString("jtodolist.start"),JOptionPane.INFORMATION_MESSAGE,icon);
154         }
155     }
156
157     public void propertyChange(PropertyChangeEvent JavaDoc e) {
158         try {
159             if (e.getPropertyName().equals(JProjectList.SELECTED)) {
160                 model.clear();
161                 this.project = (String JavaDoc) e.getNewValue();
162
163                 Collection JavaDoc toDo = soapclient.getToDoList(project);
164                 Iterator JavaDoc i = toDo.iterator();
165
166                 while (i.hasNext()) {
167                     String JavaDoc node = (String JavaDoc) i.next();
168                     ListItem li = new ListItem(getColor(node), node);
169                     model.addElement(li);
170                 }
171             }
172         } catch (Exception JavaDoc e1) {
173             e1.printStackTrace();
174         }
175     }
176
177     public Color JavaDoc getColor(String JavaDoc name) throws Exception JavaDoc {
178         soapclient.openProject(project);
179         int state = soapclient.getNodeState(name);
180         switch (state) {
181             case READY :
182                 return (Color.yellow);
183             case ANTICIPABLE :
184                 return (Color.green);
185         }
186         return (Color.white);
187     }
188
189     public void changeEvent(Object JavaDoc[] e, String JavaDoc projectName) {
190         try {
191             if (projectName.equals(project)) {
192                 model.clear();
193                 int i = 0;
194                 for (i = 0; i < e.length; i++) {
195                     ListItem li = new ListItem(getColor(e[i].toString()), e[i].toString());
196                     model.addElement(li);
197                 }
198             }
199             
200         } catch (Exception JavaDoc ex) {
201         }
202     }
203     
204     public boolean isChanged(Object JavaDoc[] elements) {
205         Collection JavaDoc listElements = new ArrayList JavaDoc();
206         
207          for (Enumeration JavaDoc e = model.elements() ; e.hasMoreElements() ;) {
208              ListItem li = (ListItem)e.nextElement();
209              listElements.add(li.getValue());
210          }
211          Collection JavaDoc newElements = java.util.Arrays.asList(elements);
212          if (listElements.containsAll(newElements))
213             return false;
214          return true;
215     }
216     
217     // Rest of mouse listener is empty
218
public void mousePressed(MouseEvent JavaDoc e) {
219     }
220     public void mouseEntered(MouseEvent JavaDoc e) {
221     }
222     public void mouseExited(MouseEvent JavaDoc e) {
223     }
224     public void mouseClicked(MouseEvent JavaDoc e) {
225     }
226
227 }
228
229
230
Popular Tags