Changeset 62 in josm for src/org/openstreetmap


Ignore:
Timestamp:
2006-03-16T00:02:54+01:00 (19 years ago)
Author:
imi
Message:
  • improved search to support key:part_of_value stuff
  • disabled hotkeys in PropertyDialog while conflicting with mapmodes
Location:
src/org/openstreetmap/josm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java

    r61 r62  
    4343         */
    4444        public AddWayAction(MapFrame mapFrame, MapMode followMode) {
    45                 super("Add Way", "addway", "Combine line segments to a new way.", KeyEvent.VK_W, mapFrame);
     45                super("Add Way", "addway", "Combine selected segments to a new way.", KeyEvent.VK_W, mapFrame);
    4646                this.followMode = followMode;
    4747        }
  • src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java

    r36 r62  
    273273                b.addActionListener(actionListener);
    274274                b.setToolTipText(tooltip);
    275                 b.setMnemonic(mnemonic);
     275                //b.setMnemonic(mnemonic); TODO disabled until mapmodes have no Alt in their hotkey.
    276276                return b;
    277277        }
  • src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r61 r62  
    1414import javax.swing.DefaultListModel;
    1515import javax.swing.JButton;
     16import javax.swing.JLabel;
    1617import javax.swing.JList;
    1718import javax.swing.JOptionPane;
     
    8081                button.setToolTipText("Search for objects.");
    8182                button.addActionListener(new ActionListener(){
     83                        private String lastSearch = "";
    8284                        public void actionPerformed(ActionEvent e) {
    83                                 String search = JOptionPane.showInputDialog(Main.main, "Please enter a search string", "Search", JOptionPane.INFORMATION_MESSAGE);
    84                                 if (search == null)
     85                                JLabel l = new JLabel("Please enter a search string.");
     86                                l.setToolTipText("<html>Fulltext search.<ul>" +
     87                                                "<li>Baker Street  - search for everything with 'Baker Street' in any key or name.</li>" +
     88                                                "<li>name:Bak  - search for every object with key=name and 'Bak' anywhere in the value.</li>" +
     89                                                "<li>foot:  - search for everything with the key=foot set to any value." +
     90                                                "</ul></html>");
     91                                lastSearch = (String)JOptionPane.showInputDialog(Main.main,l,"Search",JOptionPane.INFORMATION_MESSAGE,null,null,lastSearch);
     92                                if (lastSearch == null)
    8593                                        return;
    8694                                Main.main.ds.clearSelection();
     
    8896                                        if (osm.keys != null) {
    8997                                                for (Entry<Key, String> ent : osm.keys.entrySet()) {
    90                                                         if (search.indexOf(ent.getKey().name) != -1 || search.indexOf(ent.getValue()) != -1) {
     98                                                        if (match(lastSearch, ent.getKey(), ent.getValue())) {
    9199                                                                osm.setSelected(true);
    92100                                                                break;
     
    97105                                selectionChanged(Main.main.ds.getSelected());
    98106                                Main.main.getMapFrame().repaint();
     107                        }
     108                        private boolean match(String search, Key key, String value) {
     109                                int colon = search.indexOf(':');
     110                                if (colon == -1)
     111                                        return key.name.indexOf(search) != -1 || value.indexOf(search) != -1;
     112                                return key.name.equals(search.substring(0, colon)) && value.indexOf(search.substring(colon+1)) != -1;
    99113                        }
    100114                });
Note: See TracChangeset for help on using the changeset viewer.