UI-Lion:
- BundleStitcherTest now working!
- Expand aliases in from lines.
- Added unit tests for parsing of from lines.

Change-Id: I65d343f1283fd60f46879431c37299c6ecd5a36e
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.cluster.lioncfg b/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.cluster.lioncfg
new file mode 100644
index 0000000..9d0e1ef
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/_config/core.view.cluster.lioncfg
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+
+bundle core.view.cluster
+
+alias cv core.view
+alias cc core.common
+
+from cv.cluster import *
+from cc.network import devices, node_id, ip_address, tcp_port, uri, protocol
+from cc.props import type, chassis_id, vendor, hw_version, sw_version, serial_number
+from cc.state import total, active, started, last_updated
+from cc.ui import click, scroll_down
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/action.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/action.properties
new file mode 100644
index 0000000..ef0932e
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/action.properties
@@ -0,0 +1,23 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+
+install=Install
+start=Start
+pause=Pause
+resume=Resume
+stop=Stop
+uninstall=Uninstall
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/network.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/network.properties
new file mode 100644
index 0000000..fffc4a6
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/network.properties
@@ -0,0 +1,49 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+# --- Elements (Singular)
+node=Node
+topology=Topology
+network=Network
+region=Region
+device=Device
+host=Host
+link=Link
+
+# --- Elements (Plural)
+nodes=Nodes
+topologies=Topologies
+networks=Networks
+regions=Regions
+devices=Devices
+hosts=Hosts
+links=Links
+
+# --- Element IDs
+node_id=Node ID
+region_id=Region ID
+device_id=Device ID
+host_id=Host ID
+link_id=Link ID
+
+# --- Protocol terms
+protocol=Protocol
+ip=IP
+ip_address=IP Address
+tcp_port=TCP Port
+mac=MAC
+mac_address=MAC Address
+uri=URI
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/props.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/props.properties
new file mode 100644
index 0000000..420e8ea
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/props.properties
@@ -0,0 +1,25 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+
+type=Type
+vendor=Vendor
+chassis_id=Chassis ID
+
+hw_version=H/W Version
+sw_version=S/W Version
+
+serial_number=Serial #
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
new file mode 100644
index 0000000..c53463c
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/state.properties
@@ -0,0 +1,25 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+
+total=Total
+active=Active
+started=Started
+stopped=Stopped
+
+last_updated=Last Updated
+last_modified=Last Modified
+
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/ui.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/ui.properties
new file mode 100644
index 0000000..dd0cbc7
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/common/ui.properties
@@ -0,0 +1,22 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+ok=OK
+cancel=Cancel
+
+# --- key binding and user gesture descriptions
+click=click
+scroll_down=scroll down
\ No newline at end of file
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/cluster.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/cluster.properties
new file mode 100644
index 0000000..1ae723c
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/cluster.properties
@@ -0,0 +1,21 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# 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.
+#
+#
+title_cluster_nodes=Cluster Nodes
+
+k_esc_hint=Close the details panel
+k_click_hint=Select a row to show cluster node details
+k_scroll_down_hint=See available cluster nodes
diff --git a/web/gui/src/main/webapp/app/fw/util/lion.js b/web/gui/src/main/webapp/app/fw/util/lion.js
index b30e8bb..56c5db4 100644
--- a/web/gui/src/main/webapp/app/fw/util/lion.js
+++ b/web/gui/src/main/webapp/app/fw/util/lion.js
@@ -34,28 +34,33 @@
 
         if (bundleKey === 'core.view.cluster') {
             bundle = {
+                // grouped to match core.view.cluster.lioncfg
                 title_cluster_nodes: 'Cluster Nodes',
-                total: 'Total',
-                active: 'Active',
-                started: 'Started',
+                k_esc_hint: 'Close the details panel',
+                k_click_hint: 'Select a row to show cluster node details',
+                k_scroll_down_hint: 'See available cluster nodes',
+
+                devices: 'Devices',
                 node_id: 'Node ID',
                 ip_address: 'IP Address',
                 tcp_port: 'TCP Port',
-                last_updated: 'Last Updated',
-                devices: 'Devices',
                 uri: 'URI',
+                protocol: 'Protocol',
+
                 type: 'Type',
                 chassis_id: 'Chassis ID',
                 vendor: 'Vendor',
                 hw_version: 'H/W Version',
                 sw_version: 'S/W Version',
-                protocol: 'Protocol',
                 serial_number: 'Serial #',
-                k_esc_hint: 'Close the details panel',
-                k_click_hint: 'Select a row to show cluster node details',
-                k_scroll_down_hint: 'See available cluster nodes',
-                k_click: 'click',
-                k_scroll_down: 'scroll down'
+
+                total: 'Total',
+                active: 'Active',
+                started: 'Started',
+                last_updated: 'Last Updated',
+
+                click: 'click',
+                scroll_down: 'scroll down'
             };
         }
 
diff --git a/web/gui/src/main/webapp/app/view/cluster/cluster.js b/web/gui/src/main/webapp/app/view/cluster/cluster.js
index b1e6608..f4d94f7 100644
--- a/web/gui/src/main/webapp/app/view/cluster/cluster.js
+++ b/web/gui/src/main/webapp/app/view/cluster/cluster.js
@@ -282,8 +282,8 @@
                 _helpFormat: ['esc']
             });
             ks.gestureNotes([
-                [lion('k_click'), lion('k_click_hint')],
-                [lion('k_scroll_down'), lion('k_scroll_down_hint')]
+                [lion('click'), lion('k_click_hint')],
+                [lion('scroll_down'), lion('k_scroll_down_hint')]
             ]);
             // if the panelData changes
             scope.$watch('panelData', function () {