Changeset 62 in josm


Ignore:
Timestamp:
Mar 16, 2006 12:02:54 AM (7 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.