Example usage:
// StoryViewAssistant(storyFeed, storyIndex) // // Passed a story element, displays that element in a // full scene view and offers options for next story (right // command menu button), previous story (left command menu button) // and to launch story URL in the browser (view menu). function StoryViewAssistant(storyFeed, storyIndex) { // Save the passed arguments for use in the scene. // this.storyFeed = storyFeed; this.storyIndex = storyIndex; } StoryViewAssistant.prototype.setup = function() { // Setup command menu for next and previous story as a menu group. // If first story, suppress Previous menu; if last story, suppress Next menu this.storyMenuAttr = {items: [{visable: false}, {items: []}, {visable: false}]}; if (this.storyIndex > 0) { this.storyMenuAttr.items[1].items.push({icon: "back", command: 'do-viewPrevious'}); } else { this.storyMenuAttr.items[1].items.push({icon: "", command: '', label: " "}); } if (this.storyIndex < this.storyFeed.stories.length-1) { this.storyMenuAttr.items[1].items.push({icon: "forward", command: 'do-viewNext'}); } else { this.storyMenuAttr.items[1].items.push({icon: "", command: '', label: " "}); } this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.storyMenuAttr);
To handle the commands generated by the menu, set up a handleCommand() function:
// Handlers to go to next and previous stories StoryViewAssistant.prototype.handleCommand = function(event) { if(event.type == Mojo.Event.command) { switch(event.command) { case 'do-viewNext': Mojo.Controller.stageController.swapScene("storyView", this.storyFeed, this.storyIndex+1); break; case 'do-viewPrevious': Mojo.Controller.stageController.swapScene("storyView", this.storyFeed, this.storyIndex-1); break; } } };
The generated menu looks like this: