1 19 20 package org.netbeans.modules.debugger.jpda.ui.models; 21 22 import javax.swing.Action ; 23 24 import org.netbeans.api.debugger.jpda.*; 25 import org.netbeans.spi.debugger.ContextProvider; 26 import org.netbeans.spi.viewmodel.Models; 27 import org.netbeans.spi.viewmodel.NodeActionsProvider; 28 import org.netbeans.spi.viewmodel.TreeModel; 29 import org.netbeans.spi.viewmodel.ModelListener; 30 import org.netbeans.spi.viewmodel.UnknownTypeException; 31 32 import org.netbeans.modules.debugger.jpda.ui.SourcePath; 33 34 35 38 public class VariablesActionsProvider implements NodeActionsProvider { 39 40 41 private final Action GO_TO_SOURCE_ACTION = Models.createAction ( 42 "Go to Source", 43 new Models.ActionPerformer () { 44 public boolean isEnabled (Object node) { 45 return true; 46 } 47 public void perform (Object [] nodes) { 48 goToSource ((Field) nodes [0]); 49 } 50 }, 51 Models.MULTISELECTION_TYPE_EXACTLY_ONE 52 ); 53 54 55 private ContextProvider lookupProvider; 56 57 58 public VariablesActionsProvider (ContextProvider lookupProvider) { 59 this.lookupProvider = lookupProvider; 60 } 61 62 public Action [] getActions (Object node) throws UnknownTypeException { 63 if (node == TreeModel.ROOT) 64 return new Action [0]; 65 if (node instanceof Field) 66 return new Action [] { 67 GO_TO_SOURCE_ACTION 68 }; 69 if (node instanceof Variable) 70 return new Action [] { 71 }; 72 if (node.toString().startsWith ("SubArray")) return new Action [] { 74 }; 75 if (node.equals ("NoInfo")) return new Action [] { 77 }; 78 throw new UnknownTypeException (node); 79 } 80 81 public void performDefaultAction (Object node) throws UnknownTypeException { 82 if (node == TreeModel.ROOT) 83 return; 84 if (node instanceof Field) { 85 goToSource ((Field) node); 86 return; 87 } 88 if (node.toString().startsWith ("SubArray")) return ; 90 if (node.equals ("NoInfo")) return; 92 throw new UnknownTypeException (node); 93 } 94 95 99 public void addModelListener (ModelListener l) { 100 } 101 102 106 public void removeModelListener (ModelListener l) { 107 } 108 109 public void goToSource (Field variable) { 110 SourcePath ectx = (SourcePath) lookupProvider.lookupFirst 111 (null, SourcePath.class); 112 ectx.showSource (variable); 113 } 114 115 private boolean isSourceAvailable (Field v) { 116 SourcePath ectx = (SourcePath) lookupProvider.lookupFirst 117 (null, SourcePath.class); 118 return ectx.sourceAvailable (v); 119 } 120 } 121 | Popular Tags |