From 3410d259873e1d081e2328c8dc77174aa8964d53 Mon Sep 17 00:00:00 2001 From: Jason Scott Date: Mon, 17 Feb 2014 08:41:41 +0800 Subject: [PATCH] Add EventBus navigation to UI5 XACE - XML App Component With EventBus --- .../Component.js | 27 +++++++++++++ .../README.md | 10 +++++ .../_project_name_.sublime-project | 8 ++++ .../i18n/messageBundle.properties | 2 + .../index.html | 30 ++++++++++++++ .../model/mock.json | 40 +++++++++++++++++++ .../view/App.controller.js | 30 ++++++++++++++ .../view/App.view.xml | 14 +++++++ .../view/First.controller.js | 17 ++++++++ .../view/First.view.xml | 21 ++++++++++ .../view/Second.controller.js | 11 +++++ .../view/Second.view.xml | 23 +++++++++++ 12 files changed, 233 insertions(+) create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/Component.js create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/README.md create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/_project_name_.sublime-project create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/i18n/messageBundle.properties create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/index.html create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/model/mock.json create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/App.controller.js create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/App.view.xml create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/First.controller.js create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/First.view.xml create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/Second.controller.js create mode 100644 Templates/UI5 XACE - XML App Component With EventBus/view/Second.view.xml 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 @@ + + + + + + + + + + + + +