- Timestamp:
- 2010-04-11T20:29:30+02:00 (15 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 5 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 } -
trunk/src/org/openstreetmap/josm/gui/MapFrame.java
r2965 r3178 72 72 73 73 public ConflictDialog conflictDialog; 74 public FilterDialog filterDialog; 74 75 /** 75 76 * The dialog that shows all relations and lets the user edit them. … … 156 157 addToggleDialog(conflictDialog = new ConflictDialog()); 157 158 if(Main.pref.getBoolean("displayfilter", false)) { 158 addToggleDialog(new FilterDialog()); 159 addToggleDialog(filterDialog = new FilterDialog()); 159 160 } 160 161 addToggleDialog(new ChangesetDialog(this)); -
trunk/src/org/openstreetmap/josm/gui/MapView.java
r3144 r3178 585 585 tempG.draw(border); 586 586 587 if (Main.map.filterDialog != null) { 588 Main.map.filterDialog.drawOSDText(tempG); 589 } 590 587 591 if (playHeadMarker != null) { 588 592 playHeadMarker.paint(tempG, this); -
trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
r3083 r3178 7 7 import java.awt.BorderLayout; 8 8 import java.awt.Component; 9 import java.awt.Graphics2D; 9 10 import java.awt.event.ActionEvent; 10 11 import java.awt.event.ActionListener; … … 60 61 public void showNotify() { 61 62 DatasetEventManager.getInstance().addDatasetListener(listenerAdapter, FireMode.IN_EDT_CONSOLIDATED); 63 filters.executeFilters(); 62 64 } 63 65 … … 65 67 public void hideNotify() { 66 68 DatasetEventManager.getInstance().removeDatasetListener(listenerAdapter); 69 filters.clearFilterFlags(); 67 70 } 68 71 … … 76 79 if(filter != null){ 77 80 filters.addFilter(filter); 78 filters. filter();81 filters.executeFilters(); 79 82 } 80 83 } … … 91 94 if(filter != null){ 92 95 filters.setFilter(index, filter); 93 filters. filter();96 filters.executeFilters(); 94 97 } 95 98 } … … 188 191 189 192 public void processDatasetEvent(AbstractDatasetChangedEvent event) { 190 filters.filter(); 193 System.err.print("FilterDialog/processDatasetEvent"); 194 filters.executeFilters(); 191 195 } 192 196 … … 214 218 setTitle("Filter Hidden:" + filters.hiddenCount + " Disabled:" + filters.disabledCount); 215 219 } 220 221 public void drawOSDText(Graphics2D g) { 222 filters.drawOSDText(g); 223 } 216 224 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
r3087 r3178 108 108 setMinimumSize(new Dimension(0,0)); 109 109 this.preferredHeight = preferredHeight; 110 toggleAction = new ToggleDialogAction( this,name, "dialogs/"+iconName, tooltip, shortcut, iconName);110 toggleAction = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortcut, iconName); 111 111 String helpId = "Dialog/"+getClass().getName().substring(getClass().getName().lastIndexOf('.')+1); 112 112 toggleAction.putValue("help", helpId.substring(0, helpId.length()-6)); … … 136 136 * 137 137 */ 138 public final static class ToggleDialogAction extends JosmAction { 139 140 private ToggleDialog dialog; 141 142 private ToggleDialogAction(ToggleDialog dialog, String name, String iconName, String tooltip, Shortcut shortcut, String prefname) { 138 public final class ToggleDialogAction extends JosmAction { 139 140 private ToggleDialogAction(String name, String iconName, String tooltip, Shortcut shortcut, String prefname) { 143 141 super(name, iconName, tooltip, shortcut, false); 144 if (dialog == null)145 throw new IllegalArgumentException("The ToggleDialog supplied for " + name + " cannot be null.");146 this.dialog = dialog;147 142 } 148 143 149 144 public void actionPerformed(ActionEvent e) { 150 dialog.toggleButtonHook(); 151 if (dialog.isShowing) { 152 dialog.hideDialog(); 153 dialog.dialogsPanel.reconstruct(Action.ELEMENT_SHRINKS, null); 145 toggleButtonHook(); 146 if (isShowing) { 147 hideDialog(); 148 dialogsPanel.reconstruct(Action.ELEMENT_SHRINKS, null); 149 hideNotify(); 154 150 } else { 155 dialog.showDialog();156 if ( dialog.isDocked &&dialog.isCollapsed) {157 dialog.expand();151 showDialog(); 152 if (isDocked && isCollapsed) { 153 expand(); 158 154 } 159 if ( dialog.isDocked) {160 dialog .dialogsPanel.reconstruct(Action.INVISIBLE_TO_DEFAULT,dialog);155 if (isDocked) { 156 dialogsPanel.reconstruct(Action.INVISIBLE_TO_DEFAULT, ToggleDialog.this); 161 157 } 158 showNotify(); 162 159 } 163 160 } … … 166 163 public void destroy() { 167 164 super.destroy(); 168 dialog = null;169 165 } 170 166 } … … 185 181 toggleAction.putValue("selected", false); 186 182 toggleAction.putValue("selected", true); 187 showNotify();188 183 } 189 184 … … 218 213 setIsShowing(false); 219 214 toggleAction.putValue("selected", false); 220 hideNotify();221 215 } 222 216 … … 259 253 setMinimumSize(new Dimension(Integer.MAX_VALUE,20)); 260 254 lblMinimized.setIcon(ImageProvider.get("misc", "minimized")); 261 hideNotify();262 255 } 263 256 else throw new IllegalStateException(); … … 275 268 setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); 276 269 lblMinimized.setIcon(ImageProvider.get("misc", "normal")); 277 showNotify();278 270 } 279 271 else throw new IllegalStateException(); … … 402 394 hideDialog(); 403 395 dialogsPanel.reconstruct(Action.ELEMENT_SHRINKS, null); 396 hideNotify(); 404 397 } 405 398 } … … 441 434 } else { 442 435 hideDialog(); 436 hideNotify(); 443 437 } 444 438 }
Note:
See TracChangeset
for help on using the changeset viewer.