Changeset 13926 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
- Timestamp:
- 2018-06-13T01:33:47+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
r13925 r13926 63 63 import org.openstreetmap.josm.data.osm.DataSet; 64 64 import org.openstreetmap.josm.data.osm.DefaultNameFormatter; 65 import org.openstreetmap.josm.data.osm.IPrimitive; 65 66 import org.openstreetmap.josm.data.osm.IRelation; 67 import org.openstreetmap.josm.data.osm.IRelationMember; 66 68 import org.openstreetmap.josm.data.osm.Node; 67 69 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 230 232 231 233 private final PreferenceChangedListener preferenceListener = e -> { 232 if (MainApplication.getLayerManager().getActiveData Set() != null) {234 if (MainApplication.getLayerManager().getActiveData() != null) { 233 235 // Re-load data when display preference change 234 236 updateSelection(); … … 488 490 OsmDataLayer layer = MainApplication.getLayerManager().getActiveDataLayer(); 489 491 if (!layer.isLocked()) { 490 RelationEditor.getEditor( 491 layer, relation, ((MemberInfo) membershipData.getValueAt(row, 1)).role).setVisible(true); 492 List<RelationMember> members = new ArrayList<>(); 493 for (IRelationMember<?> rm : ((MemberInfo) membershipData.getValueAt(row, 1)).role) { 494 if (rm instanceof RelationMember) { 495 members.add((RelationMember) rm); 496 } 497 } 498 RelationEditor.getEditor(layer, relation, members).setVisible(true); 492 499 } 493 500 } … … 533 540 public void setVisible(boolean b) { 534 541 super.setVisible(b); 535 if (b && MainApplication.getLayerManager().getActiveData Set() != null) {542 if (b && MainApplication.getLayerManager().getActiveData() != null) { 536 543 updateSelection(); 537 544 } … … 559 566 560 567 // Ignore parameter as we do not want to operate always on real selection here, especially in draw mode 561 Collection< OsmPrimitive> newSel = Optional.ofNullable(Main.main.getInProgressSelection()).orElseGet(Collections::emptyList);568 Collection<? extends IPrimitive> newSel = Optional.ofNullable(Main.main.getInProgressISelection()).orElseGet(Collections::emptyList); 562 569 String selectedTag; 563 570 Relation selectedRelation = null; … … 578 585 valueCount.clear(); 579 586 Set<TaggingPresetType> types = EnumSet.noneOf(TaggingPresetType.class); 580 for ( OsmPrimitive osm : newSel) {587 for (IPrimitive osm : newSel) { 581 588 types.add(TaggingPresetType.forPrimitive(osm)); 582 589 for (String key : osm.keySet()) { … … 610 617 membershipData.setRowCount(0); 611 618 612 Map< Relation, MemberInfo> roles = new HashMap<>();613 for ( OsmPrimitive primitive: newSel) {614 for ( OsmPrimitive ref: primitive.getReferrers(true)) {615 if (ref instanceof Relation && !ref.isIncomplete() && !ref.isDeleted()) {616 Relation r = (Relation) ref;619 Map<IRelation<?>, MemberInfo> roles = new HashMap<>(); 620 for (IPrimitive primitive: newSel) { 621 for (IPrimitive ref: primitive.getReferrers(true)) { 622 if (ref instanceof IRelation && !ref.isIncomplete() && !ref.isDeleted()) { 623 IRelation<?> r = (IRelation<?>) ref; 617 624 MemberInfo mi = Optional.ofNullable(roles.get(r)).orElseGet(() -> new MemberInfo(newSel)); 618 625 roles.put(r, mi); 619 626 int i = 1; 620 for ( RelationMemberm : r.getMembers()) {627 for (IRelationMember<?> m : r.getMembers()) { 621 628 if (m.getMember() == primitive) { 622 629 mi.add(m, i); … … 628 635 } 629 636 630 List< Relation> sortedRelations = new ArrayList<>(roles.keySet());637 List<IRelation<?>> sortedRelations = new ArrayList<>(roles.keySet()); 631 638 sortedRelations.sort((o1, o2) -> { 632 639 int comp = Boolean.compare(o1.isDisabledAndHidden(), o2.isDisabledAndHidden()); … … 634 641 }); 635 642 636 for ( Relationr: sortedRelations) {643 for (IRelation<?> r: sortedRelations) { 637 644 membershipData.addRow(new Object[]{r, roles.get(r)}); 638 645 } … … 888 895 889 896 static class MemberInfo { 890 private final List< RelationMember> role = new ArrayList<>();891 private Set< OsmPrimitive> members = new HashSet<>();897 private final List<IRelationMember<?>> role = new ArrayList<>(); 898 private Set<IPrimitive> members = new HashSet<>(); 892 899 private List<Integer> position = new ArrayList<>(); 893 private Collection< OsmPrimitive> selection;900 private Collection<? extends IPrimitive> selection; 894 901 private String positionString; 895 902 private String roleString; 896 903 897 MemberInfo(Collection< OsmPrimitive> selection) {904 MemberInfo(Collection<? extends IPrimitive> selection) { 898 905 this.selection = selection; 899 906 } 900 907 901 void add( RelationMemberr, Integer p) {908 void add(IRelationMember<?> r, Integer p) { 902 909 role.add(r); 903 910 members.add(r.getMember()); … … 921 928 String getRoleString() { 922 929 if (roleString == null) { 923 for ( RelationMemberr : role) {930 for (IRelationMember<?> r : role) { 924 931 if (roleString == null) { 925 932 roleString = r.getRole(); … … 1175 1182 return; 1176 1183 String key = editHelper.getDataKey(tagTable.getSelectedRow()); 1177 Collection< OsmPrimitive> sel = Main.main.getInProgressSelection();1184 Collection<? extends IPrimitive> sel = Main.main.getInProgressISelection(); 1178 1185 if (sel.isEmpty()) 1179 1186 return; … … 1183 1190 } 1184 1191 1185 static SearchSetting createSearchSetting(String key, Collection< OsmPrimitive> sel, boolean sameType) {1192 static SearchSetting createSearchSetting(String key, Collection<? extends IPrimitive> sel, boolean sameType) { 1186 1193 String sep = ""; 1187 1194 StringBuilder s = new StringBuilder(); 1188 1195 Set<String> consideredTokens = new TreeSet<>(); 1189 for ( OsmPrimitive p : sel) {1196 for (IPrimitive p : sel) { 1190 1197 String val = p.get(key); 1191 1198 if (val == null || (!sameType && consideredTokens.contains(val))) {
Note:
See TracChangeset
for help on using the changeset viewer.