Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/JOSM-CustomizePublicTransportStop.iml
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/JOSM-CustomizePublicTransportStop.iml	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/JOSM-CustomizePublicTransportStop.iml	(revision 34726)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <output url="file://$MODULE_DIR$/bin" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/images" type="java-resource" relativeOutputPath="images" />
+      <sourceFolder url="file://$MODULE_DIR$/data" type="java-resource" relativeOutputPath="data" />
+    </content>
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="library" name="josm-tested" level="project" />
+  </component>
+</module>
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/en.txt
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/en.txt	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/en.txt	(revision 34726)
@@ -0,0 +1,28 @@
+Customize stop
+Customize stop under osm public transit standard v2
+Stop customizing
+Stop area tag assign
+Name
+Name (en.)
+Network
+Operator
+Network level
+City transport
+Commuter
+Regional
+Long distance
+High speed
+Bus
+Share taxi
+Trolleybus
+Bus station
+Tram
+Railway station
+Railway stop
+Assign transport type to platform
+Shelter
+Bench
+Cover
+Area
+Save
+Cancel
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/es.txt
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/es.txt	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/es.txt	(revision 34726)
@@ -0,0 +1,28 @@
+Personalizar parada
+Personalizar parada bajo el estándar público de tránsito OSM v2
+Parar personalización
+Asignar etiqueta al área de detención
+Nombre
+Nombre (inglés)
+Red
+Operador
+Nivel de red
+Transporte urbano
+Local
+Regional
+Larga distancia
+Alta velocidad
+Autobús
+Taxi compartido
+Trolebús
+Estación de autobús
+Tranvía
+Estación de tren
+Parada de tren
+Asignar tipo de transporte a la plataforma
+Techo
+Banco
+Cubierto
+Área
+Guardar
+Cancelar
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/ru.txt
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/ru.txt	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/Text/ru.txt	(revision 34726)
@@ -0,0 +1,28 @@
+Íàñòðîéêà îñòàíîâêè
+Íàñòðîéêà îñòàíîâêè â ñîîòâåòñòâèè ñî âòîðîé âåðñèåé ñòàíäàðòà îïèñàíèÿ îáùåñòâåííîãî òðàíñïîðòà
+Íàñòðîéêà îñòàíîâêè
+Íàñòðîéêà îòíîøåíèÿ îñòàíîâêè
+Íàçâàíèå
+Íàçâàíèå (àíãë.)
+Ñåòü
+Îïåðàòîð
+Óðîâåíü ñåòè
+Ãîðîäñêàÿ
+Ïðèãîðîäíàÿ
+Ìåæäóãîðîäíÿÿ
+Äàëüíåãî ñëåäîâàíèÿ
+Âûñîêîñêîðîñòíàÿ
+Àâòîáóñ
+Ìàðøðóòíîå òàêñè
+Òðîëëåéáóñ
+Àâòîñòàíöèÿ
+Òðàìâàé
+Æ/ä ñòàíöèÿ
+Æ/ä ïëàòôîðìà
+Âèäû òðàíñïîðòà â ñâîéñòâàõ ïëàòôîðìû
+Íàâåñ
+Ñêàìåéêà
+Â ïîìåùåíèè
+Ïîëèãîí
+Ñîõðàíèòü
+Îòìåíà
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/josm-tested.jar.iml
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/josm-tested.jar.iml	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/josm-tested.jar.iml	(revision 34726)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$/josm-tested.jar" />
+    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/META-INF/MANIFEST.MF
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/META-INF/MANIFEST.MF	(revision 34726)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/META-INF/MANIFEST.MF	(revision 34726)
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Ant-Version: Apache Ant 1.10.5
+Created-By: 1.8.0_181-b13 (Oracle Corporation)
+Author: Rodion Shcherbakov
+Plugin-Class: org.openstreetmap.josm.plugins.customizepublictransportstop.CustomizePublicTransportStopPlugin
+Plugin-Date: 2018-08-18T01:41:55.294079Z
+Plugin-Description: Customization of public public transport stops.
+Plugin-Link: https://wiki.openstreetmap.org/wiki/JOSM/Plugins/CustomizePublicTransportStop
+Plugin-Mainversion: 14153
+Plugin-Version: 34501
+Plugin-Icon: images/bus.png
+ru_Plugin-Description: Настройка остановки общественного транспорта в соответствии со стандартом
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateStopAreaFromSelectedObjectOperation.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateStopAreaFromSelectedObjectOperation.java	(revision 34725)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CreateStopAreaFromSelectedObjectOperation.java	(revision 34726)
@@ -10,4 +10,5 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
+import sun.security.provider.certpath.IndexedCollectionCertStore;
 
 /**
@@ -95,5 +96,5 @@
      * Setting of stop area from selected josm object
      * 
-     * @param selectedObject Selected josm object
+     * @param stopArea Selected stop area
      */
     public void fromSelectedObject(StopArea stopArea) {
@@ -156,5 +157,8 @@
         if (getCurrentDataSet() == null)
             return null;
-        OsmPrimitive selectedObject = getCurrentDataSet().getSelectedNodesAndWays().iterator().next();
+        Collection<OsmPrimitive> selectedObjects = getCurrentDataSet().getSelectedNodesAndWays();
+        if(!(null != selectedObjects && !selectedObjects.isEmpty()))
+            return null;
+        OsmPrimitive selectedObject = selectedObjects.iterator().next();
         if (selectedObject == null)
             return null;
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java	(revision 34725)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizePublicTransportStopDialog.java	(revision 34726)
@@ -8,8 +8,5 @@
 import java.awt.GridBagLayout;
 import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
+import java.awt.event.*;
 import java.util.HashMap;
 
@@ -25,4 +22,5 @@
 import org.openstreetmap.josm.gui.MainApplication;
 
+
 /**
  * Dialog for setting stop area properties
@@ -30,5 +28,5 @@
  * @author Rodion Scherbakov
  */
-public class CustomizePublicTransportStopDialog implements ActionListener, ItemListener {
+public class CustomizePublicTransportStopDialog implements ActionListener, ItemListener, KeyListener {
     private static final String CANCEL_COMMAND = "cancel";
     private static final String SAVE_COMMAND = "save";
@@ -37,5 +35,5 @@
     private static final String AREA_CAPTION = "Area";
     private static final String COVER_CAPTION = "Cover";
-    private static final String SHELDER_CAPTION = "Shelder";
+    private static final String SHELTER_CAPTION = "Shelter";
     private static final String BENCH_CAPTION = "Bench";
     private static final String RAILWAY_STOP_CAPTION = "Railway stop";
@@ -80,5 +78,5 @@
     private JCheckBox checkBoxIsTrainStop;
     private JCheckBox checkBoxIsBench;
-    private JCheckBox checkBoxIsShelder;
+    private JCheckBox checkBoxIsShelter;
     private JCheckBox checkBoxIsCover;
     private JCheckBox checkBoxIsArea;
@@ -152,4 +150,8 @@
         jDialog.pack();
         jDialog.setLocationRelativeTo(frame);
+
+        jDialog.addKeyListener(this);
+        contentPane.addKeyListener(this);
+
     }
 
@@ -165,4 +167,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(label, layoutCons);
+        label.addKeyListener(this);
         contentPane.add(label);
 
@@ -173,4 +176,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(textFieldName, layoutCons);
+        textFieldName.addKeyListener(this);
         contentPane.add(textFieldName);
 
@@ -181,4 +185,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(labelNameEn, layoutCons);
+        labelNameEn.addKeyListener(this);
         contentPane.add(labelNameEn);
 
@@ -189,4 +194,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(textFieldNameEn, layoutCons);
+        textFieldNameEn.addKeyListener(this);
         contentPane.add(textFieldNameEn);
 
@@ -197,4 +203,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(labelNetwork, layoutCons);
+        labelNetwork.addKeyListener(this);
         contentPane.add(labelNetwork);
 
@@ -205,4 +212,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(textFieldNetwork, layoutCons);
+        textFieldNetwork.addKeyListener(this);
         contentPane.add(textFieldNetwork);
 
@@ -213,4 +221,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(labelOperator, layoutCons);
+        labelOperator.addKeyListener(this);
         contentPane.add(labelOperator);
 
@@ -221,4 +230,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(textFieldOperator, layoutCons);
+        textFieldOperator.addKeyListener(this);
         contentPane.add(textFieldOperator);
 
@@ -229,4 +239,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(labelService, layoutCons);
+        labelService.addKeyListener(this);
         contentPane.add(labelService);
 
@@ -242,4 +253,5 @@
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
         gridbag.setConstraints(comboBoxService, layoutCons);
+        comboBoxService.addKeyListener(this);
         contentPane.add(comboBoxService);
 
@@ -251,4 +263,5 @@
         gridbag.setConstraints(checkBoxIsBus, layoutCons);
         checkBoxIsBus.addItemListener(this);
+        checkBoxIsBus.addKeyListener(this);
         contentPane.add(checkBoxIsBus);
 
@@ -260,4 +273,5 @@
         gridbag.setConstraints(checkBoxIsShareTaxi, layoutCons);
         checkBoxIsShareTaxi.addItemListener(this);
+        checkBoxIsShareTaxi.addKeyListener(this);
         contentPane.add(checkBoxIsShareTaxi);
 
@@ -269,4 +283,5 @@
         gridbag.setConstraints(checkBoxIsTrolleybus, layoutCons);
         checkBoxIsTrolleybus.addItemListener(this);
+        checkBoxIsTrolleybus.addKeyListener(this);
         contentPane.add(checkBoxIsTrolleybus);
 
@@ -278,4 +293,5 @@
         gridbag.setConstraints(checkBoxIsBusStation, layoutCons);
         checkBoxIsBusStation.addItemListener(this);
+        checkBoxIsBusStation.addKeyListener(this);
         contentPane.add(checkBoxIsBusStation);
 
@@ -287,4 +303,5 @@
         gridbag.setConstraints(checkBoxIsTram, layoutCons);
         checkBoxIsTram.addItemListener(this);
+        checkBoxIsTram.addKeyListener(this);
         contentPane.add(checkBoxIsTram);
 
@@ -296,4 +313,5 @@
         gridbag.setConstraints(checkBoxIsTrainStation, layoutCons);
         checkBoxIsTrainStation.addItemListener(this);
+        checkBoxIsTrainStation.addKeyListener(this);
         contentPane.add(checkBoxIsTrainStation);
 
@@ -305,4 +323,5 @@
         gridbag.setConstraints(checkBoxIsTrainStop, layoutCons);
         checkBoxIsTrainStop.addItemListener(this);
+        checkBoxIsTrainStop.addKeyListener(this);
         contentPane.add(checkBoxIsTrainStop);
 
@@ -314,4 +333,5 @@
         gridbag.setConstraints(checkBoxIsAssignTransportType, layoutCons);
         checkBoxIsAssignTransportType.addItemListener(this);
+        checkBoxIsAssignTransportType.addKeyListener(this);
         contentPane.add(checkBoxIsAssignTransportType);
 
@@ -323,14 +343,16 @@
         gridbag.setConstraints(checkBoxIsBench, layoutCons);
         checkBoxIsBench.addItemListener(this);
+        checkBoxIsBench.addKeyListener(this);
         contentPane.add(checkBoxIsBench);
 
-        checkBoxIsShelder = new JCheckBox(tr(SHELDER_CAPTION));
+        checkBoxIsShelter = new JCheckBox(tr(SHELTER_CAPTION));
         layoutCons.gridx = 1;
         layoutCons.gridy = 10;
         layoutCons.weightx = 0.5;
         layoutCons.fill = GridBagConstraints.HORIZONTAL;
-        gridbag.setConstraints(checkBoxIsShelder, layoutCons);
-        checkBoxIsShelder.addItemListener(this);
-        contentPane.add(checkBoxIsShelder);
+        gridbag.setConstraints(checkBoxIsShelter, layoutCons);
+        checkBoxIsShelter.addItemListener(this);
+        checkBoxIsShelter.addKeyListener(this);
+        contentPane.add(checkBoxIsShelter);
 
         checkBoxIsCover = new JCheckBox(tr(COVER_CAPTION));
@@ -341,4 +363,5 @@
         gridbag.setConstraints(checkBoxIsCover, layoutCons);
         checkBoxIsCover.addItemListener(this);
+        checkBoxIsCover.addKeyListener(this);
         contentPane.add(checkBoxIsCover);
 
@@ -350,4 +373,5 @@
         gridbag.setConstraints(checkBoxIsArea, layoutCons);
         checkBoxIsArea.addItemListener(this);
+        checkBoxIsArea.addKeyListener(this);
         contentPane.add(checkBoxIsArea);
 
@@ -361,4 +385,5 @@
         buttonSave.setActionCommand(SAVE_COMMAND);
         buttonSave.addActionListener(this);
+        buttonSave.addKeyListener(this);
         contentPane.add(buttonSave);
 
@@ -372,4 +397,5 @@
         buttonCancel.setActionCommand(CANCEL_COMMAND);
         buttonCancel.addActionListener(this);
+        buttonCancel.addKeyListener(this);
         contentPane.add(buttonCancel);
         return contentPane;
@@ -528,5 +554,5 @@
         setCheckBoxValue(checkBoxIsTrainStop, stopArea.isTrainStop);
         setCheckBoxValue(checkBoxIsBench, stopArea.isBench);
-        setCheckBoxValue(checkBoxIsShelder, stopArea.isShelter);
+        setCheckBoxValue(checkBoxIsShelter, stopArea.isShelter);
         setCheckBoxValue(checkBoxIsCover, stopArea.isCovered);
         setCheckBoxValue(checkBoxIsArea, stopArea.isArea);
@@ -573,5 +599,5 @@
             stopArea.isTrainStop = getCheckBoxValue(checkBoxIsTrainStop);
             stopArea.isBench = getCheckBoxValue(checkBoxIsBench);
-            stopArea.isShelter = getCheckBoxValue(checkBoxIsShelder);
+            stopArea.isShelter = getCheckBoxValue(checkBoxIsShelter);
             stopArea.isCovered = getCheckBoxValue(checkBoxIsCover);
             stopArea.isArea = getCheckBoxValue(checkBoxIsArea);
@@ -598,3 +624,19 @@
     }
 
+    @Override
+    public void keyTyped(KeyEvent e) {
+
+    }
+
+    @Override
+    public void keyPressed(KeyEvent e) {
+        if (e.getKeyChar() == KeyEvent.VK_ESCAPE) {
+            setVisible(false);
+        }
+   }
+
+    @Override
+    public void keyReleased(KeyEvent e) {
+
+    }
 }
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java	(revision 34725)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/CustomizeStopAreaOperation.java	(revision 34726)
@@ -149,5 +149,6 @@
                 "".equals(stopArea.operator) ? null : stopArea.operator);
         commands = assignTag(commands, target, OSMTags.SERVICE_TAG,
-                null == stopArea.service || OSMTags.CITY_NETWORK_TAG_VALUE.equals(stopArea.service) ? null
+                null == stopArea.service || OSMTags.CITY_NETWORK_TAG_VALUE.equals(stopArea.service)
+                        || OSMTags.CITY_NETWORK_TAG_VALUE_OLD.equals(stopArea.service) ? null
                         : stopArea.service);
 
Index: /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/OSMTags.java
===================================================================
--- /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/OSMTags.java	(revision 34725)
+++ /applications/editors/josm/plugins/CustomizePublicTransportStop/src/org/openstreetmap/josm/plugins/customizepublictransportstop/OSMTags.java	(revision 34726)
@@ -58,5 +58,6 @@
     public static final String SERVICE_TAG = "service";
 
-    public static final String CITY_NETWORK_TAG_VALUE = "city";
+    public static final String CITY_NETWORK_TAG_VALUE_OLD = "city";
+    public static final String CITY_NETWORK_TAG_VALUE = "urban";
     public static final String COMMUTER_NETWORK_TAG_VALUE = "commuter";
     public static final String LOCAL_NETWORK_TAG_VALUE = "local";
