Ticket #21240: 21240.housenumber.patch
File 21240.housenumber.patch, 8.3 KB (added by , 4 years ago) |
---|
-
src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java
9 9 import org.openstreetmap.josm.data.tagging.ac.AutoCompletionItem; 10 10 import org.openstreetmap.josm.gui.ExtendedDialog; 11 11 import org.openstreetmap.josm.gui.MainApplication; 12 import org.openstreetmap.josm.gui.tagging.ac.AutoComp letingComboBox;12 import org.openstreetmap.josm.gui.tagging.ac.AutoCompComboBox; 13 13 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager; 14 14 15 15 import javax.swing.*; … … 62 62 63 63 private static final String TEMPLATE_DATA = "/template.data"; 64 64 65 private AutoComp letingComboBoxsource;66 private AutoComp letingComboBoxcountry;67 private AutoComp letingComboBoxstate;68 private AutoComp letingComboBoxsuburb;69 private AutoComp letingComboBoxcity;70 private AutoComp letingComboBoxpostcode;71 private AutoComp letingComboBoxstreet;65 private AutoCompComboBox<AutoCompletionItem> source; 66 private AutoCompComboBox<AutoCompletionItem> country; 67 private AutoCompComboBox<AutoCompletionItem> state; 68 private AutoCompComboBox<AutoCompletionItem> suburb; 69 private AutoCompComboBox<AutoCompletionItem> city; 70 private AutoCompComboBox<AutoCompletionItem> postcode; 71 private AutoCompComboBox<AutoCompletionItem> street; 72 72 private JTextField housnumber; 73 73 private JCheckBox buildingEnabled; 74 74 private JCheckBox sourceEnabled; … … 220 220 c.insets = new Insets(5, 5, 0, 5); 221 221 editPanel.add(sourceEnabled, c); 222 222 223 source = new AutoComp letingComboBox();224 source. setPossibleAcItems(acm.getTagValues(TAG_SOURCE));223 source = new AutoCompComboBox<>(); 224 source.getModel().addAllElements(acm.getTagValues(TAG_SOURCE)); 225 225 source.setPreferredSize(new Dimension(200, 24)); 226 226 source.setEditable(true); 227 227 source.setSelectedItem(dto.getSource()); … … 270 270 c.insets = new Insets(5, 5, 0, 5); 271 271 editPanel.add(countryEnabled, c); 272 272 273 country = new AutoComp letingComboBox();274 country. setPossibleAcItems(acm.getTagValues(TAG_ADDR_COUNTRY));273 country = new AutoCompComboBox<>(); 274 country.getModel().addAllElements(acm.getTagValues(TAG_ADDR_COUNTRY)); 275 275 country.setPreferredSize(new Dimension(200, 24)); 276 276 country.setEditable(true); 277 277 country.setSelectedItem(dto.getCountry()); … … 320 320 c.insets = new Insets(5, 5, 0, 5); 321 321 editPanel.add(stateEnabled, c); 322 322 323 state = new AutoComp letingComboBox();324 state. setPossibleAcItems(acm.getTagValues(TAG_ADDR_STATE));323 state = new AutoCompComboBox<>(); 324 state.getModel().addAllElements(acm.getTagValues(TAG_ADDR_STATE)); 325 325 state.setPreferredSize(new Dimension(200, 24)); 326 326 state.setEditable(true); 327 327 state.setSelectedItem(dto.getState()); … … 370 370 c.insets = new Insets(5, 5, 0, 5); 371 371 editPanel.add(suburbEnabled, c); 372 372 373 suburb = new AutoComp letingComboBox();374 suburb. setPossibleAcItems(acm.getTagValues(TAG_ADDR_SUBURB));373 suburb = new AutoCompComboBox<>(); 374 suburb.getModel().addAllElements(acm.getTagValues(TAG_ADDR_SUBURB)); 375 375 suburb.setPreferredSize(new Dimension(200, 24)); 376 376 suburb.setEditable(true); 377 377 suburb.setSelectedItem(dto.getSuburb()); … … 420 420 c.insets = new Insets(5, 5, 0, 5); 421 421 editPanel.add(cityEnabled, c); 422 422 423 city = new AutoComp letingComboBox();424 city. setPossibleAcItems(acm.getTagValues(TAG_ADDR_CITY));423 city = new AutoCompComboBox<>(); 424 city.getModel().addAllElements(acm.getTagValues(TAG_ADDR_CITY)); 425 425 city.setPreferredSize(new Dimension(200, 24)); 426 426 city.setEditable(true); 427 427 city.setSelectedItem(dto.getCity()); … … 470 470 c.insets = new Insets(5, 5, 0, 5); 471 471 editPanel.add(zipEnabled, c); 472 472 473 postcode = new AutoComp letingComboBox();474 postcode. setPossibleAcItems(acm.getTagValues(TAG_ADDR_POSTCODE));473 postcode = new AutoCompComboBox<>(); 474 postcode.getModel().addAllElements(acm.getTagValues(TAG_ADDR_POSTCODE)); 475 475 postcode.setPreferredSize(new Dimension(200, 24)); 476 476 postcode.setEditable(true); 477 477 postcode.setSelectedItem(dto.getPostcode()); … … 548 548 g.add(streetRadio); 549 549 g.add(placeRadio); 550 550 551 street = new AutoComp letingComboBox();551 street = new AutoCompComboBox<>(); 552 552 if (dto.isTagStreet()) { 553 street. setPossibleItems(getPossibleStreets());553 street.getModel().addAllElements(getPossibleStreets()); 554 554 } else { 555 street. setPossibleAcItems(acm.getTagValues(TAG_ADDR_PLACE));555 street.getModel().addAllElements(acm.getTagValues(TAG_ADDR_PLACE)); 556 556 } 557 557 street.setPreferredSize(new Dimension(200, 24)); 558 558 street.setEditable(true); … … 739 739 dto.setSaveSuburb(suburbEnabled.isSelected()); 740 740 741 741 dto.setBuilding((String) building.getSelectedItem()); 742 dto.setSource(getAutoComp letingComboBoxValue(source));743 dto.setCity(getAutoComp letingComboBoxValue(city));744 dto.setCountry(getAutoComp letingComboBoxValue(country));742 dto.setSource(getAutoCompComboBoxValue(source)); 743 dto.setCity(getAutoCompComboBoxValue(city)); 744 dto.setCountry(getAutoCompComboBoxValue(country)); 745 745 dto.setHousenumber(housnumber.getText()); 746 dto.setPostcode(getAutoComp letingComboBoxValue(postcode));747 dto.setStreet(getAutoComp letingComboBoxValue(street));748 dto.setState(getAutoComp letingComboBoxValue(state));749 dto.setSuburb(getAutoComp letingComboBoxValue(suburb));746 dto.setPostcode(getAutoCompComboBoxValue(postcode)); 747 dto.setStreet(getAutoCompComboBoxValue(street)); 748 dto.setState(getAutoCompComboBoxValue(state)); 749 dto.setSuburb(getAutoCompComboBoxValue(suburb)); 750 750 dto.setHousenumberChangeValue(housenumberChangeSequence.getValue()); 751 751 752 752 updateJOSMSelection(selection, dto); … … 755 755 setVisible(false); 756 756 } 757 757 758 private String getAutoComp letingComboBoxValue(AutoCompletingComboBoxbox) {758 private String getAutoCompComboBoxValue(AutoCompComboBox<AutoCompletionItem> box) { 759 759 Object item = box.getSelectedItem(); 760 760 if (item != null) { 761 761 if (item instanceof String) { … … 885 885 886 886 if (!commands.isEmpty()) { 887 887 SequenceCommand sequenceCommand = new SequenceCommand( 888 trn("Updating properties of up to {0} object", 888 trn("Updating properties of up to {0} object", 889 889 "Updating properties of up to {0} objects", commands.size(), commands.size()), commands); 890 890 891 891 // executes the commands and adds them to the undo/redo chains … … 893 893 } 894 894 } 895 895 896 private Collection< String> getPossibleStreets() {896 private Collection<AutoCompletionItem> getPossibleStreets() { 897 897 /** 898 898 * Generates a list of all visible names of highways in order to do autocompletion on the road name. 899 899 */ 900 Set< String> names = new TreeSet<>();900 Set<AutoCompletionItem> names = new TreeSet<>(); 901 901 for (OsmPrimitive osm : MainApplication.getLayerManager().getEditDataSet().allNonDeletedPrimitives()) { 902 902 if (osm.getKeys() != null && osm.keySet().contains("highway") && osm.keySet().contains("name")) { 903 names.add( osm.get("name"));903 names.add(new AutoCompletionItem (osm.get("name"))); 904 904 } 905 905 } 906 906 return names; … … 945 945 @Override 946 946 public void itemStateChanged(ItemEvent e) { 947 947 if (streetRadio.isSelected()) { 948 street. setPossibleItems(getPossibleStreets());948 street.getModel().addAllElements(getPossibleStreets()); 949 949 } else { 950 street. setPossibleAcItems(acm.getTagValues(TAG_ADDR_PLACE));950 street.getModel().addAllElements(acm.getTagValues(TAG_ADDR_PLACE)); 951 951 } 952 952 } 953 953 }