| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| import { Logger } from 'libs/logs/logger' |
| |
| import { registerNavigateHomePageAction, navigateHomePage } from 'actions/navigate-home-page' |
| import { registerDisplayErrorAction } from 'actions/display-error' |
| import { registerAddPipeViewerAction } from 'actions/add-pipe-viewer' |
| import { registerNavigatePipesPageAction, navigatePipesPage } from 'actions/navigate-pipes-page' |
| import { registerNavigateNeigbourhoodAction, navigateNeigbourhood } from 'actions/navigate-neighborhood' |
| import { registerHelpAction, navigateHelp } from 'actions/navigate-help' |
| import { registerRedirectPipeAction } from 'actions/redirect-pipe' |
| |
| import { SubPageItem } from 'views/page/view' |
| |
| import { page } from 'runtime/context' |
| |
| var log = new Logger('app'); |
| |
| export function start() { |
| log.debug('start called'); |
| |
| // Initialize a new page, sets up toolbar and action bar for the app |
| initPageView(); |
| |
| // Register the action handlers for the application |
| registerActions(); |
| |
| // Start by triggering the home action |
| navigateHomePage(); |
| } |
| |
| /* |
| * Registers the action handlers for the application. |
| * Actions are cohesive pieces of functionality that can be triggered from |
| * any other action in a decoupled way by just using the action name. |
| * |
| * @private |
| */ |
| function registerActions() { |
| |
| log.debug('registering actions'); |
| |
| registerNavigateHomePageAction(); |
| registerDisplayErrorAction(); |
| registerAddPipeViewerAction(); |
| registerNavigatePipesPageAction(); |
| registerNavigateNeigbourhoodAction(); |
| registerRedirectPipeAction(); |
| registerHelpAction(); |
| } |
| |
| /* |
| * Constructs a new page, sets up toolbar and action bar for the app |
| * |
| * @private |
| */ |
| function initPageView() { |
| |
| // Home, Pipes and Help are top level sub-pages |
| var homeSubPageItem = new SubPageItem('home'); |
| homeSubPageItem.name = 'Home'; |
| homeSubPageItem.icon = 'home'; |
| homeSubPageItem.onActivate = navigateHomePage; |
| page.subPages.push(homeSubPageItem); |
| |
| var pipesSubPageItem = new SubPageItem('pipes'); |
| pipesSubPageItem.name = 'Pipes'; |
| pipesSubPageItem.icon = 'arrow-forward'; |
| pipesSubPageItem.onActivate = navigatePipesPage; |
| page.subPages.push(pipesSubPageItem); |
| |
| var neighborhoodSubPageItem = new SubPageItem('neighborhood'); |
| neighborhoodSubPageItem.name = 'Neighborhood'; |
| neighborhoodSubPageItem.icon = 'social:circles-extended'; |
| neighborhoodSubPageItem.onActivate = navigateNeigbourhood; |
| page.subPages.push(neighborhoodSubPageItem); |
| |
| var helpSubPageItem = new SubPageItem('help'); |
| helpSubPageItem.name = 'Help'; |
| helpSubPageItem.icon = 'help'; |
| helpSubPageItem.onActivate = navigateHelp; |
| |
| page.subPages.push(helpSubPageItem); |
| |
| document.body.appendChild(page.element); |
| } |