Changeset 1023 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
- Timestamp:
- 2008-10-05T17:06:27+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
r810 r1023 64 64 import org.openstreetmap.josm.tools.AutoCompleteComboBox; 65 65 import org.openstreetmap.josm.tools.GBC; 66 import org.openstreetmap.josm.tools.ShortCut; 66 67 67 68 /** … … 88 89 */ 89 90 private NameVisitor nameVisitor = new NameVisitor(); 90 91 91 92 /** 92 93 * Watches for double clicks and from editing or new property, depending on the … … 134 135 } 135 136 String msg = "<html>"+trn("This will change up to {0} object.", "This will change up to {0} objects.", sel.size(), sel.size())+"<br><br>("+tr("An empty value deletes the key.", key)+")</html>"; 136 137 137 138 JPanel panel = new JPanel(new BorderLayout()); 138 139 panel.add(new JLabel(msg), BorderLayout.NORTH); … … 159 160 String str = null; 160 161 str=(String) value; 161 if (valueCount.containsKey(objKey)){ 162 if (valueCount.containsKey(objKey)){ 162 163 Map<String, Integer> m=valueCount.get(objKey); 163 164 if (m.containsKey(str)) { … … 269 270 * This simply fires up an relation editor for the relation shown; everything else 270 271 * is the editor's business. 271 * 272 * 272 273 * @param row 273 274 */ 274 void membershipEdit(int row) { 275 final RelationEditor editor = new RelationEditor((Relation)membershipData.getValueAt(row, 0), 275 void membershipEdit(int row) { 276 final RelationEditor editor = new RelationEditor((Relation)membershipData.getValueAt(row, 0), 276 277 (Collection<RelationMember>) membershipData.getValueAt(row, 1) ); 277 278 editor.setVisible(true); … … 296 297 keys.setPossibleItems(allData.keySet()); 297 298 keys.setEditable(true); 298 299 299 300 p.add(keys, BorderLayout.CENTER); 300 301 … … 403 404 } 404 405 }; 405 406 406 407 /** 407 408 * The properties list. … … 417 418 */ 418 419 public PropertiesDialog(MapFrame mapFrame) { 419 super(tr("Properties/Memberships"), "propertiesdialog", tr("Properties for selected objects."), KeyEvent.VK_P, 150); 420 super(tr("Properties/Memberships"), "propertiesdialog", tr("Properties for selected objects."), 421 ShortCut.registerShortCut("subwindow:properies", tr("Toggle properties window"), KeyEvent.VK_P, ShortCut.GROUP_LAYER), 150); 420 422 421 423 // --------------------------------------- 422 // This drop-down is really deprecated but we offer people a chance to 423 // activate it if they really want. Presets should be used from the 424 // This drop-down is really deprecated but we offer people a chance to 425 // activate it if they really want. Presets should be used from the 424 426 // menu. 425 if (TaggingPresetPreference.taggingPresets.size() > 0 && 427 if (TaggingPresetPreference.taggingPresets.size() > 0 && 426 428 Main.pref.getBoolean("taggingpreset.in-properties-dialog", false)) { 427 429 Vector<ActionListener> allPresets = new Vector<ActionListener>(); … … 448 450 449 451 // setting up the properties table 450 452 451 453 propertyData.setColumnIdentifiers(new String[]{tr("Key"),tr("Value")}); 452 454 propertyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 453 455 454 456 propertyTable.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer(){ 455 457 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { … … 476 478 } 477 479 }); 478 480 479 481 // setting up the membership table 480 482 481 483 membershipData.setColumnIdentifiers(new String[]{tr("Member Of"),tr("Role")}); 482 484 membershipTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 483 485 484 486 membershipTable.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer() { 485 487 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { … … 492 494 } 493 495 }); 494 496 495 497 membershipTable.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer() { 496 498 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { … … 498 500 if (c instanceof JLabel) { 499 501 Collection<RelationMember> col = (Collection<RelationMember>) value; 500 502 501 503 String text = null; 502 504 for (RelationMember r : col) { … … 509 511 } 510 512 } 511 513 512 514 ((JLabel)c).setText(text); 513 515 } … … 515 517 } 516 518 }); 517 519 518 520 // combine both tables and wrap them in a scrollPane 519 521 JPanel bothTables = new JPanel(); … … 523 525 bothTables.add(membershipTable.getTableHeader(), GBC.eol().fill(GBC.HORIZONTAL)); 524 526 bothTables.add(membershipTable, GBC.eol().fill(GBC.BOTH)); 525 527 526 528 DblClickWatch dblClickWatch = new DblClickWatch(); 527 529 propertyTable.addMouseListener(dblClickWatch); … … 565 567 selectionChanged(sel); // update whole table 566 568 } 567 569 568 570 } 569 571 } … … 587 589 } 588 590 }; 589 591 590 592 buttonPanel.add(new SideButton(marktr("Add"),"add","Properties",tr("Add a new key/value pair to all objects"), KeyEvent.VK_A, buttonAction)); 591 593 buttonPanel.add(new SideButton(marktr("Edit"),"edit","Properties",tr("Edit the value of the selected key for all objects"), KeyEvent.VK_E, buttonAction)); … … 611 613 612 614 // re-load property data 613 615 614 616 propertyData.setRowCount(0); 615 617 … … 639 641 propertyData.addRow(new Object[]{e.getKey(), e.getValue()}); 640 642 } 641 643 642 644 // re-load membership data 643 645 // this is rather expensive since we have to walk through all members of all existing relationships. 644 646 // could use back references here for speed if necessary. 645 647 646 648 membershipData.setRowCount(0); 647 649 648 650 TreeMap<Relation, Collection<RelationMember>> roles = new TreeMap<Relation, Collection<RelationMember>>(); 649 651 for (Relation r : Main.ds.relations) { … … 661 663 } 662 664 } 663 665 664 666 for (Entry<Relation, Collection<RelationMember>> e : roles.entrySet()) { 665 667 membershipData.addRow(new Object[]{e.getKey(), e.getValue()}); 666 668 } 667 669 668 670 membershipTable.getTableHeader().setVisible(membershipData.getRowCount() > 0); 669 671 }
Note:
See TracChangeset
for help on using the changeset viewer.