Ticket #1478: PropDiag.patch

File PropDiag.patch, 2.7 KB (added by xeen, 16 years ago)
  • trunk\src\org\openstreetmap\josm\gui\dialogs\PropertiesDialog.java

    old new  
    1818import java.awt.event.KeyEvent;
    1919import java.awt.event.MouseAdapter;
    2020import java.awt.event.MouseEvent;
     21import java.lang.String;
    2122import java.util.Collection;
    2223import java.util.Collections;
    2324import java.util.HashMap;
     
    207208            return;
    208209        }
    209210
    210         String value = values.getEditor().getItem().toString();
     211        String value = values.getEditor().getItem().toString().trim();
    211212        // is not Java 1.5
    212213        //value = java.text.Normalizer.normalize(value, java.text.Normalizer.Form.NFC);
    213214        if (value.equals(""))
    214215            value = null; // delete the key
    215         String newkey = keys.getEditor().getItem().toString();
     216        String newkey = keys.getEditor().getItem().toString().trim();
    216217        //newkey = java.text.Normalizer.normalize(newkey, java.text.Normalizer.Form.NFC);
    217218        if (newkey.equals("")) {
    218219            newkey = key;
     
    258259        Main.ds.fireSelectionChanged(sel);
    259260        selectionChanged(sel); // update whole table
    260261        Main.parent.repaint(); // repaint all - drawing could have been changed
     262       
     263        if(!key.equals(newkey)) {
     264            for(int i=0; i < propertyTable.getRowCount(); i++)
     265                if(propertyData.getValueAt(i, 0).toString() == newkey) {
     266                    row=i;
     267                    break;
     268                }
     269        }
     270        propertyTable.changeSelection(row, 0, false, false);
    261271    }
    262272
    263273    /**
     
    325335        pane.createDialog(Main.parent, tr("Change values?")).setVisible(true);
    326336        if (!Integer.valueOf(JOptionPane.OK_OPTION).equals(pane.getValue()))
    327337            return;
    328         String key = keys.getEditor().getItem().toString();
    329         String value = values.getEditor().getItem().toString();
     338        String key = keys.getEditor().getItem().toString().trim();
     339        String value = values.getEditor().getItem().toString().trim();
    330340        if (value.equals(""))
    331341            return;
    332342        if (key.equals("created_by"))
     
    391401        Main.main.undoRedo.add(new ChangePropertyCommand(sel, key, null));
    392402        Main.ds.fireSelectionChanged(sel);
    393403        selectionChanged(sel); // update table
     404         
     405        int nextRow = row < propertyTable.getRowCount() ? row : propertyTable.getRowCount()-1;
     406        propertyTable.changeSelection(nextRow, 0, false, false);
    394407    }
    395408
    396409    /**
     
    702715            setTitle(tr("Properties / Memberships"), false);
    703716        }
    704717
    705         }
     718    }
    706719}