Ticket #8311: 8311.diff
| File 8311.diff, 4.9 KB (added by , 13 years ago) |
|---|
-
core/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
2 2 package org.openstreetmap.josm.gui.dialogs.properties; 3 3 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 import static org.openstreetmap.josm.tools.I18n.trn;6 5 7 6 import java.awt.Component; 8 7 import java.awt.Container; … … 130 129 { 131 130 int row = propertyTable.rowAtPoint(e.getPoint()); 132 131 if (row > -1) { 133 editHelper.editProperty(row); 132 boolean focusOnKey = (propertyTable.columnAtPoint(e.getPoint()) == 0); 133 editHelper.editProperty(row, focusOnKey); 134 134 } else { 135 135 editHelper.addProperty(); 136 136 btnAdd.requestFocusInWindow(); … … 875 875 return; 876 876 if (propertyTable.getSelectedRowCount() == 1) { 877 877 int row = propertyTable.getSelectedRow(); 878 editHelper.editProperty(row );878 editHelper.editProperty(row, false); 879 879 } else if (membershipTable.getSelectedRowCount() == 1) { 880 880 int row = membershipTable.getSelectedRow(); 881 881 editMembership(row); -
core/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
23 23 import java.awt.event.KeyEvent; 24 24 import java.awt.event.MouseAdapter; 25 25 import java.awt.event.MouseEvent; 26 import java.awt.event.WindowAdapter; 27 import java.awt.event.WindowEvent; 26 28 import java.awt.image.BufferedImage; 27 29 import java.util.ArrayList; 28 30 import java.util.Arrays; … … 137 139 /** 138 140 * Edit the value in the properties table row 139 141 * @param row The row of the table from which the value is edited. 142 * @param focusOnKey Determines if the initial focus should be set on key instead of value 143 * @since 5653 140 144 */ 141 public void editProperty(final int row ) {145 public void editProperty(final int row, boolean focusOnKey) { 142 146 changedKey = null; 143 147 sel = Main.main.getCurrentDataSet().getSelected(); 144 148 if (sel.isEmpty()) return; … … 147 151 objKey=key; 148 152 149 153 final EditTagDialog editDialog = new EditTagDialog(key, row, 150 (Map<String, Integer>) propertyData.getValueAt(row, 1) );154 (Map<String, Integer>) propertyData.getValueAt(row, 1), focusOnKey); 151 155 editDialog.showDialog(); 152 156 if (editDialog.getValue() !=1 ) return; 153 157 editDialog.performTagEdit(); … … 209 213 210 214 211 215 public class EditTagDialog extends AbstractTagsDialog { 212 String oldValue; 213 String key; 214 Map<String, Integer> m; 215 int row; 216 final String key; 217 final Map<String, Integer> m; 218 final int row; 216 219 217 220 Comparator<AutoCompletionListItem> usedValuesAwareComparator = new Comparator<AutoCompletionListItem>() { 218 221 @Override … … 248 251 } 249 252 }; 250 253 251 private EditTagDialog(String key, int row, Map<String, Integer> map ) {254 private EditTagDialog(String key, int row, Map<String, Integer> map, final boolean initialFocusOnKey) { 252 255 super(Main.parent, trn("Change value?", "Change values?", map.size()), new String[] {tr("OK"),tr("Cancel")}); 253 256 setButtonIcons(new String[] {"ok","cancel"}); 254 257 setCancelButton(2); … … 305 308 306 309 setContent(mainPanel, false); 307 310 308 // TODO: Is it correct place for th ois code - was in311 // TODO: Is it correct place for this code - was in 309 312 // new JOptionPane(p, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION) { 310 313 // @Override public void selectInitialValue() { 311 314 Clipboard sysSel = Toolkit.getDefaultToolkit().getSystemSelection(); … … 318 321 values.requestFocusInWindow(); 319 322 values.getEditor().selectAll(); 320 323 } 324 325 addWindowListener(new WindowAdapter() { 326 @Override 327 public void windowOpened(WindowEvent e) { 328 if (initialFocusOnKey) { 329 keys.requestFocusInWindow(); 330 } else { 331 values.requestFocusInWindow(); 332 } 333 } 334 }); 321 335 } 322 336 323 337 /**
