Changeset 6070 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
- Timestamp:
- 2013-07-17T00:01:49+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
r6068 r6070 152 152 */ 153 153 private final TagEditHelper editHelper = new TagEditHelper(propertyData, valueCount); 154 154 155 155 private final DataSetListenerAdapter dataChangedAdapter = new DataSetListenerAdapter(this); 156 156 private final HelpAction helpAction = new HelpAction(); … … 170 170 private final SelectRelationAction selectRelationAction = new SelectRelationAction(false); 171 171 private final SelectRelationAction addRelationToSelectionAction = new SelectRelationAction(true); 172 172 173 173 private final DownloadMembersAction downloadMembersAction = new DownloadMembersAction(); 174 174 private final DownloadSelectedIncompleteMembersAction downloadSelectedIncompleteMembersAction = new DownloadSelectedIncompleteMembersAction(); 175 175 176 176 private final SelectMembersAction selectMembersAction = new SelectMembersAction(false); 177 177 private final SelectMembersAction addMembersToSelectionAction = new SelectMembersAction(true); 178 178 179 179 private final HighlightHelper highlightHelper= new HighlightHelper(); 180 180 181 181 /** 182 182 * The Add button (needed to be able to disable it) … … 195 195 */ 196 196 private final PresetListPanel presets = new PresetListPanel(); 197 197 198 198 /** 199 199 * Text to display when nothing selected. … … 214 214 } 215 215 }; 216 216 217 217 // <editor-fold defaultstate="collapsed" desc="Dialog construction and helper methods"> 218 218 219 219 /** 220 220 * Create a new PropertiesDialog … … 231 231 setupMembershipMenu(); 232 232 buildMembershipTable(); 233 233 234 234 // combine both tables and wrap them in a scrollPane 235 235 JPanel bothTables = new JPanel(); … … 249 249 bothTables.add(presets, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 2, 5, 2)); 250 250 } 251 251 252 252 setupKeyboardShortcuts(); 253 253 … … 257 257 propertyTable.getSelectionModel().addListSelectionListener(deleteAction); 258 258 membershipTable.getSelectionModel().addListSelectionListener(deleteAction); 259 260 259 260 261 261 JScrollPane scrollPane = (JScrollPane) createLayout(bothTables, true, Arrays.asList(new SideButton[] { 262 262 this.btnAdd, this.btnEdit, this.btnDel … … 273 273 editHelper.loadTagsIfNeeded(); 274 274 } 275 275 276 276 private void buildPropertiesTable() { 277 277 // setting up the properties table … … 280 280 propertyTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 281 281 propertyTable.getTableHeader().setReorderingAllowed(false); 282 282 283 283 propertyTable.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer(){ 284 284 @Override public Component getTableCellRendererComponent(JTable table, Object value, … … 383 383 mod.getColumn(0).setPreferredWidth(200); 384 384 } 385 385 386 386 /** 387 387 * creates the popup menu @field membershipMenu and its launcher on membership table … … 432 432 }); 433 433 } 434 435 /** 436 * creates the popup menu @field propertyMenu and its launcher on property table 434 435 /** 436 * creates the popup menu @field propertyMenu and its launcher on property table 437 437 */ 438 438 private void setupPropertiesMenu() { … … 448 448 propertyTable.addMouseListener(new PopupMenuLauncher(propertyMenu)); 449 449 } 450 450 451 451 /** 452 452 * Assignas all needed keys like Enter and Spacebar to most important actions 453 453 */ 454 454 private void setupKeyboardShortcuts() { 455 455 456 456 // ENTER = editAction, open "edit" dialog 457 457 propertyTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) … … 461 461 .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),"onTableEnter"); 462 462 membershipTable.getActionMap().put("onTableEnter",editAction); 463 464 // INSERT button = addAction, open "add property" dialog 463 464 // INSERT button = addAction, open "add property" dialog 465 465 propertyTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) 466 466 .put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0),"onTableInsert"); 467 467 propertyTable.getActionMap().put("onTableInsert",addAction); 468 468 469 469 // unassign some standard shortcuts for JTable to allow upload / download 470 470 InputMapUtils.unassignCtrlShiftUpDown(propertyTable, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); 471 471 472 472 // unassign some standard shortcuts for correct copy-pasting, fix #8508 473 473 propertyTable.setTransferHandler(null); 474 474 475 475 propertyTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) 476 476 .put(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),"onCopy"); … … 479 479 // allow using enter to add tags for all look&feel configurations 480 480 InputMapUtils.enableEnter(this.btnAdd); 481 481 482 482 // DEL button = deleteAction 483 483 getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( … … 485 485 ); 486 486 getActionMap().put("delete", deleteAction); 487 487 488 488 // F1 button = custom help action 489 489 getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( … … 491 491 getActionMap().put("onHelp", helpAction); 492 492 } 493 493 494 494 /** 495 495 * This simply fires up an {@link RelationEditor} for the relation shown; everything else … … 506 506 ((MemberInfo) membershipData.getValueAt(row, 1)).role).setVisible(true); 507 507 } 508 508 509 509 private int findRow(TableModel model, Object value) { 510 510 for (int i=0; i<model.getRowCount(); i++) { … … 514 514 return -1; 515 515 } 516 516 517 517 /** 518 518 * Update selection status, call @{link #selectionChanged} function. … … 525 525 } 526 526 } 527 527 528 528 // </editor-fold> 529 529 530 530 // <editor-fold defaultstate="collapsed" desc="Event listeners methods"> 531 531 532 532 @Override 533 533 public void showNotify() { … … 558 558 } 559 559 } 560 560 561 561 @Override 562 562 public void destroy() { … … 625 625 ? e.getValue().keySet().iterator().next() : tr("<different>")); 626 626 } 627 627 628 628 membershipData.setRowCount(0); 629 629 … … 698 698 } 699 699 } 700 700 701 701 /* ---------------------------------------------------------------------------------- */ 702 702 /* EditLayerChangeListener */ … … 721 721 722 722 // <editor-fold defaultstate="collapsed" desc="Methods that are called by plugins to extend fuctionality "> 723 723 724 724 /** 725 725 * Replies the property popup menu handler. … … 752 752 return row > -1 ? (IRelation) membershipData.getValueAt(row, 0) : null; 753 753 } 754 754 755 755 // </editor-fold> 756 756 757 757 /** 758 758 * Class that watches for mouse clicks … … 852 852 } 853 853 }; 854 854 855 855 /** 856 856 * Action handling delete button press in properties dialog. … … 940 940 } else if (membershipTable.getSelectedRowCount() > 0) { 941 941 int[] rows = membershipTable.getSelectedRows(); 942 // delete from last relation to convserve row numbers in the table 942 // delete from last relation to convserve row numbers in the table 943 943 for (int i=rows.length-1; i>=0; i--) { 944 944 deleteFromRelation(rows[i]);
Note:
See TracChangeset
for help on using the changeset viewer.