Changeset 8980 in josm
- Timestamp:
- 2015-11-02T21:19:25+01:00 (7 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/dialogs/properties
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
r8863 r8980 9 9 import java.awt.GridBagLayout; 10 10 import java.awt.Point; 11 import java.awt.TextField; 11 12 import java.awt.event.ActionEvent; 12 13 import java.awt.event.InputEvent; … … 14 15 import java.awt.event.MouseAdapter; 15 16 import java.awt.event.MouseEvent; 17 import java.beans.PropertyChangeEvent; 18 import java.beans.PropertyChangeListener; 16 19 import java.net.HttpURLConnection; 17 20 import java.net.URI; … … 42 45 import javax.swing.KeyStroke; 43 46 import javax.swing.ListSelectionModel; 47 import javax.swing.RowFilter; 44 48 import javax.swing.event.ListSelectionEvent; 45 49 import javax.swing.event.ListSelectionListener; … … 48 52 import javax.swing.table.TableColumnModel; 49 53 import javax.swing.table.TableModel; 54 import javax.swing.table.TableRowSorter; 50 55 51 56 import org.openstreetmap.josm.Main; … … 57 62 import org.openstreetmap.josm.actions.relation.SelectRelationAction; 58 63 import org.openstreetmap.josm.actions.search.SearchAction.SearchSetting; 64 import org.openstreetmap.josm.actions.search.SearchCompiler; 59 65 import org.openstreetmap.josm.command.ChangeCommand; 60 66 import org.openstreetmap.josm.command.ChangePropertyCommand; … … 68 74 import org.openstreetmap.josm.data.osm.RelationMember; 69 75 import org.openstreetmap.josm.data.osm.Tag; 76 import org.openstreetmap.josm.data.osm.Tagged; 70 77 import org.openstreetmap.josm.data.osm.Way; 71 78 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; … … 85 92 import org.openstreetmap.josm.gui.help.HelpUtil; 86 93 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 94 import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset; 87 95 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler; 88 import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;89 96 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType; 90 97 import org.openstreetmap.josm.gui.util.GuiHelper; 91 98 import org.openstreetmap.josm.gui.util.HighlightHelper; 99 import org.openstreetmap.josm.gui.widgets.CompileSearchTextDecorator; 100 import org.openstreetmap.josm.gui.widgets.DisableShortcutsOnFocusGainedTextField; 101 import org.openstreetmap.josm.gui.widgets.JosmTextField; 92 102 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher; 93 103 import org.openstreetmap.josm.tools.GBC; … … 128 138 * The tag data of selected objects. 129 139 */ 130 private final DefaultTableModel tagData = new ReadOnlyTableModel(); 140 private final ReadOnlyTableModel tagData = new ReadOnlyTableModel(); 141 private final TableRowSorter<ReadOnlyTableModel> tagRowSorter = new TableRowSorter<>(tagData); 142 private final JosmTextField tagTableFilter; 131 143 132 144 /** … … 243 255 buildMembershipTable(); 244 256 257 tagTableFilter = setupFilter(); 258 245 259 // combine both tables and wrap them in a scrollPane 246 260 boolean top = Main.pref.getBoolean("properties.presets.top", true); … … 252 266 } 253 267 bothTables.add(selectSth, GBC.eol().fill().insets(10, 10, 10, 10)); 268 bothTables.add(tagTableFilter, GBC.eol().fill(GBC.HORIZONTAL)); 254 269 bothTables.add(tagTable.getTableHeader(), GBC.eol().fill(GBC.HORIZONTAL)); 255 270 bothTables.add(tagTable, GBC.eol().fill(GBC.BOTH)); … … 294 309 tagTable.getColumnModel().getColumn(0).setCellRenderer(cellRenderer); 295 310 tagTable.getColumnModel().getColumn(1).setCellRenderer(cellRenderer); 311 tagTable.setRowSorter(tagRowSorter); 296 312 } 297 313 … … 456 472 } 457 473 474 public void setFilter(final SearchCompiler.Match filter) { 475 this.tagRowSorter.setRowFilter(new SearchBasedRowFilter(filter)); 476 } 477 458 478 /** 459 479 * Assigns all needed keys like Enter and Spacebar to most important actions. … … 498 518 KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "onHelp"); 499 519 getActionMap().put("onHelp", helpAction); 520 } 521 522 private JosmTextField setupFilter() { 523 final JosmTextField f = new DisableShortcutsOnFocusGainedTextField(); 524 f.setToolTipText(tr("Tag filter")); 525 final CompileSearchTextDecorator decorator = CompileSearchTextDecorator.decorate(f); 526 f.addPropertyChangeListener("filter", new PropertyChangeListener() { 527 @Override 528 public void propertyChange(PropertyChangeEvent evt) { 529 setFilter(decorator.getMatch()); 530 } 531 }); 532 return f; 500 533 } 501 534 … … 686 719 tagTable.setVisible(hasTags); 687 720 tagTable.getTableHeader().setVisible(hasTags); 721 tagTableFilter.setVisible(hasTags); 688 722 selectSth.setVisible(!hasSelection); 689 723 pluginHook.setVisible(hasSelection);
Note: See TracChangeset
for help on using the changeset viewer.