ONOS-6730: Topo View i18n:
- Deprecate non-localized PropertyPanel.addProp() methods.
- Add modify*LinkDetails() methods to UiTopoOverlay class.
- Augment TVMH.RequestDetails to handle link details requests.
- Refactor deviceDetails() to allow piecemeal construction of the Properties Panel.
    This allows us to include (or not) the location properties (geo/grid).
- Refactor hostDetails() for piecemeal construction of Properties Panel.
- Add edgeLinkDetails() and infraLinkDetails() methods.
- No lat/long suppression now done server-side. Check for trailing separator.
- Augment requestDetails() to format link details requests.
- Added lion.getSafe(Enum<?>) method.
- Added DeviceEnums and LinkEnums resource bundles.

Change-Id: Ibbd113a7d5ef73765cd10aed0fb7ea8efbaa16c5
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.Topo.lioncfg b/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.Topo.lioncfg
index 3f4d269..ed18b10 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.Topo.lioncfg
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.Topo.lioncfg
@@ -18,15 +18,18 @@
 bundle core.view.Topo
 
 alias cv core.view
+alias ce core.enums
 alias cf core.fw
 alias cc core.common
 
 from cv.Topo import *
 
+from ce.LinkEnums import *
+
 from cf.QuickHelp import qh_hint_close_detail
 
 from cc.Action import show, hide, enable, disable, select
-from cc.Network import devices, links, hosts, topology_sccs, intents, tunnels, flows, protocol
-from cc.Props import version, vendor, hw_version, sw_version, serial_number
-from cc.State import visible, hidden
+from cc.Network import devices, links, hosts, topology_sccs, intents, tunnels, flows, ports, protocol, uri, mac, ip, vlan, device, host
+from cc.Props import version, vendor, hw_version, sw_version, serial_number, latitude, longitude, grid_y, grid_x
+from cc.State import visible, hidden, vlan_none, expected, not_expected
 from cc.Ui import click, shift_click, drag, cmd_scroll, cmd_drag, ok, close
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State.properties
index 220fbb6..7f7d8a2 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State.properties
@@ -25,3 +25,10 @@
 
 visible=Visible
 hidden=Hidden
+
+# VLAN id == NONE (-1)
+vlan_none=None
+
+# lower case values, please
+expected=expected
+not_expected=not expected
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_es.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_es.properties
index 5dfc971..55271fb 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_es.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_es.properties
@@ -25,3 +25,10 @@
 
 visible=Visible (es)
 hidden=Hidden (es)
+
+# VLAN id == NONE (-1)
+vlan_none=None (es)
+
+# lower case values, please
+expected=expected (es)
+not_expected=not expected (es)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_it.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_it.properties
index 9ac4d17..8fa919f 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_it.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_it.properties
@@ -25,3 +25,10 @@
 
 visible=Visible (it)
 hidden=Hidden (it)
+
+# VLAN id == NONE (-1)
+vlan_none=None (it)
+
+# lower case values, please
+expected=expected (it)
+not_expected=not expected (it)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_ko.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_ko.properties
index 107b68e..bb5d7d6 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_ko.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_ko.properties
@@ -25,3 +25,10 @@
 
 visible=Visible (ko)
 hidden=Hidden (ko)
+
+# VLAN id == NONE (-1)
+vlan_none=None (ko)
+
+# lower case values, please
+expected=expected (ko)
+not_expected=not expected (ko)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_CN.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_CN.properties
index 1c11cee..ec58365 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_CN.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_CN.properties
@@ -25,3 +25,10 @@
 
 visible=Visible (zh_CN)
 hidden=Hidden (zh_CN)
+
+# VLAN id == NONE (-1)
+vlan_none=None (zh_CN)
+
+# lower case values, please
+expected=expected (zh_CN)
+not_expected=not expected (zh_CN)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_TW.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_TW.properties
index 4c5ef51..cbd117e 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_TW.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/State_zh_TW.properties
@@ -25,3 +25,10 @@
 
 visible=Visible (zh_TW)
 hidden=Hidden (zh_TW)
+
+# VLAN id == NONE (-1)
+vlan_none=None (zh_TW)
+
+# lower case values, please
+expected=expected (zh_TW)
+not_expected=not expected (zh_TW)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums.properties
new file mode 100644
index 0000000..a5494a2
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums.properties
@@ -0,0 +1,34 @@
+#
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# display names for Device.Type constants
+switch=switch
+router=router
+roadm=roadm
+otn=otn
+roadm_otn=roadm otn
+firewall=firewall
+balancer=balancer
+ips=ips
+ids=ids
+controller=controller
+virtual=virtual
+fiber_switch=fiber switch
+microwave=microwave
+olt=olt
+onu=onu
+optical_amplifier=optical amplifier
+other=other
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums_it.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums_it.properties
new file mode 100644
index 0000000..9166889
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/DeviceEnums_it.properties
@@ -0,0 +1,34 @@
+#
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# display names for Device.Type constants
+switch=switch (it)
+router=router (it)
+roadm=roadm (it)
+otn=otn (it)
+roadm_otn=roadm otn (it)
+firewall=firewall (it)
+balancer=balancer (it)
+ips=ips (it)
+ids=ids (it)
+controller=controller (it)
+virtual=virtual (it)
+fiber_switch=fiber switch (it)
+microwave=microwave (it)
+olt=olt (it)
+onu=onu (it)
+optical_amplifier=optical amplifier (it)
+other=other (it)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums.properties
new file mode 100644
index 0000000..3380034
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# display names for Link.Type constants
+direct=direct
+indirect=indirect
+edge=edge
+tunnel=tunnel
+optical=optical
+virtual=virtual
+
+# display names for Link.State constants
+active=active
+inactive=inactive
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums_it.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums_it.properties
new file mode 100644
index 0000000..f3fb9fa
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/enums/LinkEnums_it.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# display names for Link.Type constants
+direct=direct (it)
+indirect=indirect (it)
+edge=edge (it)
+tunnel=tunnel (it)
+optical=optical (it)
+virtual=virtual (it)
+
+# display names for Link.State constants
+active=active (it)
+inactive=inactive (it)
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
index c32cd6a..82c4634 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
@@ -15,11 +15,6 @@
 #
 #
 
-
-# ==========================================
-# |  WIP -- Not Yet Ready For Translation  |
-# ==========================================
-
 # Text that appears in the navigation panel
 nav_item_topo=Topology
 
@@ -90,6 +85,28 @@
 btn_show_view_group=Show Group View for this Device
 btn_show_view_meter=Show Meter View for this Device
 
-# Miscellaneous
+# Panel Titles
 title_select_map=Select Map
 title_panel_summary=ONOS Summary
+title_selected_items=Selected Items
+title_edge_link=Edge Link
+title_infra_link=Infrastructure Link
+
+# Custom Panel Labels / Values
+lp_label_friendly=Friendly
+
+lp_label_a_type=A type
+lp_label_a_id=A id
+lp_label_a_friendly=A friendly
+lp_label_a_port=A port
+
+lp_label_b_type=B type
+lp_label_b_id=B id
+lp_label_b_friendly=B friendly
+lp_label_b_port=B port
+
+lp_label_a2b=A to B
+lp_label_b2a=B to A
+
+lp_value_no_link=[no link]
+
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
index c32b249..524b248 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
@@ -85,6 +85,27 @@
 btn_show_view_group=Show Group View for this Device (it)
 btn_show_view_meter=Show Meter View for this Device (it)
 
-# Miscellaneous
+# Panel Titles
 title_select_map=Select Map (it)
 title_panel_summary=ONOS Summary (it)
+title_selected_items=Selected Items (it)
+title_edge_link=Edge Link (it)
+title_infra_link=Infrastructure Link (it)
+
+# Custom Panel Labels / Values
+lp_label_friendly=Friendly (it)
+
+lp_label_a_type=A type (it)
+lp_label_a_id=A id (it)
+lp_label_a_friendly=A friendly (it)
+lp_label_a_port=A port (it)
+
+lp_label_b_type=B type (it)
+lp_label_b_id=B id (it)
+lp_label_b_friendly=B friendly (it)
+lp_label_b_port=B port (it)
+
+lp_label_a2b=A to B (it)
+lp_label_b2a=B to A (it)
+
+lp_value_no_link=[no link] (it)