Changeset 34236 in osm for applications


Ignore:
Timestamp:
2018-05-30T20:13:19+02:00 (7 years ago)
Author:
biswesh
Message:

Modify bus bay action in double split map mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/DoubleSplitAction.java

    r34235 r34236  
    536536                        JComboBox<String> values, int type) {
    537537                TagMap newKeys1 = affectedKeysList.get(0);
     538                String prevValue = null;
    538539
    539540                if (keys.getSelectedItem() == "bridge") {
    540541                        newKeys1.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    541542                        newKeys1.put("layer", "1");
    542                         selectedWay.get(0).setKeys(newKeys1);
    543543                } else if (keys.getSelectedItem() == "tunnel") {
    544544                        newKeys1.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    545545                        if (!values.getSelectedItem().toString().equals("building_passage"))
    546546                                newKeys1.put("layer", "-1");
    547                         selectedWay.get(0).setKeys(newKeys1);
    548547                } else {
    549548                        if (newKeys1.containsKey("bus_bay")) {
    550                                 String value = newKeys1.get("bus_bay");
    551                                 if (values.getSelectedItem().equals("left") && value.equals("right")) {
    552                                         newKeys1.put(keys.getSelectedItem().toString(), "both");
    553                                 } else if (values.getSelectedItem().equals("right") && value.equals("left")) {
    554                                         newKeys1.put(keys.getSelectedItem().toString(), "both");
    555                                 } else {
    556                                         newKeys1.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    557                                 }
     549                                prevValue = newKeys1.get("bus_bay");
     550                                newKeys1.put(keys.getSelectedItem().toString(), "both");
    558551                        } else {
    559552                                newKeys1.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    560553                        }
    561                         if (type != 2) {
    562 //                              selectedWay.get(0).setKeys(newKeys1);
    563                                 MainApplication.undoRedo.add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(0)), newKeys1));
    564                         } else {
    565                                 MainApplication.undoRedo.add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(0)), newKeys1));
    566                         }
     554                        // if (type != 2) {
     555                        // selectedWay.get(0).setKeys(newKeys1);
     556                        //
     557                        // } else {
     558                        // MainApplication.undoRedo.add(new
     559                        // ChangePropertyCommand(Collections.singleton(selectedWay.get(0)), newKeys1));
     560                        // }
    567561                }
    568562
     
    573567                                newKeys2.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    574568                                newKeys2.put("layer", "1");
    575                                 selectedWay.get(1).setKeys(newKeys2);
    576569                        } else if (keys.getSelectedItem() == "tunnel") {
    577570                                newKeys2.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    578571                                if (!values.getSelectedItem().toString().equals("building_passage"))
    579572                                        newKeys2.put("layer", "-1");
    580                                 selectedWay.get(1).setKeys(newKeys2);
    581573                        } else {
    582574                                if (newKeys2.containsKey("bus_bay")) {
    583                                         String value = newKeys2.get("bus_bay");
    584                                         if (values.getSelectedItem().equals("left") && value.equals("right")) {
    585                                                 newKeys2.put(keys.getSelectedItem().toString(), "both");
    586                                         } else if (values.getSelectedItem().equals("right") && value.equals("left")) {
    587                                                 newKeys2.put(keys.getSelectedItem().toString(), "both");
     575                                        prevValue = newKeys2.get("bus_bay");
     576                                        newKeys2.put(keys.getSelectedItem().toString(), "both");
     577                                        if (values.getSelectedItem().equals("left") && prevValue.equals("left"))
     578                                                newKeys1.put("bus_bay", "right");
     579                                        else if (values.getSelectedItem().equals("right") && prevValue.equals("right"))
     580                                                newKeys1.put("bus_bay", "left");
     581                                } else {
     582                                        if (newKeys1.get("bus_bay").equals("both")) {
     583                                                if (values.getSelectedItem().equals("left") && prevValue.equals("left"))
     584                                                        newKeys2.put("bus_bay", "right");
     585                                                else if (values.getSelectedItem().equals("right") && prevValue.equals("right"))
     586                                                        newKeys2.put("bus_bay", "left");
     587                                                else
     588                                                        newKeys2.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    588589                                        } else {
    589590                                                newKeys2.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    590591                                        }
    591                                 } else {
    592                                         newKeys2.put(keys.getSelectedItem().toString(), values.getSelectedItem().toString());
    593                                 }
    594                                 if (type != 2) {
    595 //                                      selectedWay.get(1).setKeys(newKeys2);
    596                                         MainApplication.undoRedo.add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(1)), newKeys2));
    597                                 } else {
    598                                         MainApplication.undoRedo.add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(1)), newKeys2));
    599                                 }
    600                         }
    601                 }
     592                                }
     593                        }
     594                        MainApplication.undoRedo
     595                                        .add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(1)), newKeys2));
     596                }
     597                MainApplication.undoRedo.add(new ChangePropertyCommand(Collections.singleton(selectedWay.get(0)), newKeys1));
    602598                resetLayer();
    603599        }
     
    723719
    724720                        rightHandTraffic = true;
    725                         for (Node n: atNodes) {
    726                     if (!RightAndLefthandTraffic.isRightHandTraffic(n.getCoor())) {
    727                         rightHandTraffic = false;
    728                         break;
    729                     }
    730                 }
     721                        for (Node n : atNodes) {
     722                                if (!RightAndLefthandTraffic.isRightHandTraffic(n.getCoor())) {
     723                                        rightHandTraffic = false;
     724                                        break;
     725                                }
     726                        }
    731727
    732728                        setButtonIcons("ok", "cancel");
     
    762758
    763759                        if (rightHandTraffic)
    764                                 values.setModel(new DefaultComboBoxModel<>(new String[] {"right", "left", "both"}));
     760                                values.setModel(new DefaultComboBoxModel<>(new String[] { "right", "left", "both" }));
    765761                        else
    766                                 values.setModel(new DefaultComboBoxModel<>(new String[] {"left", "right", "both"}));
     762                                values.setModel(new DefaultComboBoxModel<>(new String[] { "left", "right", "both" }));
    767763
    768764                        // below code changes the list in values on the basis of key
     
    773769                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "both", "right", "left" }));
    774770                                                if (rightHandTraffic)
    775                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"right", "left", "both"}));
     771                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "right", "left", "both" }));
    776772                                                else
    777                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"left", "right", "both"}));
     773                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "left", "right", "both" }));
    778774                                        } else if ("bridge".equals(keys.getSelectedItem())) {
    779775                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "yes" }));
    780776                                        } else if ("tunnel".equals(keys.getSelectedItem())) {
    781777                                                if (previousAffectedWay.hasKey("waterway") || affected.hasKey("waterway"))
    782                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
     778                                                        values.setModel(
     779                                                                        new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
    783780                                                else
    784                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
     781                                                        values.setModel(
     782                                                                        new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
    785783                                        }
    786784                                }
     
    802800                                        if ("tunnel".equals(keys.getSelectedItem())) {
    803801                                                if (previousAffectedWay.hasKey("waterway") || affected.hasKey("waterway"))
    804                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
     802                                                        values.setModel(
     803                                                                        new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
    805804                                                else
    806                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
     805                                                        values.setModel(
     806                                                                        new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
    807807                                        } else if ("bus_bay".equals(keys.getSelectedItem())) {
    808808                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "both", "right", "left" }));
    809809                                                if (rightHandTraffic)
    810                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"right", "left", "both"}));
     810                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "right", "left", "both" }));
    811811                                                else
    812                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"left", "right", "both"}));
     812                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "left", "right", "both" }));
    813813                                        } else if ("bridge".equals(keys.getSelectedItem())) {
    814814                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "yes" }));
     
    819819
    820820                private void setOptionsWithBridge() {
    821                         keys.setModel(new DefaultComboBoxModel<>(new String[] { "bridge", "bus_bay", "tunnel"}));
     821                        keys.setModel(new DefaultComboBoxModel<>(new String[] { "bridge", "bus_bay", "tunnel" }));
    822822
    823823                        values.setModel(new DefaultComboBoxModel<>(new String[] { "yes" }));
     
    829829                                        if ("tunnel".equals(keys.getSelectedItem())) {
    830830                                                if (previousAffectedWay.hasKey("waterway") || affected.hasKey("waterway"))
    831                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
     831                                                        values.setModel(
     832                                                                        new DefaultComboBoxModel<>(new String[] { "culvert", "yes", "building_passage" }));
    832833                                                else
    833                                                         values.setModel(new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
     834                                                        values.setModel(
     835                                                                        new DefaultComboBoxModel<>(new String[] { "yes", "culvert", "building_passage" }));
    834836                                        } else if ("bus_bay".equals(keys.getSelectedItem())) {
    835837                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "both", "right", "left" }));
    836838                                                if (rightHandTraffic)
    837                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"right", "left", "both"}));
     839                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "right", "left", "both" }));
    838840                                                else
    839                                                         values.setModel(new DefaultComboBoxModel<>(new String[] {"left", "right", "both"}));
     841                                                        values.setModel(new DefaultComboBoxModel<>(new String[] { "left", "right", "both" }));
    840842                                        } else if ("bridge".equals(keys.getSelectedItem())) {
    841843                                                values.setModel(new DefaultComboBoxModel<>(new String[] { "yes" }));
     
    846848
    847849                private void findIntersection(Set<Way> newWays) {
    848                     DataSet ds = getLayerManager().getEditDataSet();
    849             NodeWayUtils.addWaysIntersectingWays(
    850                     ds.getWays(),
    851                     Arrays.asList(previousAffectedWay, affected), newWays);
    852             Node n1 = previousAffectedWay.firstNode();
    853                         Node n2 = previousAffectedWay.lastNode();
    854                         Node n3 = affected.firstNode();
    855                         Node n4 = affected.lastNode();
    856                         List<Way> waysToBeRemoved = new ArrayList<>();
    857             for (Way way : newWays) {
    858                         int count = 0;
    859                         if (way.containsNode(n1))
    860                                 count++;
    861                         if (way.containsNode(n2))
    862                                 count++;
    863                         if (!previousAffectedWay.equals(affected)) {
    864                                 if (way.containsNode(n3))
    865                                         count++;
    866                                 if (way.containsNode(n4))
    867                                         count++;
    868                         }
    869                         if (count == 1) {
    870                                 waysToBeRemoved.add(way);
    871                         } else {
    872                                 if (!way.hasKey("highway") && !way.hasKey("waterway") && !way.hasKey("railway")) {
    873                                         waysToBeRemoved.add(way);
    874                                 }
    875                         }
    876             }
    877             newWays.removeAll(waysToBeRemoved);
     850                        DataSet ds = getLayerManager().getEditDataSet();
     851                        NodeWayUtils.addWaysIntersectingWays(ds.getWays(), Arrays.asList(previousAffectedWay, affected), newWays);
     852                        Node n1 = previousAffectedWay.firstNode();
     853                        Node n2 = previousAffectedWay.lastNode();
     854                        Node n3 = affected.firstNode();
     855                        Node n4 = affected.lastNode();
     856                        List<Way> waysToBeRemoved = new ArrayList<>();
     857                        for (Way way : newWays) {
     858                                int count = 0;
     859                                if (way.containsNode(n1))
     860                                        count++;
     861                                if (way.containsNode(n2))
     862                                        count++;
     863                                if (!previousAffectedWay.equals(affected)) {
     864                                        if (way.containsNode(n3))
     865                                                count++;
     866                                        if (way.containsNode(n4))
     867                                                count++;
     868                                }
     869                                if (count == 1) {
     870                                        waysToBeRemoved.add(way);
     871                                } else {
     872                                        if (!way.hasKey("highway") && !way.hasKey("waterway") && !way.hasKey("railway")) {
     873                                                waysToBeRemoved.add(way);
     874                                        }
     875                                }
     876                        }
     877                        newWays.removeAll(waysToBeRemoved);
    878878                }
    879879
     
    893893                                }
    894894
    895                         } else if (getValue() != 3){
     895                        } else if (getValue() != 3) {
    896896                                resetLayer();
    897897                        }
Note: See TracChangeset for help on using the changeset viewer.