KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > debugger > jpda > ui > models > ThreadsTreeExpansionModel


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.debugger.jpda.ui.models;
21
22 import java.util.Set JavaDoc;
23 import org.netbeans.api.debugger.jpda.JPDAThread;
24 import org.netbeans.api.debugger.jpda.JPDAThreadGroup;
25 import org.netbeans.spi.viewmodel.TreeExpansionModel;
26 import org.netbeans.spi.viewmodel.UnknownTypeException;
27 import org.openide.util.WeakSet;
28
29
30 /**
31  * @author Jan Jancura
32  */

33 public class ThreadsTreeExpansionModel implements TreeExpansionModel {
34
35     private Set JavaDoc expandedNodes = new WeakSet();
36     private Set JavaDoc collapsedNodes = new WeakSet();
37
38     /**
39      * Defines default state (collapsed, expanded) of given node.
40      *
41      * @param node a node
42      * @return default state (collapsed, expanded) of given node
43      */

44     public boolean isExpanded (Object JavaDoc node)
45     throws UnknownTypeException {
46         synchronized (this) {
47             if (expandedNodes.contains(node)) {
48                 return true;
49             }
50             if (collapsedNodes.contains(node)) {
51                 return false;
52             }
53         }
54         // Default behavior follows:
55
if (node instanceof MonitorModel.ThreadWithBordel)
56             return false;
57         if (node instanceof JPDAThreadGroup)
58             return true;
59         if (node instanceof JPDAThread)
60             return false;
61         throw new UnknownTypeException (node);
62     }
63     
64     /**
65      * Called when given node is expanded.
66      *
67      * @param node a expanded node
68      */

69     public void nodeExpanded (Object JavaDoc node) {
70         synchronized (this) {
71             expandedNodes.add(node);
72             collapsedNodes.remove(node);
73         }
74     }
75     
76     /**
77      * Called when given node is collapsed.
78      *
79      * @param node a collapsed node
80      */

81     public void nodeCollapsed (Object JavaDoc node) {
82         synchronized (this) {
83             collapsedNodes.add(node);
84             expandedNodes.remove(node);
85         }
86     }
87 }
88
Popular Tags