<div dir="ltr">Here's a patch to JOSM to warn the human editor about tags that are about to disappear.  What do you think?<div><br><div><br></div><div><div><font face="courier new, monospace">--- src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java<span class="" style="white-space:pre">      </span>(revision 6232)</font></div>

<div><font face="courier new, monospace">+++ src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java<span class="" style="white-space:pre">     </span>(working copy)</font></div><div><font face="courier new, monospace">@@ -280,6 +276,26 @@<br>

</font></div><div><font face="courier new, monospace">         propertyTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);</font></div><div><font face="courier new, monospace">         propertyTable.getTableHeader().setReorderingAllowed(false);</font></div>

<div><font face="courier new, monospace"> </font></div><div><font face="courier new, monospace">+        // Style the key column</font></div><div><font face="courier new, monospace">+        propertyTable.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer(){</font></div>

<div><font face="courier new, monospace">+            @Override public Component getTableCellRendererComponent(JTable table, Object value,</font></div><div><font face="courier new, monospace">+                                                                     boolean isSelected, boolean hasFocus, int row, int column) {</font></div>

<div><font face="courier new, monospace">+                Component cc = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);</font></div><div><font face="courier new, monospace">+                if (value == null)</font></div>

<div><font face="courier new, monospace">+                    return this;</font></div><div><font face="courier new, monospace">+                String myvalue = (String)value;</font></div><div><font face="courier new, monospace">+                if (OsmPrimitive.getDiscardableKeys().contains(myvalue) ) {</font></div>

<div><font face="courier new, monospace">+                    cc.setFont(cc.getFont().deriveFont(Font.ITALIC));</font></div><div><font face="courier new, monospace">+                    cc.setBackground(Color.RED);</font></div>

<div><font face="courier new, monospace">+                } else {</font></div><div><font face="courier new, monospace">+                    cc.setFont(cc.getFont().deriveFont(Font.PLAIN));</font></div><div><font face="courier new, monospace">+                    cc.setBackground(Color.WHITE);</font></div>

<div><font face="courier new, monospace">+                }</font></div><div><font face="courier new, monospace">+                return cc;</font></div><div><font face="courier new, monospace">+            }</font></div>

<div><font face="courier new, monospace">+        });</font></div><div><font face="courier new, monospace">+</font></div><div><font face="courier new, monospace">+        // Style the value column</font></div><div><font face="courier new, monospace">         propertyTable.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer(){</font></div>

<div><font face="courier new, monospace">             @Override public Component getTableCellRendererComponent(JTable table, Object value,</font></div><div><font face="courier new, monospace">                     boolean isSelected, boolean hasFocus, int row, int column) {</font></div>

</div><div><br></div></div></div>