1 19 20 package org.netbeans.modules.debugger.jpda.ui.models; 21 22 import java.util.Set ; 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 33 public class ThreadsTreeExpansionModel implements TreeExpansionModel { 34 35 private Set expandedNodes = new WeakSet(); 36 private Set collapsedNodes = new WeakSet(); 37 38 44 public boolean isExpanded (Object 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 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 69 public void nodeExpanded (Object node) { 70 synchronized (this) { 71 expandedNodes.add(node); 72 collapsedNodes.remove(node); 73 } 74 } 75 76 81 public void nodeCollapsed (Object node) { 82 synchronized (this) { 83 collapsedNodes.add(node); 84 expandedNodes.remove(node); 85 } 86 } 87 } 88 | Popular Tags |