KickJava   Java API By Example, From Geeks To Geeks.

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


1 package hero.client.manager;
2
3 /*
4 *
5 * JProjectList.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.EventConstants;
27 import hero.util.BonitaClient;
28 import hero.net.UserSession.BnProjectLightValue;
29
30 import java.awt.BorderLayout JavaDoc;
31 import java.awt.Color JavaDoc;
32 import java.awt.Dimension JavaDoc;
33 import java.awt.GridLayout JavaDoc;
34 import java.awt.Toolkit JavaDoc;
35 import java.awt.Component JavaDoc;
36 import java.awt.event.ActionEvent JavaDoc;
37 import java.awt.event.ActionListener JavaDoc;
38 import java.awt.event.MouseEvent JavaDoc;
39 import java.awt.event.MouseListener JavaDoc;
40 import java.util.Hashtable JavaDoc;
41 import java.util.Iterator JavaDoc;
42 import java.util.Collection JavaDoc;
43 import java.util.ArrayList JavaDoc;
44 import java.util.Enumeration JavaDoc;
45
46 import javax.swing.JComboBox JavaDoc;
47 import javax.swing.JMenuItem JavaDoc;
48 import javax.swing.JOptionPane JavaDoc;
49 import javax.swing.JPanel JavaDoc;
50 import javax.swing.JLabel JavaDoc;
51 import javax.swing.JPopupMenu JavaDoc;
52 import javax.swing.JScrollPane JavaDoc;
53 import javax.swing.ImageIcon JavaDoc;
54 import javax.swing.JTextField JavaDoc;
55 import javax.swing.SwingConstants JavaDoc;
56 import javax.swing.tree.DefaultMutableTreeNode JavaDoc;
57 import javax.swing.tree.MutableTreeNode JavaDoc;
58 import javax.swing.tree.TreeCellRenderer JavaDoc;
59 import javax.swing.event.TreeModelListener JavaDoc;
60 import javax.swing.event.TreeModelEvent JavaDoc;
61 import javax.swing.tree.DefaultTreeCellRenderer JavaDoc;
62 import javax.swing.tree.DefaultTreeModel JavaDoc;
63 import javax.swing.tree.TreeSelectionModel JavaDoc;
64 import javax.swing.JTree JavaDoc;
65 import java.beans.PropertyChangeListener JavaDoc;
66 import java.beans.PropertyChangeEvent JavaDoc;
67
68 public class JProjectList
69     extends JPanel JavaDoc
70     implements PropertyChangeListener JavaDoc, Constants.Nd, EventConstants, MouseListener JavaDoc {
71         
72          class MyTreeModelListener implements TreeModelListener JavaDoc {
73             // Rest of TreeModelListener is empty
74
public void treeNodesChanged(TreeModelEvent JavaDoc e) {
75             }
76             public void treeNodesInserted(TreeModelEvent JavaDoc e) {
77             }
78             public void treeNodesRemoved(TreeModelEvent JavaDoc e) {
79             }
80             public void treeStructureChanged(TreeModelEvent JavaDoc e) {
81             }
82         }
83
84         protected static class CustomDefaultRenderer
85                            extends DefaultTreeCellRenderer JavaDoc {
86           public Component JavaDoc getTreeCellRendererComponent(
87                       JTree JavaDoc tree,
88                       Object JavaDoc value,
89                       boolean selected,
90                       boolean expanded,
91                       boolean leaf,
92                       int row,
93                       boolean hasFocus) {
94           // Allow the original renderer to set up the label
95
Component JavaDoc c = super.getTreeCellRendererComponent(
96                           tree, value, selected,
97                           expanded, leaf, row,
98                           hasFocus);
99
100            if (leaf) {
101              // Use a different foreground
102
// color for leaf nodes.
103
if (leafForeground != null) {
104               c.setForeground(leafForeground);
105              }
106            }
107
108            return c;
109           }
110            public void setLeafForeground(Color JavaDoc color) {
111              this.leafForeground = color;
112            }
113
114            private Color JavaDoc leafForeground;
115         }
116
117         
118 static java.util.ResourceBundle JavaDoc resource = java.util.ResourceBundle.getBundle("resources.Traduction")/*#BundleType=List*/;
119
120     private JScrollPane JavaDoc jsppl;
121     private JTree JavaDoc tree;
122     private MListener ml;
123     private DefaultMutableTreeNode JavaDoc top;
124     private DefaultTreeModel JavaDoc treeModel;
125     public final static String JavaDoc SELECTED = "selected";
126     public final static String JavaDoc PROJECTCLOSE = "close";
127     public Hashtable JavaDoc projects = new Hashtable JavaDoc();
128     private hero.client.grapheditor.Frame frame;
129     private BonitaClient soapclient;
130     private String JavaDoc newStatus=Constants.Pj.ACTIVE;
131     private Collection JavaDoc actualProjects;
132     public final static String JavaDoc imageBase = "images/";
133     public final static ImageIcon JavaDoc icon = new ImageIcon JavaDoc(Thread.currentThread().getContextClassLoader().getResource(imageBase + "icon.png"));
134     private Toolkit JavaDoc toolkit = Toolkit.getDefaultToolkit();
135
136
137     public JProjectList(BonitaClient soapclient,MListener ml,Collection JavaDoc initialProjects) {
138         try {
139             this.actualProjects = initialProjects;
140             ml.addEventProjectListener(this);
141             
142             this.add(new JLabel JavaDoc(resource.getString("jprojectlist.project")), BorderLayout.NORTH);
143             this.soapclient = soapclient;
144
145             top = new DefaultMutableTreeNode JavaDoc(resource.getString("jprojectlist.project"));
146             treeModel = new DefaultTreeModel JavaDoc(top);
147             treeModel.addTreeModelListener(new MyTreeModelListener());
148
149             tree = new JTree JavaDoc(treeModel);
150             tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
151                                             
152             TreeCellRenderer JavaDoc cr = tree.getCellRenderer();
153             CustomDefaultRenderer dtcr = new CustomDefaultRenderer();
154             tree.setCellRenderer(dtcr);
155             dtcr.setBackgroundNonSelectionColor(Color.white);
156             dtcr.setTextSelectionColor(Color.white);
157             dtcr.setTextNonSelectionColor(Color.black);
158             dtcr.setLeafForeground(Color.blue);
159             
160             // Retrieve the three icons
161
javax.swing.Icon JavaDoc leafIcon = new ImageIcon JavaDoc("images/ast.gif");
162             dtcr.setLeafIcon(leafIcon);
163             dtcr.setClosedIcon(leafIcon);
164             dtcr.setOpenIcon(leafIcon);
165             
166             tree.setRowHeight(0);
167
168             //Finally, set the tree's background color
169
tree.setBackground(Color.white);
170                         
171             this.createNodes(actualProjects);
172             jsppl = new JScrollPane JavaDoc(tree);
173
174             this.setLayout(new BorderLayout JavaDoc());
175             this.setBackground(new Color JavaDoc(177,177,251));
176             this.add(jsppl, BorderLayout.CENTER);
177             tree.addMouseListener(this);
178             tree.setVisibleRowCount(10);
179             this.setVisible(true);
180
181             
182         } catch (Exception JavaDoc e) {}
183     }
184         
185     public void newProject() {
186         JPanel JavaDoc jp = new JPanel JavaDoc();
187         ArrayList JavaDoc types = new ArrayList JavaDoc();
188         types.add("Model");
189         types.add("Cooperative");
190         JComboBox JavaDoc processTypes = new JComboBox JavaDoc(types.toArray());
191         processTypes.setSelectedItem("Model");
192         
193         JTextField JavaDoc projectName = new JTextField JavaDoc();
194         jp.add(new JLabel JavaDoc(resource.getString("wfwindowsmanager.newproj"), SwingConstants.LEFT));
195         jp.add(projectName);
196                     
197         jp.setLayout(new GridLayout JavaDoc(0, 2));
198         jp.add(new JLabel JavaDoc(resource.getString("wfwindowsmanager.choosetype"), SwingConstants.LEFT));
199         jp.add(processTypes);
200                     
201         int cloneOption =JOptionPane.showConfirmDialog(null,jp,resource.getString("wfwindowsmanager.newproj"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE, icon);
202         if (cloneOption != JOptionPane.CANCEL_OPTION) {
203             while ((projectName.getText()).equals("")
204                 && cloneOption != JOptionPane.CANCEL_OPTION) {
205                 JOptionPane.showMessageDialog(null,resource.getString("wfwindowsmanager.enterproj"),resource.getString("wfwindowsmanager.newproj"),JOptionPane.INFORMATION_MESSAGE, icon);
206                 cloneOption =JOptionPane.showConfirmDialog(null,jp,resource.getString("wfwindowsmanager.newproj"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE, icon);
207             }
208             if (cloneOption != JOptionPane.CANCEL_OPTION) {
209                 try {
210                     if (exists(projectName.getText())) {
211                         JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.exist"),resource.getString("jprojectlist.name"), JOptionPane.INFORMATION_MESSAGE,icon);
212                     } else {
213                         if (processTypes.getSelectedItem().equals("Model"))
214                             soapclient.createModel(projectName.getText());
215                         else
216                             soapclient.createProject(projectName.getText());
217                     }
218                 } catch (Exception JavaDoc ex) {ex.printStackTrace();
219                     JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.exist"),resource.getString("jprojectlist.new"),JOptionPane.INFORMATION_MESSAGE,icon);
220                 }
221             }
222         }
223     }
224         
225         private boolean exists(String JavaDoc project) {
226             try {
227                 Object JavaDoc[] elems = this.actualProjects.toArray();
228                 for (int i = 0; i < elems.length; i++) {
229                     if (((String JavaDoc) elems[i]).equalsIgnoreCase(project))
230                         return true;
231                 }
232                 return false;
233             } catch (Exception JavaDoc e) {
234                 e.printStackTrace();
235             }
236             return true;
237         }
238
239
240     public void mouseReleased(MouseEvent JavaDoc e) {
241         try {
242             if (!tree.isSelectionEmpty()) {
243                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
244                 if ((e.getModifiers() & java.awt.event.InputEvent.BUTTON3_MASK)
245                     != 0) {
246                     JPopupMenu JavaDoc menu = new JPopupMenu JavaDoc();
247                     PopupMenu(menu);
248
249                     Dimension JavaDoc screen = Toolkit.getDefaultToolkit().getScreenSize();
250                     Dimension JavaDoc size = menu.getPreferredSize();
251
252                     // Flip along screen
253

254                     int x = e.getX();
255                     int y = e.getY();
256
257                     menu.show(this,e.getX() - (int) jsppl.getViewport().getViewPosition().getX(),e.getY()- (int) jsppl.getViewport().getViewPosition().getY());
258                 } else if (e.getClickCount() == 1 && !node.isRoot()) {
259                     String JavaDoc pl = node.getUserObject().toString();
260                     firePropertyChange(SELECTED, "", pl);
261                 } else if (e.getClickCount() == 2 && !node.isRoot()) {
262                     try {
263                         if (!projects.containsKey(node.getUserObject().toString())) {
264                             frame = new hero.client.grapheditor.Frame(node.getUserObject().toString(),soapclient, false);
265                             frame.setSize(new Dimension JavaDoc(500, 400));
266                             frame.setVisible(true);
267                             projects.put(node.getUserObject().toString(),frame);
268                             frame.addPropertyChangeListener(PROJECTCLOSE, this);
269                         } else {
270                             frame =(hero.client.grapheditor.Frame) projects.get(node.getUserObject().toString());
271                             frame.requestFocus();
272                         }
273                     } catch (Exception JavaDoc ce) {
274                         //JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.modify")+ node.getUserObject().toString()+ resource.getString("jprojectlist.proj"),resource.getString("jprojectlist.open"),JOptionPane.INFORMATION_MESSAGE,icon);
275
}
276                 }
277             }
278         } catch (Exception JavaDoc e1){
279             JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.error"),resource.getString("jprojectlist.interror"),JOptionPane.INFORMATION_MESSAGE,icon);
280         }
281     }
282
283     public String JavaDoc getProjectType (String JavaDoc projectName) {
284         try {
285             soapclient.initProject(projectName);
286             return (soapclient.getType());
287         }catch (Exception JavaDoc e){return null;}
288     }
289     
290     public String JavaDoc getProjectStatus (String JavaDoc projectName) {
291         try{
292             soapclient.initProject(projectName);
293             return (soapclient.getStatus());
294         }catch (Exception JavaDoc e){return null;}
295
296     }
297     
298     public void PopupMenu(JPopupMenu JavaDoc menu) {
299         JMenuItem JavaDoc mi;
300         ClassLoader JavaDoc cl = this.getClass().getClassLoader();
301         
302         if (!((DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent()).isRoot())
303         {
304             try {
305                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
306                 String JavaDoc status = this.getProjectStatus(node.getUserObject().toString());
307                 if (status != null)
308                 {
309                     String JavaDoc message ="";
310                     if (status.equals(Constants.Pj.ACTIVE))
311                     {
312                         message = resource.getString("jprojectlist.hideproject");
313                         newStatus = Constants.Pj.HIDDEN;
314                     }
315                     else
316                     {
317                         message = resource.getString("jprojectlist.activeproject");
318                         newStatus = Constants.Pj.ACTIVE;
319                     }
320                 
321                     mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(message));
322                     mi.addActionListener(new ActionListener JavaDoc() {
323                         public void actionPerformed(ActionEvent JavaDoc e) {
324                             DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
325                             setStatus(node.getUserObject().toString());
326                         }
327                     });
328                 }
329             }catch (Exception JavaDoc statusEx) {statusEx.printStackTrace();}
330             
331             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jprojectlist.clone")));
332             mi.addActionListener(new ActionListener JavaDoc() {
333             public void actionPerformed(ActionEvent JavaDoc e) {
334                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
335                 cloneProject(node.getUserObject().toString());
336             }
337             });
338         
339             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jprojectlist.inst")));
340             mi.addActionListener(new ActionListener JavaDoc() {
341             public void actionPerformed(ActionEvent JavaDoc e) {
342                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
343                 instantiateProject(node.getUserObject().toString());
344             }
345             });
346
347             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jprojectlist.details")));
348             mi.addActionListener(new ActionListener JavaDoc() {
349             public void actionPerformed(ActionEvent JavaDoc e) {
350                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
351                 BrowserControl.displayURL(java.lang.System.getProperty("bonita.host")
352                         + "/bonita/protected/Action.jsp?projectname="
353                         + node.getUserObject().toString());
354             }
355             });
356             
357             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jprojectlist.terminate")));
358             mi.addActionListener(new ActionListener JavaDoc() {
359             public void actionPerformed(ActionEvent JavaDoc e) {
360                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
361                 terminateProject(node.getUserObject().toString());
362             }
363             });
364
365             mi = (JMenuItem JavaDoc) menu.add(new JMenuItem JavaDoc(resource.getString("jprojectlist.delete")));
366             mi.addActionListener(new ActionListener JavaDoc() {
367             public void actionPerformed(ActionEvent JavaDoc e) {
368                 DefaultMutableTreeNode JavaDoc node = (DefaultMutableTreeNode JavaDoc)tree.getLastSelectedPathComponent();
369                 deleteProject(node.getUserObject().toString());
370             }
371             });
372         }
373     }
374
375     public void deleteProject(String JavaDoc project) {
376         try {
377             int option = JOptionPane.showConfirmDialog(null,resource.getString("jprojectlist.deleteproject"),resource.getString("jprojectlist.delete"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,icon);
378             if (option == JOptionPane.OK_OPTION) {
379                 if (soapclient.deleteProject(project) == true)
380                     JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.proj") + project + " " +resource.getString("jprojectlist.remove"),resource.getString("jprojectlist.delete"),JOptionPane.INFORMATION_MESSAGE,icon);
381             }
382         } catch (Exception JavaDoc e) {
383             JOptionPane.showMessageDialog(null,e.getMessage(), resource.getString("jprojectlist.delete"),JOptionPane.INFORMATION_MESSAGE,icon);
384         }
385     }
386
387     public void cloneProject(String JavaDoc project) {
388         try {
389             String JavaDoc newProject = (String JavaDoc)JOptionPane.showInputDialog(null,resource.getString("jprojectlist.name"),resource.getString("jprojectlist.clone"),JOptionPane.QUESTION_MESSAGE,icon,null,null);
390                     
391             while (newProject != null && newProject.equals("")) {
392                 JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.enternew"),resource.getString("jprojectlist.clone"),JOptionPane.INFORMATION_MESSAGE,icon);
393                 newProject =(String JavaDoc) JOptionPane.showInputDialog(null,resource.getString("jprojectlist.name"),resource.getString("jprojectlist.clone"),JOptionPane.INFORMATION_MESSAGE,icon,null,null);
394             }
395             if (newProject != null)
396                 soapclient.cloneProject(project, newProject);
397
398         } catch (Exception JavaDoc e) {
399             JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.exist"),resource.getString("jprojectlist.clone"),JOptionPane.INFORMATION_MESSAGE,icon);
400         }
401     }
402     public void setStatus(String JavaDoc project) {
403         try {
404             String JavaDoc type = this.getProjectType(project);
405             if (project.matches(".*_instance.*"))
406                 soapclient.initProject(project);
407             else
408             {
409                 if (type.equals(Constants.Pj.MODEL))
410                     soapclient.initModel(project);
411                 else
412                     soapclient.initProject(project);
413             }
414             soapclient.setStatus(newStatus);
415         } catch (Exception JavaDoc e) {
416             JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.status"),resource.getString("jprojectlist.clone"),JOptionPane.INFORMATION_MESSAGE,icon);
417         }
418     }
419     public void instantiateProject(String JavaDoc project) {
420         try {
421             soapclient.instantiateProject(project);
422         } catch (Exception JavaDoc e) {
423             JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.inst.error")+", "+e.getMessage(),resource.getString("jprojectlist.inst"),JOptionPane.INFORMATION_MESSAGE,icon);
424         }
425     }
426     
427     public void terminateProject(String JavaDoc project) {
428         try {
429             soapclient.terminateProject(project);
430         } catch (Exception JavaDoc e) {
431             JOptionPane.showMessageDialog(null,resource.getString("jprojectlist.term.error") +": "+ e.getMessage(),resource.getString("jprojectlist.inst"),JOptionPane.INFORMATION_MESSAGE,icon);
432         }
433     }
434
435     public void changeEvent(Object JavaDoc[] e, String JavaDoc projectName) {
436         DefaultMutableTreeNode JavaDoc node = this.findParent(projectName);
437         if (node != null)
438         {
439             // Remove node; if node has descendants, all descendants are removed as well
440
treeModel.removeNodeFromParent(node);
441             this.actualProjects.remove(projectName);
442         }
443     }
444
445     public void addElement(String JavaDoc projectName) {
446         if (!exists(projectName)){
447             this.addObject(projectName);
448         }
449     }
450     
451     public void addObject(String JavaDoc child) {
452          int startRow = 0;
453          String JavaDoc prefix = null;
454          // Find the parent project.
455
if (child.matches(".*_instance.*"))
456             prefix = child.substring(0,child.indexOf("_instance"));
457          else
458             prefix = resource.getString("jprojectlist.project");
459          DefaultMutableTreeNode JavaDoc nd = this.findParent(prefix);
460          MutableTreeNode JavaDoc node;
461          if (nd !=null)
462             node = nd;
463          else
464          {
465             treeModel.insertNodeInto(new DefaultMutableTreeNode JavaDoc(this.getModel(child)), top, top.getChildCount());
466             actualProjects.add(this.getModel(child));
467             node = this.findParent(prefix);
468          }
469             
470          // Create new node
471
MutableTreeNode JavaDoc newNode = new DefaultMutableTreeNode JavaDoc(child);
472     
473          // Insert new node as last child of node
474
treeModel.insertNodeInto(newNode, node, node.getChildCount());
475          actualProjects.add(child);
476     }
477     
478     public void propertyChange(PropertyChangeEvent JavaDoc e) {
479         try {
480             if (e.getPropertyName().equals(PROJECTCLOSE)) {
481                 projects.remove(e.getNewValue());
482             }
483         } catch (Exception JavaDoc e1) {
484             e1.printStackTrace();
485         }
486     }
487     
488     private void createNodes(Collection JavaDoc iniProj) throws Exception JavaDoc{
489         DefaultMutableTreeNode JavaDoc project = null;
490         DefaultMutableTreeNode JavaDoc instance = null;
491                 
492         Collection JavaDoc instances = soapclient.getInstances();
493         Iterator JavaDoc inst = instances.iterator();
494         while (inst.hasNext())
495         {
496             String JavaDoc instName = (String JavaDoc)inst.next();
497             if (!iniProj.contains(this.getModel(instName)))
498                 iniProj.add(this.getModel(instName));
499         }
500         
501         Iterator JavaDoc i = iniProj.iterator();
502         while (i.hasNext())
503         {
504             String JavaDoc projectName = (String JavaDoc)i.next();
505             project = new DefaultMutableTreeNode JavaDoc(projectName);
506             top.add(project);
507         }
508                     
509         Iterator JavaDoc pInst = instances.iterator();
510         while (pInst.hasNext())
511         {
512             String JavaDoc instName = (String JavaDoc)pInst.next();
513             (this.findParent(this.getModel(instName))).add(new DefaultMutableTreeNode JavaDoc(instName));
514         }
515         this.actualProjects.addAll(instances);
516     }
517
518     private DefaultMutableTreeNode JavaDoc findParent (String JavaDoc parent) {
519         DefaultMutableTreeNode JavaDoc root = (DefaultMutableTreeNode JavaDoc)treeModel.getRoot();
520         DefaultMutableTreeNode JavaDoc node = null;
521         if (root != null)
522             for (Enumeration JavaDoc e = root.breadthFirstEnumeration(); e.hasMoreElements();){
523                 DefaultMutableTreeNode JavaDoc current = (DefaultMutableTreeNode JavaDoc)e.nextElement();
524                 if (parent.equals(current.getUserObject()))
525                 {
526                     node = current;
527                     break;
528                 }
529             }if (node != null){// found}
530
return node;
531             }
532             return null;
533     }
534     
535     // Get the name of the project model of this instance
536
private String JavaDoc getModel(String JavaDoc instanceName) {
537         int i = instanceName.indexOf("_instance");
538         return (instanceName.substring(0, i));
539     }
540     
541     public Collection JavaDoc getActualProjects ()
542     {
543         return this.actualProjects;
544     }
545
546     // Rest of mouse listener is empty
547
public void mousePressed(MouseEvent JavaDoc e) {
548     }
549     public void mouseEntered(MouseEvent JavaDoc e) {
550     }
551     public void mouseExited(MouseEvent JavaDoc e) {
552     }
553     public void mouseClicked(MouseEvent JavaDoc e) {
554     }
555
556 }
557
Popular Tags