<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.

-->
 
<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
								  xmlns:s="library://ns.adobe.com/flex/spark"
								  xmlns:controller="controller.*"
								  splashScreenImage="@Embed('assets/splash.jpg')" splashScreenScaleMode="stretch"
								  applicationComplete="applicationComplete()">
	<fx:Script>
		<![CDATA[
			import spark.managers.PersistenceManager;
			
			/**
			 * The LiveCycle Collaboration Service (LCCS) room URL used for the real time collaboration feature
			 * of this application (real time collaboration with financial advisor).
			 */
			public var roomURL:String;
			
			protected function applicationComplete():void
			{
				var persistenceManager:PersistenceManager = new PersistenceManager();
				if (persistenceManager.load())
				{
					var url:Object = persistenceManager.getProperty("roomURL");
					if (url)
						roomURL = url.toString();
				}
			}

			
			
		]]>
	</fx:Script>
	
	<fx:Style source="styles.css"/>
	
	<fx:Declarations>
		<controller:Feed id="feed"/>
	</fx:Declarations>
	
	<s:ViewNavigator label="Assets" firstView="views.AssetsView" width="100%" height="100%" icon="@Embed('assets/money_48.png')"/>
	<s:ViewNavigator label="Watch" firstView="views.WatchListView" width="100%" height="100%" icon="@Embed('assets/chart_line_48.png')"/>
	<s:ViewNavigator label="Alerts" firstView="views.AlertsView" width="100%" height="100%" icon="@Embed('assets/alarm_on_48.png')"/>
	<s:ViewNavigator label="Advisor" firstView="views.AdvisorView" width="100%" height="100%" icon="@Embed('assets/man_48.png')"/>
	
</s:TabbedViewNavigatorApplication>