1 19 20 package org.netbeans.modules.debugger.jpda.ui.models; 21 22 import java.awt.Color ; 23 import java.util.Map ; 24 import java.util.WeakHashMap ; 25 import org.netbeans.spi.debugger.ContextProvider; 26 import org.netbeans.spi.debugger.ui.Constants; 27 import org.netbeans.spi.viewmodel.TableModel; 28 import org.netbeans.spi.viewmodel.TableModelFilter; 29 import org.netbeans.spi.viewmodel.ModelListener; 30 import org.netbeans.spi.viewmodel.UnknownTypeException; 31 32 33 34 39 public class BoldVariablesTableModelFilterFirst implements TableModelFilter, 40 Constants { 41 42 private Map variableToValueType = new WeakHashMap (); 43 private Map variableToValueValue = new WeakHashMap (); 44 private Map variableToValueToString = new WeakHashMap (); 45 46 47 48 public Object getValueAt ( 49 TableModel original, 50 Object row, 51 String columnID 52 ) throws UnknownTypeException { 53 Object result = original.getValueAt (row, columnID); 54 if ( LOCALS_TYPE_COLUMN_ID.equals (columnID) || 55 WATCH_TYPE_COLUMN_ID.equals (columnID) 56 ) 57 return bold (row, (String ) result, variableToValueType); 58 if ( LOCALS_VALUE_COLUMN_ID.equals (columnID) || 59 WATCH_VALUE_COLUMN_ID.equals (columnID) 60 ) 61 return bold (row, (String ) result, variableToValueValue); 62 if ( LOCALS_TO_STRING_COLUMN_ID.equals (columnID) || 63 WATCH_TO_STRING_COLUMN_ID.equals (columnID) 64 ) 65 return bold (row, (String ) result, variableToValueToString); 66 return result; 67 } 68 69 public boolean isReadOnly ( 70 TableModel original, 71 Object row, 72 String columnID 73 ) throws UnknownTypeException { 74 return original.isReadOnly (row, columnID); 75 } 76 77 public void setValueAt ( 78 TableModel original, 79 Object row, 80 String columnID, 81 Object value 82 ) throws UnknownTypeException { 83 original.setValueAt (row, columnID, value); 84 } 85 86 91 public void addModelListener (ModelListener l) { 92 } 93 94 99 public void removeModelListener (ModelListener l) { 100 } 101 102 private String bold (Object variable, String value, Map map) { 103 if (map.containsKey (variable)) { 104 String oldValue = (String ) map.get (variable); 105 if (oldValue == value || 106 oldValue != null && oldValue.equals (value)) { 107 108 return toHTML (value, false, false, null); 109 } 110 map.put (variable, value); 111 return toHTML (value, true, false, null); 112 } else { 113 map.put (variable, value); 114 return toHTML (value, false, false, null); 115 } 116 } 117 118 public static String toHTML ( 119 String text, 120 boolean bold, 121 boolean italics, 122 Color color 123 ) { 124 if (text == null) return null; 125 StringBuffer sb = new StringBuffer (); 126 sb.append ("<html>"); 127 if (bold) sb.append ("<b>"); 128 if (italics) sb.append ("<i>"); 129 if (color != null) { 130 sb.append ("<font color="); 131 sb.append (Integer.toHexString ((color.getRGB () & 0xffffff))); 132 sb.append (">"); 133 } 134 text = text.replaceAll ("&", "&"); 135 text = text.replaceAll ("<", "<"); 136 text = text.replaceAll (">", ">"); 137 sb.append (text); 138 if (color != null) sb.append ("</font>"); 139 if (italics) sb.append ("</i>"); 140 if (bold) sb.append ("</b>"); 141 sb.append ("</html>"); 142 return sb.toString (); 143 } 144 } 145 | Popular Tags |