Ignore:
Timestamp:
2018-06-13T01:33:47+02:00 (6 years ago)
Author:
Don-vip
Message:

add AbstractOsmDataLayer, MainLayerManager.getActiveData, Main.getInProgressISelection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r13925 r13926  
    6363import org.openstreetmap.josm.data.osm.DataSet;
    6464import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
     65import org.openstreetmap.josm.data.osm.IPrimitive;
    6566import org.openstreetmap.josm.data.osm.IRelation;
     67import org.openstreetmap.josm.data.osm.IRelationMember;
    6668import org.openstreetmap.josm.data.osm.Node;
    6769import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    230232
    231233    private final PreferenceChangedListener preferenceListener = e -> {
    232                 if (MainApplication.getLayerManager().getActiveDataSet() != null) {
     234                if (MainApplication.getLayerManager().getActiveData() != null) {
    233235                    // Re-load data when display preference change
    234236                    updateSelection();
     
    488490        OsmDataLayer layer = MainApplication.getLayerManager().getActiveDataLayer();
    489491        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);
    492499        }
    493500    }
     
    533540    public void setVisible(boolean b) {
    534541        super.setVisible(b);
    535         if (b && MainApplication.getLayerManager().getActiveDataSet() != null) {
     542        if (b && MainApplication.getLayerManager().getActiveData() != null) {
    536543            updateSelection();
    537544        }
     
    559566
    560567        // 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);
    562569        String selectedTag;
    563570        Relation selectedRelation = null;
     
    578585        valueCount.clear();
    579586        Set<TaggingPresetType> types = EnumSet.noneOf(TaggingPresetType.class);
    580         for (OsmPrimitive osm : newSel) {
     587        for (IPrimitive osm : newSel) {
    581588            types.add(TaggingPresetType.forPrimitive(osm));
    582589            for (String key : osm.keySet()) {
     
    610617        membershipData.setRowCount(0);
    611618
    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;
    617624                    MemberInfo mi = Optional.ofNullable(roles.get(r)).orElseGet(() -> new MemberInfo(newSel));
    618625                    roles.put(r, mi);
    619626                    int i = 1;
    620                     for (RelationMember m : r.getMembers()) {
     627                    for (IRelationMember<?> m : r.getMembers()) {
    621628                        if (m.getMember() == primitive) {
    622629                            mi.add(m, i);
     
    628635        }
    629636
    630         List<Relation> sortedRelations = new ArrayList<>(roles.keySet());
     637        List<IRelation<?>> sortedRelations = new ArrayList<>(roles.keySet());
    631638        sortedRelations.sort((o1, o2) -> {
    632639            int comp = Boolean.compare(o1.isDisabledAndHidden(), o2.isDisabledAndHidden());
     
    634641        });
    635642
    636         for (Relation r: sortedRelations) {
     643        for (IRelation<?> r: sortedRelations) {
    637644            membershipData.addRow(new Object[]{r, roles.get(r)});
    638645        }
     
    888895
    889896    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<>();
    892899        private List<Integer> position = new ArrayList<>();
    893         private Collection<OsmPrimitive> selection;
     900        private Collection<? extends IPrimitive> selection;
    894901        private String positionString;
    895902        private String roleString;
    896903
    897         MemberInfo(Collection<OsmPrimitive> selection) {
     904        MemberInfo(Collection<? extends IPrimitive> selection) {
    898905            this.selection = selection;
    899906        }
    900907
    901         void add(RelationMember r, Integer p) {
     908        void add(IRelationMember<?> r, Integer p) {
    902909            role.add(r);
    903910            members.add(r.getMember());
     
    921928        String getRoleString() {
    922929            if (roleString == null) {
    923                 for (RelationMember r : role) {
     930                for (IRelationMember<?> r : role) {
    924931                    if (roleString == null) {
    925932                        roleString = r.getRole();
     
    11751182                return;
    11761183            String key = editHelper.getDataKey(tagTable.getSelectedRow());
    1177             Collection<OsmPrimitive> sel = Main.main.getInProgressSelection();
     1184            Collection<? extends IPrimitive> sel = Main.main.getInProgressISelection();
    11781185            if (sel.isEmpty())
    11791186                return;
     
    11831190    }
    11841191
    1185     static SearchSetting createSearchSetting(String key, Collection<OsmPrimitive> sel, boolean sameType) {
     1192    static SearchSetting createSearchSetting(String key, Collection<? extends IPrimitive> sel, boolean sameType) {
    11861193        String sep = "";
    11871194        StringBuilder s = new StringBuilder();
    11881195        Set<String> consideredTokens = new TreeSet<>();
    1189         for (OsmPrimitive p : sel) {
     1196        for (IPrimitive p : sel) {
    11901197            String val = p.get(key);
    11911198            if (val == null || (!sameType && consideredTokens.contains(val))) {
Note: See TracChangeset for help on using the changeset viewer.