1 19 20 package org.netbeans.modules.debugger.jpda.ui.models; 21 22 import org.netbeans.api.debugger.jpda.InvalidExpressionException; 23 import org.netbeans.api.debugger.jpda.ObjectVariable; 24 import org.netbeans.api.debugger.jpda.Variable; 25 import org.netbeans.spi.debugger.jpda.VariablesFilterAdapter; 26 import org.netbeans.spi.debugger.ui.Constants; 27 import org.netbeans.spi.viewmodel.TableModel; 28 import org.netbeans.spi.viewmodel.TreeModel; 29 import org.netbeans.spi.viewmodel.UnknownTypeException; 30 31 32 37 public class EnumConstantsFilter extends VariablesFilterAdapter { 38 39 public String [] getSupportedTypes () { 40 return new String [] { 41 }; 42 } 43 44 public String [] getSupportedAncestors () { 45 return new String [] { 46 "java.lang.Enum" 47 }; 48 } 49 50 57 public boolean isLeaf (TreeModel original, Variable variable) throws UnknownTypeException { 58 return true; 59 } 60 61 public Object getValueAt ( 62 TableModel original, 63 Variable variable, 64 String columnID 65 ) throws UnknownTypeException { 66 67 ObjectVariable ov = (ObjectVariable) variable; 68 if ( columnID == Constants.LOCALS_VALUE_COLUMN_ID || 69 columnID == Constants.WATCH_VALUE_COLUMN_ID 70 ) { 71 try { 72 return ov.getToStringValue (); 73 } catch (InvalidExpressionException ex) { 74 return ex.getLocalizedMessage (); 75 } 76 } else if (columnID == Constants.LOCALS_TYPE_COLUMN_ID || columnID == Constants.WATCH_TYPE_COLUMN_ID) { 77 String typeName = ov.getType(); 78 int idx = typeName.lastIndexOf("$"); 79 if (idx != -1) { 80 return typeName.substring(idx + 1); 81 } 82 idx = typeName.lastIndexOf("."); 83 if (idx != -1) { 84 return typeName.substring(idx + 1); 85 } 86 } 87 return original.getValueAt (variable, columnID); 88 } 89 } 90 | Popular Tags |