diff --git a/Templates/UI5 XACE - XML App Component With EventBus/Component.js b/Templates/UI5 XACE - XML App Component With EventBus/Component.js
new file mode 100644
index 0000000..1201379
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/Component.js
@@ -0,0 +1,27 @@
+jQuery.sap.declare("${namespace}.Component");
+
+sap.ui.core.UIComponent.extend("${namespace}.Component", {
+
+ createContent : function() {
+
+ // create root view
+ var oView = sap.ui.view({
+ id: "idViewApp",
+ viewName: "${namespace}.view.App",
+ type: "XML",
+ viewData: { component : this }
+ });
+
+ // set data model on root view
+ oView.setModel(new sap.ui.model.json.JSONModel("model/mock.json"));
+
+ // set i18n model
+ var i18nModel = new sap.ui.model.resource.ResourceModel({
+ bundleUrl : "i18n/messageBundle.properties"
+ });
+ oView.setModel(i18nModel, "i18n");
+
+ // done
+ return oView;
+ }
+});
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/README.md b/Templates/UI5 XACE - XML App Component With EventBus/README.md
new file mode 100644
index 0000000..2c780c3
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/README.md
@@ -0,0 +1,10 @@
+XACE - XML | App | Component | EventBus
+
+Basic app with:
+
+Views: XML
+Main Control: App
+Driver: Component
+Navigation: EventBus
+
+From SublimeUI5 - see [SublimeUI5 on Github](https://github.com/qmacro/SublimeUI5) for more info.
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/_project_name_.sublime-project b/Templates/UI5 XACE - XML App Component With EventBus/_project_name_.sublime-project
new file mode 100644
index 0000000..a55d513
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/_project_name_.sublime-project
@@ -0,0 +1,8 @@
+{
+ "folders":
+ [
+ {
+ "path": "."
+ }
+ ]
+}
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/i18n/messageBundle.properties b/Templates/UI5 XACE - XML App Component With EventBus/i18n/messageBundle.properties
new file mode 100644
index 0000000..c029875
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/i18n/messageBundle.properties
@@ -0,0 +1,2 @@
+FirstPageTitle=Overview
+SecondPageTitle=Detail
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/index.html b/Templates/UI5 XACE - XML App Component With EventBus/index.html
new file mode 100644
index 0000000..2e2cde8
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/index.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ ${project_name}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/model/mock.json b/Templates/UI5 XACE - XML App Component With EventBus/model/mock.json
new file mode 100644
index 0000000..d04b5db
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/model/mock.json
@@ -0,0 +1,40 @@
+{
+ "beers": [
+ {
+ "brewName": "India Pale Ale (IPA)",
+ "brewerName": "Goose Island Beer Co.",
+ "brewType": "English IPA",
+ "ABV": 5.9
+ },
+ {
+ "brewName": "Pint",
+ "brewerName": "Marble Beers",
+ "brewType": "Golden Ale",
+ "ABV": 5.9
+ },
+ {
+ "brewName": "Orval",
+ "brewerName": "Brasserie d'Orval",
+ "brewType": "Belgian Pale Ale",
+ "ABV": 3.9
+ },
+ {
+ "brewName": "Old Peculier",
+ "brewerName": "Theakstons",
+ "brewType": "Old Ale",
+ "ABV": 6.2
+ },
+ {
+ "brewName": "5 A.M. Saint",
+ "brewerName": "BrewDog",
+ "brewType": "American Amber / Red Ale",
+ "ABV": 5.6
+ },
+ {
+ "brewName": "90 Minute IPA",
+ "brewerName": "Dogfish Head Craft Brewery",
+ "brewType": "Imperial / Double IPA",
+ "ABV": 9.0
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/App.controller.js b/Templates/UI5 XACE - XML App Component With EventBus/view/App.controller.js
new file mode 100644
index 0000000..efdfc83
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/App.controller.js
@@ -0,0 +1,30 @@
+sap.ui.controller("${namespace}.view.App", {
+
+ onInit: function(oEvent) {
+
+ var bus = sap.ui.getCore().getEventBus();
+ bus.subscribe("nav", "to", this.navToHandler, this);
+ bus.subscribe("nav", "back", this.navBackHandler, this);
+
+ this.oApp = this.getView().byId("idAppRoot");
+
+ },
+
+
+ navToHandler: function(channelId, eventId, data) {
+
+ this.oApp.to(data.id);
+ if (data.data.context) {
+ this.oApp.getPage(data.id).setBindingContext(data.data.context);
+ }
+
+ },
+
+
+ navBackHandler: function() {
+
+ this.oApp.back();
+
+ }
+
+});
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/App.view.xml b/Templates/UI5 XACE - XML App Component With EventBus/view/App.view.xml
new file mode 100644
index 0000000..8dde017
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/App.view.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/First.controller.js b/Templates/UI5 XACE - XML App Component With EventBus/view/First.controller.js
new file mode 100644
index 0000000..52a631e
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/First.controller.js
@@ -0,0 +1,17 @@
+sap.ui.controller("${namespace}.view.First", {
+
+ onInit: function() {
+ this.bus = sap.ui.getCore().getEventBus();
+ },
+
+ handleListSelect: function(oEvent) {
+ this.bus.publish("nav", "to", {
+ id: "idViewApp--idViewSecond",
+ data: {
+ context: oEvent.getParameter("listItem").getBindingContext()
+ }
+ });
+ }
+
+
+});
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/First.view.xml b/Templates/UI5 XACE - XML App Component With EventBus/view/First.view.xml
new file mode 100644
index 0000000..df7075c
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/First.view.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/Second.controller.js b/Templates/UI5 XACE - XML App Component With EventBus/view/Second.controller.js
new file mode 100644
index 0000000..2838df4
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/Second.controller.js
@@ -0,0 +1,11 @@
+sap.ui.controller("${namespace}.view.Second", {
+
+ onInit: function() {
+ this.bus = sap.ui.getCore().getEventBus();
+ },
+
+ handleNavButtonPress: function(oEvent) {
+ this.bus.publish("nav", "back");
+ }
+
+});
\ No newline at end of file
diff --git a/Templates/UI5 XACE - XML App Component With EventBus/view/Second.view.xml b/Templates/UI5 XACE - XML App Component With EventBus/view/Second.view.xml
new file mode 100644
index 0000000..582caba
--- /dev/null
+++ b/Templates/UI5 XACE - XML App Component With EventBus/view/Second.view.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+