Changeset 2689 in josm for trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
- Timestamp:
- 2009-12-28T00:16:04+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java
r2512 r2689 3 3 4 4 import java.awt.Component; 5 import java.util.ArrayList;6 import java.util.Collections;7 5 8 6 import javax.swing.DefaultListCellRenderer; … … 15 13 16 14 import org.openstreetmap.josm.data.osm.OsmPrimitive; 17 import org.openstreetmap.josm.data.osm. OsmPrimitiveType;15 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive; 18 16 import org.openstreetmap.josm.tools.ImageProvider; 19 17 … … 27 25 */ 28 26 public class OsmPrimitivRenderer implements ListCellRenderer, TableCellRenderer { 27 private DefaultNameFormatter formatter = new DefaultNameFormatter(); 28 29 29 /** 30 30 * Default list cell renderer - delegate for ListCellRenderer operation … … 50 50 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 51 51 Component def = defaultTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 52 return renderer(def, (OsmPrimitive) value); 52 if (value instanceof OsmPrimitive) 53 return renderer(def, (OsmPrimitive) value); 54 else if (value instanceof HistoryOsmPrimitive) 55 return renderer(def, (HistoryOsmPrimitive) value); 56 else 57 return def; 53 58 } 54 59 … … 63 68 if (def != null && value != null && def instanceof JLabel) { 64 69 ((JLabel)def).setText(value.getDisplayName(DefaultNameFormatter.getInstance())); 65 ((JLabel)def).setIcon(ImageProvider.get( OsmPrimitiveType.from(value)));66 ((JLabel)def).setToolTipText( buildToolTipText(value));70 ((JLabel)def).setIcon(ImageProvider.get(value.getType())); 71 ((JLabel)def).setToolTipText(formatter.buildDefaultToolTip(value)); 67 72 } 68 73 return def; … … 70 75 71 76 /** 72 * build the tool tip text for an {@see OsmPrimitive}. It consist of the formatted73 * key/value pairs for this primitive.74 * 75 * @param primitive76 * @return the tool tip text77 * Internal method that stuffs information into the rendering component 78 * provided that it's a kind of JLabel. 79 * @param def the rendering component 80 * @param value the HistoryOsmPrimtive to render 81 * @return the modified rendering component 77 82 */ 78 public String buildToolTipText(OsmPrimitive primitive) { 79 StringBuilder sb = new StringBuilder(); 80 81 sb.append("<html>"); 82 // show the id 83 // 84 sb.append("<strong>id</strong>=") 85 .append(primitive.getId()) 86 .append("<br>"); 87 88 // show the key/value-pairs, sorted by key 89 // 90 ArrayList<String> keyList = new ArrayList<String>(primitive.keySet()); 91 Collections.sort(keyList); 92 for (int i = 0; i < keyList.size(); i++) { 93 if (i > 0) { 94 sb.append("<br>"); 95 } 96 String key = keyList.get(i); 97 sb.append("<strong>") 98 .append(key) 99 .append("</strong>") 100 .append("="); 101 // make sure long values are split into several rows. Otherwise 102 // the tool tip window can become to wide 103 // 104 String value = primitive.get(key); 105 while(value.length() != 0) { 106 sb.append(value.substring(0,Math.min(50, value.length()))); 107 if (value.length() > 50) { 108 sb.append("<br>"); 109 value = value.substring(50); 110 } else { 111 value = ""; 112 } 113 } 83 private Component renderer(Component def, HistoryOsmPrimitive value) { 84 if (def != null && value != null && def instanceof JLabel) { 85 ((JLabel)def).setText(value.getDisplayName(DefaultNameFormatter.getInstance())); 86 ((JLabel)def).setIcon(ImageProvider.get(value.getType())); 87 ((JLabel)def).setToolTipText(formatter.buildDefaultToolTip(value)); 114 88 } 115 sb.append("</html>"); 116 return sb.toString(); 89 return def; 117 90 } 118 91 }
Note:
See TracChangeset
for help on using the changeset viewer.