Changeset 6064 in josm
- Timestamp:
- 2013-07-12T20:10:07+02:00 (12 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
r6038 r6064 189 189 tabbedPane.addChangeListener( 190 190 new ChangeListener() { 191 @Override 191 192 public void stateChanged(ChangeEvent e) { 192 193 JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource(); … … 214 215 } 215 216 ); 216 217 218 tagEditorPanel.setNextFocusComponent(memberTable); 219 selectionTable.setFocusable(false); 217 220 memberTableModel.setSelectedMembers(selectedMembers); 218 221 HelpUtil.setHelpContext(getRootPane(),ht("/Dialog/RelationEditor")); … … 606 609 addToWindowMenu(); 607 610 } 611 tagEditorPanel.requestFocusInWindow(); 608 612 } else { 609 613 // make sure all registered listeners are unregistered -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
r6058 r6064 6 6 import java.awt.Container; 7 7 import java.awt.Dimension; 8 import java.awt.KeyboardFocusManager; 8 9 import java.awt.event.ActionEvent; 9 10 import java.awt.event.KeyEvent; … … 176 177 col = 0; 177 178 row++; 179 } else { 180 // go to next component, no more rows in this table 181 KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); 182 manager.focusNextComponent(); 183 return; 178 184 } 179 185 changeSelection(row, col, false, false); -
trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorModel.java
r5891 r6064 113 113 } 114 114 115 @Override 115 116 public int getColumnCount() { 116 117 return 2; 117 118 } 118 119 120 @Override 119 121 public int getRowCount() { 120 122 return tags.size(); 121 123 } 122 124 125 @Override 123 126 public Object getValueAt(int rowIndex, int columnIndex) { 124 127 if (rowIndex >= getRowCount()) … … 335 338 */ 336 339 public void ensureOneTag() { 337 if (tags. size() == 0) {340 if (tags.isEmpty()) { 338 341 appendNewTag(); 339 342 } … … 528 531 tags, 529 532 new Comparator<TagModel>() { 533 @Override 530 534 public int compare(TagModel self, TagModel other) { 531 535 return self.getName().compareTo(other.getName()); -
trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java
r5266 r6064 3 3 4 4 import java.awt.BorderLayout; 5 import java.awt.Component; 5 6 import java.awt.GridBagConstraints; 6 7 import java.awt.GridBagLayout; 7 8 import java.awt.Insets; 9 import java.awt.event.FocusAdapter; 10 import java.awt.event.FocusEvent; 8 11 import java.util.EnumSet; 9 12 … … 58 61 } 59 62 63 public void setNextFocusComponent(Component nextFocusComponent) { 64 tagTable.setNextFocusComponent(nextFocusComponent); 65 } 66 60 67 /** 61 68 * builds the panel with the button row … … 116 123 }); 117 124 } 125 126 addFocusListener(new FocusAdapter() { 127 @Override public void focusGained(FocusEvent e) { 128 tagTable.requestFocusInCell(0, 0); 129 } 130 }); 118 131 } 119 132 -
trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java
r6063 r6064 45 45 /** the table cell editor used by this table */ 46 46 private TagCellEditor editor = null; 47 47 private final TagEditorModel model; 48 private Component nextFocusComponent; 49 48 50 /** a list of components to which focus can be transferred without stopping 49 51 * cell editing this table. … … 91 93 */ 92 94 class SelectNextColumnCellAction extends AbstractAction { 95 @Override 93 96 public void actionPerformed(ActionEvent e) { 94 97 run(); … … 101 104 getCellEditor().stopCellEditing(); 102 105 } 103 106 107 if (row==-1 && col==-1) { 108 requestFocusInCell(0, 0); 109 return; 110 } 111 104 112 if (col == 0) { 105 113 col++; … … 110 118 // we are at the end. Append an empty row and move the focus 111 119 // to its second column 112 TagEditorModel model = (TagEditorModel)getModel(); 113 model.appendNewTag(); 114 col=0; 115 row++; 116 } 117 changeSelection(row, col, false, false); 120 String key = ((TagModel)model.getValueAt(row, 0)).getName(); 121 if (!key.trim().isEmpty()) { 122 model.appendNewTag(); 123 col=0; 124 row++; 125 } else { 126 clearSelection(); 127 if (nextFocusComponent!=null) 128 nextFocusComponent.requestFocusInWindow(); 129 return; 130 } 131 } 118 132 requestFocusInCell(row,col); 119 133 } … … 143 157 row--; 144 158 } 145 changeSelection(row, col, false, false);146 159 requestFocusInCell(row,col); 147 160 } … … 184 197 protected void deleteTagNames() { 185 198 int[] rows = getSelectedRows(); 186 TagEditorModel model = (TagEditorModel)getModel();187 199 model.deleteTagNames(rows); 188 200 } … … 193 205 protected void deleteTagValues() { 194 206 int[] rows = getSelectedRows(); 195 TagEditorModel model = (TagEditorModel)getModel();196 207 model.deleteTagValues(rows); 197 208 } … … 202 213 protected void deleteTags() { 203 214 int[] rows = getSelectedRows(); 204 TagEditorModel model = (TagEditorModel)getModel();205 215 model.deleteTags(rows); 206 216 } … … 230 240 } 231 241 232 TagEditorModel model = (TagEditorModel)getModel();233 242 if (model.getRowCount() == 0) { 234 243 model.ensureOneTag(); … … 277 286 getCellEditor().stopCellEditing(); 278 287 } 279 ((TagEditorModel)getModel()).appendNewTag(); 280 final int rowIdx = getModel().getRowCount()-1; 281 requestFocusInCell(rowIdx, 0); 282 } 283 288 final int rowIdx = model.getRowCount()-1; 289 String key = ((TagModel)model.getValueAt(rowIdx, 0)).getName(); 290 if (!key.trim().isEmpty()) { 291 model.appendNewTag(); 292 } 293 requestFocusInCell(model.getRowCount()-1, 0); 294 } 295 284 296 protected void updateEnabledState() { 285 297 setEnabled(TagTable.this.isEnabled()); … … 356 368 public TagTable(TagEditorModel model) { 357 369 super(model, new TagTableColumnModel(model.getColumnSelectionModel()), model.getRowSelectionModel()); 370 this.model = model; 358 371 init(); 359 372 } … … 419 432 } 420 433 434 public void setNextFocusComponent(Component nextFocusComponent) { 435 this.nextFocusComponent = nextFocusComponent; 436 } 437 421 438 public TagCellEditor getTableCellEditor() { 422 439 return editor; … … 445 462 446 463 public void requestFocusInCell(final int row, final int col) { 464 changeSelection(row, col, false, false); 447 465 editCellAt(row, col); 448 466 Component c = getEditorComponent();
Note:
See TracChangeset
for help on using the changeset viewer.