Changeset 3178 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2010-04-11T20:29:30+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/Filters.java
r3083 r3178 1 1 package org.openstreetmap.josm.data.osm; 2 2 3 import static org.openstreetmap.josm.tools.I18n.tr; 3 4 import static org.openstreetmap.josm.tools.I18n.trc; 5 6 import java.awt.Color; 7 import java.awt.Font; 8 import java.awt.Graphics; 9 import java.awt.Graphics2D; 4 10 5 11 import java.util.Collection; … … 8 14 import java.util.Map; 9 15 16 import javax.swing.BorderFactory; 17 import javax.swing.JLabel; 10 18 import javax.swing.table.AbstractTableModel; 11 19 … … 27 35 28 36 private List<Filter> filters = new LinkedList<Filter>(); 29 public void filter(){ 37 38 public void executeFilters(){ 30 39 Collection<OsmPrimitive> seld = new LinkedList<OsmPrimitive> (); 31 40 Collection<OsmPrimitive> self = new LinkedList<OsmPrimitive> (); … … 56 65 } 57 66 58 private void loadPrefs(){ 67 public void clearFilterFlags() { 68 DataSet ds = Main.main.getCurrentDataSet(); 69 if (ds != null) { 70 ds.setFiltered(); 71 ds.setDisabled(); 72 } 73 disabledCount = 0; 74 hiddenCount = 0; 75 Main.map.mapView.repaint(); 76 } 77 78 79 private void loadPrefs() { 59 80 Map<String,String> prefs = Main.pref.getAllPrefix("filters.filter"); 60 81 for (String value : prefs.values()) { … … 88 109 filters.add(f); 89 110 savePref(filters.size()-1); 90 filter();111 executeFilters(); 91 112 fireTableRowsInserted(filters.size()-1, filters.size()-1); 92 113 } … … 97 118 savePref(i); 98 119 savePref(i+1); 99 filter();120 executeFilters(); 100 121 fireTableRowsUpdated(i, i+1); 101 122 } … … 106 127 savePref(i); 107 128 savePref(i-1); 108 filter();129 executeFilters(); 109 130 fireTableRowsUpdated(i-1, i); 110 131 } … … 113 134 filters.remove(i); 114 135 savePrefs(); 115 filter();136 executeFilters(); 116 137 fireTableRowsDeleted(i, i); 117 138 } … … 120 141 filters.set(i, f); 121 142 savePref(i); 122 filter();143 executeFilters(); 123 144 fireTableRowsUpdated(i, i); 124 145 } … … 171 192 Filter f = filters.get(row); 172 193 switch(column){ 173 case 0: f.enable = (Boolean)aValue; 174 savePref(row); 175 filter(); 176 fireTableRowsUpdated(row, row); 177 break; 178 case 1: f.hide = (Boolean)aValue; 179 savePref(row); 180 filter(); 181 break; 182 case 2: f.text = (String)aValue; 183 savePref(row); 184 break; 185 case 3: f.applyForChildren = (Boolean)aValue; 186 savePref(row); 187 filter(); 188 break; 189 case 4: f.inverted = (Boolean)aValue; 190 savePref(row); 191 filter(); 192 break; 194 case 0: 195 f.enable = (Boolean)aValue; 196 savePref(row); 197 executeFilters(); 198 fireTableRowsUpdated(row, row); 199 break; 200 case 1: 201 f.hide = (Boolean)aValue; 202 savePref(row); 203 executeFilters(); 204 break; 205 case 2: 206 f.text = (String)aValue; 207 savePref(row); 208 break; 209 case 3: 210 f.applyForChildren = (Boolean)aValue; 211 savePref(row); 212 executeFilters(); 213 break; 214 case 4: 215 f.inverted = (Boolean)aValue; 216 savePref(row); 217 executeFilters(); 218 break; 193 219 } 194 220 if(column!=0) { … … 215 241 return null; 216 242 } 243 244 private static class OSDLabel extends JLabel { 245 public OSDLabel(String text) { 246 super(text); 247 setOpaque(true); 248 setForeground(Color.black); 249 setBackground(new Color(0,0,0,0)); 250 setFont(getFont().deriveFont(Font.PLAIN)); 251 setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); 252 } 253 254 @Override 255 public void paintComponent(Graphics g) { 256 g.setColor(new Color(255, 255, 255, 140)); 257 g.fillRoundRect(getX(), getY(), getWidth(), getHeight(), 10, 10); 258 super.paintComponent(g); 259 } 260 } 261 262 private OSDLabel lblOSD = new OSDLabel(""); 263 264 public void drawOSDText(Graphics2D g) { 265 String message = "<html>"+tr("<h2>Filter active</h2>"); 266 267 if (disabledCount == 0 && hiddenCount == 0) 268 return; 269 270 if (hiddenCount != 0) { 271 message += tr("<p><b>{0}</b> objects hidden", hiddenCount); 272 } 273 274 if (hiddenCount != 0 && disabledCount != 0) { 275 message += "<br>"; 276 } 277 278 if (disabledCount != 0) { 279 message += tr("<b>{0}</b> objects disabled", disabledCount); 280 } 281 282 message += tr("</p><p>Close the filter dialog to see all objects.<p></html>"); 283 284 lblOSD.setText(message); 285 lblOSD.setSize(lblOSD.getPreferredSize()); 286 287 int dx = Main.map.mapView.getWidth() - lblOSD.getPreferredSize().width - 15; 288 int dy = 15; 289 g.translate(dx, dy); 290 lblOSD.paintComponent(g); 291 g.translate(-dx, -dy); 292 } 217 293 }
Note:
See TracChangeset
for help on using the changeset viewer.