incubator-flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From t...@apache.org
Subject svn commit: r1230830 [1/4] - in /incubator/flex/whiteboard/tink/iview: ./ examples/ examples/libs/ examples/src/ src/ src/org/ src/org/apache/ src/org/apache/spark/ src/org/apache/spark/components/ src/org/apache/spark/components/supportClasses/ src/or...
Date Thu, 12 Jan 2012 23:15:19 GMT
Author: tink
Date: Thu Jan 12 23:15:17 2012
New Revision: 1230830

URL: http://svn.apache.org/viewvc?rev=1230830&view=rev
Log:
Initial import of IView examples

Added:
    incubator/flex/whiteboard/tink/iview/
    incubator/flex/whiteboard/tink/iview/examples/
    incubator/flex/whiteboard/tink/iview/examples/libs/
    incubator/flex/whiteboard/tink/iview/examples/src/
    incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples-app.xml
    incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples.mxml
    incubator/flex/whiteboard/tink/iview/examples/src/ViewGroupExample.mxml
    incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExample.as
    incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExampleSkin.mxml
    incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableContainerExample.mxml
    incubator/flex/whiteboard/tink/iview/examples/src/blackberry-tablet.xml
    incubator/flex/whiteboard/tink/iview/src/
    incubator/flex/whiteboard/tink/iview/src/defaults.css
    incubator/flex/whiteboard/tink/iview/src/design.xml
    incubator/flex/whiteboard/tink/iview/src/manifest.xml
    incubator/flex/whiteboard/tink/iview/src/org/
    incubator/flex/whiteboard/tink/iview/src/org/apache/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/IView.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewGroup.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewNavigator.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewNavigator.png   (with props)
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewSkinnableComponent.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewSkinnableContainer.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/supportClasses/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/supportClasses/NavigationStack.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/supportClasses/ViewDescriptor.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/supportClasses/ViewNavigatorBase.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/skins/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/skins/mobile/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/skins/mobile/ViewNavigatorSkin.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/transitions/
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/transitions/SlideViewTransition.as
    incubator/flex/whiteboard/tink/iview/src/org/apache/spark/transitions/ViewTransitionBase.as

Added: incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples-app.xml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples-app.xml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples-app.xml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples-app.xml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://ns.adobe.com/air/application/3.1">
+
+<!-- Adobe AIR Application Descriptor File Template.
+
+	Specifies parameters for identifying, installing, and launching AIR applications.
+
+	xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.1
+			The last segment of the namespace specifies the version 
+			of the AIR runtime required for this application to run.
+			
+	minimumPatchLevel - The minimum patch level of the AIR runtime required to run 
+			the application. Optional.
+-->
+
+	<!-- A universally unique application identifier. Must be unique across all AIR applications.
+	Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+	<id>ApacheIViewExamples</id>
+
+	<!-- Used as the filename for the application. Required. -->
+	<filename>ApacheIViewExamples</filename>
+
+	<!-- The name that is displayed in the AIR application installer. 
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<name>ApacheIViewExamples</name>
+	
+	<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. 
+	Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
+	An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
+	<versionNumber>1.0.0</versionNumber>
+		         
+	<!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
+	<!-- <versionLabel></versionLabel> -->
+
+	<!-- Description, displayed in the AIR application installer.
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<!-- <description></description> -->
+
+	<!-- Copyright information. Optional -->
+	<!-- <copyright></copyright> -->
+
+	<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
+	<!-- <publisherID></publisherID> -->
+
+	<!-- Settings for the application's initial window. Required. -->
+	<initialWindow>
+		<!-- The main SWF or HTML file of the application. Required. -->
+		<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
+		<content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
+		
+		<!-- The title of the main window. Optional. -->
+		<!-- <title></title> -->
+
+		<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
+		<!-- <systemChrome></systemChrome> -->
+
+		<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
+		<!-- <transparent></transparent> -->
+
+		<!-- Whether the window is initially visible. Optional. Default false. -->
+		<!-- <visible></visible> -->
+
+		<!-- Whether the user can minimize the window. Optional. Default true. -->
+		<!-- <minimizable></minimizable> -->
+
+		<!-- Whether the user can maximize the window. Optional. Default true. -->
+		<!-- <maximizable></maximizable> -->
+
+		<!-- Whether the user can resize the window. Optional. Default true. -->
+		<!-- <resizable></resizable> -->
+
+		<!-- The window's initial width in pixels. Optional. -->
+		<!-- <width></width> -->
+
+		<!-- The window's initial height in pixels. Optional. -->
+		<!-- <height></height> -->
+
+		<!-- The window's initial x position. Optional. -->
+		<!-- <x></x> -->
+
+		<!-- The window's initial y position. Optional. -->
+		<!-- <y></y> -->
+
+		<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
+		<!-- <minSize></minSize> -->
+
+		<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
+		<!-- <maxSize></maxSize> -->
+
+        <!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device -->
+
+        <!-- <aspectRatio></aspectRatio> -->
+
+        <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false -->
+
+        <!-- <autoOrients></autoOrients> -->
+
+        <!-- Whether the app launches in full screen. Optional. Mobile only. Default false -->
+
+        <!-- <fullScreen></fullScreen> -->
+
+        <!-- The render mode for the app (either auto, cpu, gpu, or direct). Optional. Default auto -->
+
+        <!-- <renderMode></renderMode> -->
+
+		<!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none").  Optional.  Defaults "pan." -->
+		<!-- <softKeyboardBehavior></softKeyboardBehavior> -->
+	<visible>true</visible>
+    </initialWindow>
+
+	<!-- We recommend omitting the supportedProfiles element, -->
+	<!-- which in turn permits your application to be deployed to all -->
+	<!-- devices supported by AIR. If you wish to restrict deployment -->
+	<!-- (i.e., to only mobile devices) then add this element and list -->
+	<!-- only the profiles which your application does support. -->
+	<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
+
+	<!-- The subpath of the standard default installation location to use. Optional. -->
+	<!-- <installFolder></installFolder> -->
+
+	<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
+	<!-- <programMenuFolder></programMenuFolder> -->
+
+	<!-- The icon the system uses for the application. For at least one resolution,
+	specify the path to a PNG file included in the AIR package. Optional. -->
+	<!-- <icon>
+		<image16x16></image16x16>
+		<image32x32></image32x32>
+		<image36x36></image36x36>
+		<image48x48></image48x48>
+		<image57x57></image57x57>
+		<image72x72></image72x72>
+		<image114x114></image114x114>
+		<image128x128></image128x128>
+	</icon> -->
+
+	<!-- Whether the application handles the update when a user double-clicks an update version
+	of the AIR file (true), or the default AIR application installer handles the update (false).
+	Optional. Default false. -->
+	<!-- <customUpdateUI></customUpdateUI> -->
+	
+	<!-- Whether the application can be launched when the user clicks a link in a web browser.
+	Optional. Default false. -->
+	<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
+
+	<!-- Listing of file types for which the application can register. Optional. -->
+	<!-- <fileTypes> -->
+
+		<!-- Defines one file type. Optional. -->
+		<!-- <fileType> -->
+
+			<!-- The name that the system displays for the registered file type. Required. -->
+			<!-- <name></name> -->
+
+			<!-- The extension to register. Required. -->
+			<!-- <extension></extension> -->
+			
+			<!-- The description of the file type. Optional. -->
+			<!-- <description></description> -->
+			
+			<!-- The MIME content type. -->
+			<!-- <contentType></contentType> -->
+			
+			<!-- The icon to display for the file type. Optional. -->
+			<!-- <icon>
+				<image16x16></image16x16>
+				<image32x32></image32x32>
+				<image48x48></image48x48>
+				<image128x128></image128x128>
+			</icon> -->
+			
+		<!-- </fileType> -->
+	<!-- </fileTypes> -->
+
+    <!-- iOS specific capabilities -->
+	<!-- <iPhone> -->
+		<!-- A list of plist key/value pairs to be added to the application Info.plist -->
+		<!-- <InfoAdditions>
+            <![CDATA[
+                <key>UIDeviceFamily</key>
+                <array>
+                    <string>1</string>
+                    <string>2</string>
+                </array>
+                <key>UIStatusBarStyle</key>
+                <string>UIStatusBarStyleBlackOpaque</string>
+                <key>UIRequiresPersistentWiFi</key>
+                <string>YES</string>
+            ]]>
+        </InfoAdditions> -->
+        <!-- A list of plist key/value pairs to be added to the application Entitlements.plist -->
+		<!-- <Entitlements>
+            <![CDATA[
+                <key>keychain-access-groups</key>
+                <array>
+                    <string></string>
+                    <string></string>
+                </array>
+            ]]>
+        </Entitlements> -->
+	<!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" -->
+	<!-- <requestedDisplayResolution></requestedDisplayResolution> -->
+	<!-- </iPhone> -->
+
+	<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
+    <!--<android> -->
+    <!--	<manifestAdditions>
+		<![CDATA[
+			<manifest android:installLocation="auto">
+				<uses-permission android:name="android.permission.INTERNET"/>
+				<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+				<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+				<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
+				<application android:enabled="true">
+					<activity android:excludeFromRecents="false">
+						<intent-filter>
+							<action android:name="android.intent.action.MAIN"/>
+							<category android:name="android.intent.category.LAUNCHER"/>
+						</intent-filter>
+					</activity>
+				</application>
+            </manifest>
+		]]>
+        </manifestAdditions> -->
+	    <!-- Color depth for the app (either "32bit" or "16bit"). Optional. Default 16bit before namespace 3.0, 32bit after -->
+        <!-- <colorDepth></colorDepth> -->
+    <!-- </android> -->
+	<!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->
+
+<android>
+        <manifestAdditions><![CDATA[
+			<manifest android:installLocation="auto">
+			<!--See the Adobe AIR documentation for more information about setting Google Android permissions-->
+			<!--Removing the permission android.permission.INTERNET will have the side effect
+					of preventing you from debugging your application on your device-->
+			<uses-permission android:name="android.permission.INTERNET"/>
+			<!--<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>-->
+			<!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->
+			<!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>-->
+			<!--The DISABLE_KEYGUARD and WAKE_LOCK permissions should be toggled together
+					in order to access AIR's SystemIdleMode APIs-->
+			<!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>-->
+			<!--<uses-permission android:name="android.permission.WAKE_LOCK"/>-->
+			<!--<uses-permission android:name="android.permission.CAMERA"/>-->
+			<!--<uses-permission android:name="android.permission.RECORD_AUDIO"/>-->
+			<!--The ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE permissions should be toggled
+					together in order to use AIR's NetworkInfo APIs-->
+			<!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>-->
+			<!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-->
+			</manifest>
+			
+		]]></manifestAdditions>
+    </android>
+    <iPhone>
+        <InfoAdditions><![CDATA[
+			<key>UIDeviceFamily</key>
+			<array>
+				<string>1</string>
+				<string>2</string>
+			</array>
+		]]></InfoAdditions>
+        <requestedDisplayResolution>high</requestedDisplayResolution>
+    </iPhone>
+</application>

Added: incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples.mxml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples.mxml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples.mxml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ApacheIViewExamples.mxml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
+			   xmlns:s="library://ns.adobe.com/flex/spark"
+			   xmlns:sa="library://ns.apache.org/flex/spark"
+			   applicationDPI="160">
+	
+	<fx:Declarations>
+		<!-- Place non-visual elements (e.g., services, value objects) here -->
+	</fx:Declarations>
+	
+	<fx:Style>
+		@namespace sa "library://ns.apache.org/flex/spark";
+		@namespace local "*";
+		
+		local|ViewSkinnableComponentExample
+		{
+			skinClass:ClassReference("ViewSkinnableComponentExampleSkin")
+		}
+		
+		sa|ViewNavigator
+		{
+			skinClass:ClassReference("org.apache.spark.skins.mobile.ViewNavigatorSkin")
+		}
+	</fx:Style>
+	
+	<sa:ViewNavigator firstView="{ViewSkinnableContainerExample}" width="100%" height="100%"/>
+
+</s:Application>

Added: incubator/flex/whiteboard/tink/iview/examples/src/ViewGroupExample.mxml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ViewGroupExample.mxml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ViewGroupExample.mxml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ViewGroupExample.mxml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sa:ViewGroup xmlns:fx="http://ns.adobe.com/mxml/2009" 
+			  xmlns:s="library://ns.adobe.com/flex/spark"
+			  xmlns:sa="library://ns.apache.org/flex/spark"
+			  title="ViewGroupExample"
+			  width="100%" height="100%">
+	
+	<fx:Script>
+		<![CDATA[
+			protected function button1_clickHandler(event:MouseEvent):void
+			{
+				navigator.pushView( ViewSkinnableContainerExample );
+			}
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<!-- Place non-visual elements (e.g., services, value objects) here -->
+	</fx:Declarations>
+	
+	<s:Rect width="100%" height="100%">
+		<s:fill>
+			<s:SolidColor color="0x00ff00"/>
+		</s:fill>
+	</s:Rect>
+	
+	<s:Button label="Goto ViewSkinnableContainerExample" click="button1_clickHandler(event)"
+			  horizontalCenter="0" verticalCenter="0"/>
+	
+	<sa:navigationContent>
+		<s:Button label="Back" click="navigator.popView()"/>
+	</sa:navigationContent>
+	
+</sa:ViewGroup>

Added: incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExample.as
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExample.as?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExample.as (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExample.as Thu Jan 12 23:15:17 2012
@@ -0,0 +1,48 @@
+package
+{
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	
+	import spark.components.Button;
+	import org.apache.spark.components.ViewSkinnableComponent;
+
+	public class ViewSkinnableComponentExample extends ViewSkinnableComponent
+	{
+		public function ViewSkinnableComponentExample()
+		{
+			super();
+			percentWidth = percentHeight = 100;
+			
+			var b:Button = new Button();
+			b.addEventListener(MouseEvent.CLICK, back_clickHandler, false, 0, true);
+			b.label = "Back";
+			navigationContent = [ b ];
+			
+			title = "ViewSkinnableComponentExample"
+		}
+		
+		[SkinPart(required="true")]
+		public var button:Button;
+		
+		
+		override protected function partAdded(partName:String, instance:Object):void
+		{
+			super.partAdded(partName, instance );
+			
+			if( instance == button )
+			{
+				button.addEventListener(MouseEvent.CLICK, onButtonClick, false, 0, true );
+			}
+		}
+		
+		private function back_clickHandler( event:Event ):void
+		{
+			navigator.popView();
+		}
+		
+		private function onButtonClick( event:Event ):void
+		{
+			navigator.pushView( ViewGroupExample );
+		}
+	}
+}
\ No newline at end of file

Added: incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExampleSkin.mxml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExampleSkin.mxml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExampleSkin.mxml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableComponentExampleSkin.mxml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark">
+	<!-- host component -->
+	<fx:Metadata>
+		[HostComponent("ViewSkinnableComponentExample")]
+	</fx:Metadata>
+	
+	<!-- SkinParts
+	name=button, type=spark.components.Button, required=true
+	-->
+	
+	<s:Rect width="100%" height="100%">
+		<s:fill>
+			<s:SolidColor color="0xFFFF00"/>
+		</s:fill>
+	</s:Rect>
+	
+	<s:Button id="button" label="Goto ViewGroupExample" horizontalCenter="0" verticalCenter="0"/>
+	
+</s:Skin>

Added: incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableContainerExample.mxml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableContainerExample.mxml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableContainerExample.mxml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/ViewSkinnableContainerExample.mxml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sa:ViewSkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
+			  xmlns:s="library://ns.adobe.com/flex/spark"
+			  xmlns:sa="library://ns.apache.org/flex/spark"
+			  title="ViewSkinnableContainerExample"
+			  width="100%" height="100%">
+	
+	<fx:Script>
+		<![CDATA[
+			protected function button1_clickHandler(event:MouseEvent):void
+			{
+				navigator.pushView( ViewSkinnableComponentExample );
+			}
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<!-- Place non-visual elements (e.g., services, value objects) here -->
+	</fx:Declarations>
+	
+	<s:Rect width="100%" height="100%">
+		<s:fill>
+			<s:SolidColor color="0x0000ff"/>
+		</s:fill>
+	</s:Rect>
+	
+	<s:Button label="Goto ViewSkinnableComponentExample" click="button1_clickHandler(event)"
+			  horizontalCenter="0" verticalCenter="0"/>
+	
+	<sa:navigationContent>
+		<s:Button label="Back" click="navigator.popView()"/>
+	</sa:navigationContent>
+	
+</sa:ViewSkinnableContainer>

Added: incubator/flex/whiteboard/tink/iview/examples/src/blackberry-tablet.xml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/examples/src/blackberry-tablet.xml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/examples/src/blackberry-tablet.xml (added)
+++ incubator/flex/whiteboard/tink/iview/examples/src/blackberry-tablet.xml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<qnx/>

Added: incubator/flex/whiteboard/tink/iview/src/defaults.css
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/src/defaults.css?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/src/defaults.css (added)
+++ incubator/flex/whiteboard/tink/iview/src/defaults.css Thu Jan 12 23:15:17 2012
@@ -0,0 +1,8 @@
+/* CSS file */
+@namespace "library://ns.apache.org/flex/spark";
+
+ViewNavigator
+{
+	skinClass : ClassReference("org.apache.spark.skins.mobile.ViewNavigatorSkin")
+}
+

Added: incubator/flex/whiteboard/tink/iview/src/design.xml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/src/design.xml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/src/design.xml (added)
+++ incubator/flex/whiteboard/tink/iview/src/design.xml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<design>
+  <namespaces>
+    <namespace prefix="sa" uri="library://ns.apache.org/flex/spark"/>
+  </namespaces>
+</design>
\ No newline at end of file

Added: incubator/flex/whiteboard/tink/iview/src/manifest.xml
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/src/manifest.xml?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/src/manifest.xml (added)
+++ incubator/flex/whiteboard/tink/iview/src/manifest.xml Thu Jan 12 23:15:17 2012
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<componentPackage>
+
+	<!-- containers -->
+	<component id="ViewGroup" class="org.apache.spark.components.ViewGroup"/>
+	<component id="ViewNavigator" class="org.apache.spark.components.ViewNavigator"/>
+	<component id="ViewSkinnableComponent" class="org.apache.spark.components.ViewSkinnableComponent"/>
+	<component id="ViewSkinnableContainer" class="org.apache.spark.components.ViewSkinnableContainer"/>
+	<component id="SlideViewTransition" class="org.apache.spark.transitions.SlideViewTransition"/>
+	
+</componentPackage>
\ No newline at end of file

Added: incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/IView.as
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/IView.as?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/IView.as (added)
+++ incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/IView.as Thu Jan 12 23:15:17 2012
@@ -0,0 +1,373 @@
+package org.apache.spark.components
+{
+	import mx.core.IDataRenderer;
+	import mx.core.IInvalidating;
+	import mx.core.ILayoutElement;
+	import mx.core.IUIComponent;
+	import mx.core.IVisualElement;
+	import mx.managers.ILayoutManagerClient;
+	
+	import spark.components.ViewNavigator;
+	import spark.layouts.supportClasses.LayoutBase;
+	
+	public interface IView extends IUIComponent, IVisualElement, IDataRenderer, IInvalidating, ILayoutElement, ILayoutManagerClient
+	{
+		function get destructionPolicy():String
+		function set destructionPolicy(value:String):void
+			
+			
+		/**
+		 *  Specifies whether a view should show the tab bar or not.
+		 *  This property does not necessarily correlate to the 
+		 *  <code>visible</code> property of the navigator's TabBar control. 
+		 *
+		 *  @default true
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get tabBarVisible():Boolean
+		/**
+		 *  @private
+		 */
+		function set tabBarVisible(value:Boolean):void
+			
+			
+		/**
+		 *  Specifies whether a view should show the action bar or not.
+		 *  This property does not necessarily correlate to the 
+		 *  <code>visible</code> property of the view navigator's ActionBar control. 
+		 *
+		 *  @default true
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get actionBarVisible():Boolean
+		/**
+		 *  @private
+		 */ 
+		function set actionBarVisible(value:Boolean):void
+			
+			
+		/**
+		 *  By default, the TabBar and ActionBar controls of a 
+		 *  mobile application define an area that cannot be used 
+		 *  by the views of an application. 
+		 *  That means your content cannot use the full screen size 
+		 *  of the mobile device.
+		 *  If you set this property to <code>true</code>, the content area 
+		 *  of the application spans the entire width and height of the screen. 
+		 *  The ActionBar and TabBar controls hover over the content area with 
+		 *  an <code>alpha</code> value of 0.5 so that they are partially transparent. 
+		 *  
+		 *  @default false
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get overlayControls():Boolean
+		/**
+		 *  @private
+		 */
+		function set overlayControls(value:Boolean):void
+			
+			
+		/**
+		 *  This property overrides the <code>actionContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#actionContent
+		 *
+		 *  @default null
+		 *
+		 *  @see ActionBar#actionContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get actionContent():Array
+		/**
+		 *  @private
+		 */
+		function set actionContent(value:Array):void
+		
+			
+		/**
+		 *  @copy ActionBar#actionLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get actionLayout():LayoutBase
+		/**
+		 *  @private
+		 */
+		function set actionLayout(value:LayoutBase):void
+			
+		
+		/**
+		 *  This property overrides the <code>navigationContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#navigationContent
+		 *
+		 *  @default null
+		 * 
+		 *  @see ActionBar#navigationContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get navigationContent():Array
+		/**
+		 *  @private
+		 */
+		function set navigationContent(value:Array):void
+			
+			
+		/**
+		 *  @copy ActionBar#navigationLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get navigationLayout():LayoutBase
+		/**
+		 *  @private
+		 */
+		function set navigationLayout(value:LayoutBase):void
+			
+			
+		/**
+		 *  This property overrides the <code>title</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#title
+		 *
+		 *  @default ""
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */ 
+		function get title():String
+		/**
+		 *  @private
+		 */ 
+		function set title(value:String):void
+		
+		
+		/**
+		 *  This property overrides the <code>titleContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#titleContent
+		 *
+		 *  @default null
+		 * 
+		 *  @see ActionBar#titleContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get titleContent():Array
+		/**
+		 *  @private
+		 */
+		function set titleContent(value:Array):void
+		
+		
+		/**
+		 *  @copy ActionBar#titleLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get titleLayout():LayoutBase
+		/**
+		 *  @private
+		 */
+		function set titleLayout(value:LayoutBase):void
+			
+			
+		/**
+		 *  @private
+		 */ 
+		function backKeyHandledByView():Boolean
+			
+		
+		/**
+		 *  @private
+		 *  Determines if the current view can be removed by a navigator.  The default 
+		 *  implementation dispatches a <code>FlexEvent.REMOVING</code> event.  If
+		 *  preventDefault() is called on the event, this property will return false.
+		 * 
+		 *  @return Returns true if the view can be removed
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */    
+		function canRemove():Boolean
+			
+			
+		/**
+		 *  @private
+		 *  Method called by parent navigator to update the actionBarVisible
+		 *  flag as a result of the showActionBar() or hideActionBar() methods.
+		 */ 
+		function setActionBarVisible(value:Boolean):void
+			
+			
+		/**
+		 *  Indicates whether the current view is active.  
+		 *  The view's navigator  automatically sets this flag to <code>true</code> 
+		 *  or <code>false</code> as its state changes.  
+		 *  Setting this property can dispatch the <code>viewActivate</code> or 
+		 *  <code>viewDeactivate</code> events. 
+		 *  
+		 *  @default false
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function get isActive():Boolean
+		/**
+		 * @private
+		 */
+		function setActive(value:Boolean):void
+			
+			
+		/**
+		 *  Set the current state.
+		 *
+		 *  @param stateName The name of the new view state.
+		 *
+		 *  @param playTransition If <code>true</code>, play
+		 *  the appropriate transition when the view state changes.
+		 *
+		 *  @see #currentState
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		function setCurrentState(stateName:String, playTransition:Boolean = true):void
+			
+			
+		/**
+		 *  Deserializes a data object that was saved to disk by the view,
+		 *  typically by a call to the <code>serializeData()</code> method.  
+		 *
+		 *  @param value The data object to deserialize.
+		 *  
+		 *  @return The value assigned to the 
+		 *  view's <code>data</code> property.
+		 *
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function deserializeData(value:Object):Object
+			
+		
+		/**
+		 *  @private
+		 */ 
+		function setNavigator(value:org.apache.spark.components.ViewNavigator):void
+			
+			
+		/**
+		 *  Creates an object returned to the view navigator
+		 *  when this view is popped off the navigator's stack.
+		 *
+		 *  <p>Override this method in a View to return data back the new 
+		 *  view when this view is popped off the stack. 
+		 *  The <code>createReturnObject()</code> method returns a single Object.
+		 *  The Object returned by this method is written to the 
+		 *  <code>ViewNavigator.poppedViewReturnedObject</code> property. </p>
+		 *
+		 *  <p>The <code>ViewNavigator.poppedViewReturnedObject</code> property
+		 *  is of type ViewReturnObject.
+		 *  The <code>ViewReturnObject.object</code> property contains the 
+		 *  value returned by this method. </p>
+		 *
+		 *  <p>If the <code>poppedViewReturnedObject</code> property is null, 
+		 *  no data was returned. 
+		 *  The <code>poppedViewReturnedObject</code> property is guaranteed to be set 
+		 *  in the new view before the new view receives the <code>add</code> event.</p>
+		 * 
+		 *  @return The value written to the <code>object</code> field of the 
+		 *  <code>ViewNavigator.poppedViewReturnedObject</code> property.  
+		 *
+		 *  @see ViewNavigator#poppedViewReturnedObject
+		 *  @see spark.components.supportClasses.ViewReturnObject
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function createReturnObject():Object
+			
+			
+		/**
+		 *  Responsible for serializes the view's <code>data</code> property 
+		 *  when the view is being persisted to disk.  
+		 *  The returned object should be something that can
+		 *  be successfully written to a shared object.  
+		 *  By default, this method returns the <code>data</code> property
+		 *  of the view.
+		 * 
+		 *  @return The serialized data object.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function serializeData():Object
+			
+			
+		/**
+		 *  Checks the aspect ratio of the stage and returns the proper state
+		 *  that the View should change to.  
+		 * 
+		 *  @return A String specifying the name of the state to apply to the view. 
+		 *  The possible return values are <code>"portrait"</code>
+		 *  or <code>"landscape"</code>.  
+		 *  The state is only changed if the desired state exists
+		 *  on the View. 
+		 *  If it does not, this method returns the component's current state.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		function getCurrentViewState():String
+	}
+}
\ No newline at end of file

Added: incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewGroup.as
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewGroup.as?rev=1230830&view=auto
==============================================================================
--- incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewGroup.as (added)
+++ incubator/flex/whiteboard/tink/iview/src/org/apache/spark/components/ViewGroup.as Thu Jan 12 23:15:17 2012
@@ -0,0 +1,677 @@
+package org.apache.spark.components
+{
+	import flash.events.Event;
+	
+	import mx.core.FlexGlobals;
+	import mx.core.IDataRenderer;
+	import mx.core.mx_internal;
+	import mx.events.FlexEvent;
+	import mx.events.PropertyChangeEvent;
+	
+	import spark.components.Group;
+	import spark.core.ContainerDestructionPolicy;
+	import spark.events.ViewNavigatorEvent;
+	import spark.layouts.supportClasses.LayoutBase;
+	
+	use namespace mx_internal;
+	
+	public class ViewGroup extends Group implements IView, IDataRenderer
+	{
+		public function ViewGroup()
+		{
+			super();
+		}
+		
+		//----------------------------------
+		//  navigator
+		//----------------------------------
+		
+		private var _navigator:ViewNavigator = null;
+		
+		/**
+		 * The view navigator that this view resides in.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		
+		[Bindable("navigatorChanged")]
+		public function get navigator():ViewNavigator
+		{
+			return _navigator;
+		}
+		
+		//----------------------------------
+		//  destructionPolicy
+		//----------------------------------
+		
+		private var _destructionPolicy:String = ContainerDestructionPolicy.AUTO;
+		
+		[Inspectable(category="General", enumeration="auto,never", defaultValue="auto")]
+		/**
+		 *  Defines the destruction policy the view's navigator should use
+		 *  when this view is removed. If set to "auto", the navigator will
+		 *  destroy the view when it isn't active.  If set to "never", the
+		 *  view will be cached in memory.
+		 * 
+		 *  @default auto
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get destructionPolicy():String
+		{
+			return _destructionPolicy;
+		}
+		
+		/**
+		 *  @private
+		 */
+		public function set destructionPolicy(value:String):void
+		{
+			_destructionPolicy = value;    
+		}
+		
+		//----------------------------------
+		//  tabBarVisible
+		//----------------------------------
+		private var _tabBarVisible:Boolean = true;
+		
+		[Inspectable(category="General", defaultValue="true")]
+		/**
+		 *  Specifies whether a view should show the tab bar or not.
+		 *  This property does not necessarily correlate to the 
+		 *  <code>visible</code> property of the navigator's TabBar control. 
+		 *
+		 *  @default true
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get tabBarVisible():Boolean
+		{
+			return _tabBarVisible;
+		}
+		
+		/**
+		 *  @private
+		 */
+		public function set tabBarVisible(value:Boolean):void
+		{
+			var oldValue:Boolean = _tabBarVisible;
+			_tabBarVisible = value;
+			
+			// Immediately request actionBar's visibility be toggled
+			if (isActive && navigator)
+			{
+				if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+				{
+					var changeEvent:PropertyChangeEvent = 
+						PropertyChangeEvent.createUpdateEvent(this, "tabBarVisible", oldValue, value);
+					
+					dispatchEvent(changeEvent);
+				}
+			}
+		}
+		
+		//----------------------------------
+		//  actionBarVisible
+		//----------------------------------
+		private var _actionBarVisible:Boolean = true;
+		
+		[Inspectable(category="General", defaultValue="true")]
+		/**
+		 *  Specifies whether a view should show the action bar or not.
+		 *  This property does not necessarily correlate to the 
+		 *  <code>visible</code> property of the view navigator's ActionBar control. 
+		 *
+		 *  @default true
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get actionBarVisible():Boolean
+		{
+			return _actionBarVisible;
+		}
+		
+		/**
+		 *  @private
+		 */ 
+		public function set actionBarVisible(value:Boolean):void
+		{
+			_actionBarVisible = value;
+			
+			// Immediately request actionBar's visibility be toggled
+			if (isActive && navigator)
+			{
+				if (_actionBarVisible)
+					navigator.showActionBar();
+				else
+					navigator.hideActionBar();
+			}
+		}
+		
+		//----------------------------------
+		//  overlayControls
+		//----------------------------------
+		
+		private var _overlayControls:Boolean = false;
+		
+		[Inspectable(category="General", defaultValue="false")]
+		/**
+		 *  By default, the TabBar and ActionBar controls of a 
+		 *  mobile application define an area that cannot be used 
+		 *  by the views of an application. 
+		 *  That means your content cannot use the full screen size 
+		 *  of the mobile device.
+		 *  If you set this property to <code>true</code>, the content area 
+		 *  of the application spans the entire width and height of the screen. 
+		 *  The ActionBar and TabBar controls hover over the content area with 
+		 *  an <code>alpha</code> value of 0.5 so that they are partially transparent. 
+		 *  
+		 *  @default false
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get overlayControls():Boolean
+		{
+			return _overlayControls;
+		}
+		
+		/**
+		 *  @private
+		 */
+		public function set overlayControls(value:Boolean):void
+		{
+			if (_overlayControls != value)
+			{
+				var oldValue:Boolean = _overlayControls;
+				_overlayControls = value;
+				
+				if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+				{
+					var changeEvent:PropertyChangeEvent = 
+						PropertyChangeEvent.createUpdateEvent(this, "overlayControls", oldValue, _overlayControls);
+					
+					dispatchEvent(changeEvent);
+				}
+			}
+		}
+		
+		//----------------------------------
+		//  actionContent
+		//----------------------------------
+		
+		private var _actionContent:Array;
+		
+		[ArrayElementType("mx.core.IVisualElement")]
+		/**
+		 *  This property overrides the <code>actionContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#actionContent
+		 *
+		 *  @default null
+		 *
+		 *  @see ActionBar#actionContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get actionContent():Array
+		{
+			return _actionContent;
+		}
+		/**
+		 *  @private
+		 */
+		public function set actionContent(value:Array):void
+		{
+			var oldValue:Array = _actionContent;
+			_actionContent = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "actionContent", oldValue, _actionContent);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		//----------------------------------
+		//  actionLayout
+		//----------------------------------
+		
+		private var _actionLayout:LayoutBase;
+		
+		/**
+		 *  @copy ActionBar#actionLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get actionLayout():LayoutBase
+		{
+			return _actionLayout;
+		}
+		/**
+		 *  @private
+		 */
+		public function set actionLayout(value:LayoutBase):void
+		{
+			var oldValue:LayoutBase = value;
+			_actionLayout = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "actionLayout", oldValue, _actionLayout);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		//----------------------------------
+		//  navigationContent
+		//----------------------------------
+		
+		private var _navigationContent:Array;
+		
+		[ArrayElementType("mx.core.IVisualElement")]
+		/**
+		 *  This property overrides the <code>navigationContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#navigationContent
+		 *
+		 *  @default null
+		 * 
+		 *  @see ActionBar#navigationContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get navigationContent():Array
+		{
+			return _navigationContent;
+		}
+		/**
+		 *  @private
+		 */
+		public function set navigationContent(value:Array):void
+		{
+			var oldValue:Array = _navigationContent;
+			_navigationContent = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "navigationContent", oldValue, _navigationContent);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		//----------------------------------
+		//  navigationLayout
+		//----------------------------------
+		
+		private var _navigationLayout:LayoutBase;
+		
+		/**
+		 *  @copy ActionBar#navigationLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get navigationLayout():LayoutBase
+		{
+			return _navigationLayout;
+		}
+		/**
+		 *  @private
+		 */
+		public function set navigationLayout(value:LayoutBase):void
+		{
+			var oldValue:LayoutBase = _navigationLayout;
+			_navigationLayout = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "navigationLayout", _navigationLayout, value);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		//----------------------------------
+		//  title
+		//----------------------------------
+		
+		private var _title:String;
+		
+		[Bindable]
+		/**
+		 *  This property overrides the <code>title</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#title
+		 *
+		 *  @default ""
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */ 
+		public function get title():String
+		{
+			return _title;
+		}
+		/**
+		 *  @private
+		 */ 
+		public function set title(value:String):void
+		{
+			if (_title != value)
+			{
+				var oldValue:String = _title;            
+				_title = value;
+				
+				if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+				{
+					var changeEvent:PropertyChangeEvent = 
+						PropertyChangeEvent.createUpdateEvent(this, "title", oldValue, _title);
+					
+					dispatchEvent(changeEvent);
+				}
+			}
+		}
+		
+		//----------------------------------
+		//  titleContent
+		//----------------------------------
+		
+		private var _titleContent:Array;
+		
+		[ArrayElementType("mx.core.IVisualElement")]
+		/**
+		 *  This property overrides the <code>titleContent</code>
+		 *  property in the ActionBar, ViewNavigator, and 
+		 *  ViewNavigatorApplication components.
+		 * 
+		 *  @copy ActionBar#titleContent
+		 *
+		 *  @default null
+		 * 
+		 *  @see ActionBar#titleContent
+		 *  @see spark.skins.mobile.ActionBarSkin
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get titleContent():Array
+		{
+			return _titleContent;
+		}
+		/**
+		 *  @private
+		 */
+		public function set titleContent(value:Array):void
+		{
+			var oldValue:Array = _titleContent;
+			_titleContent = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "titleContent", oldValue, _titleContent);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		//----------------------------------
+		//  titleLayout
+		//----------------------------------
+		
+		private var _titleLayout:LayoutBase;
+		
+		/**
+		 *  @copy ActionBar#titleLayout
+		 *
+		 *  @default null
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function get titleLayout():LayoutBase
+		{
+			return _titleLayout;
+		}
+		/**
+		 *  @private
+		 */
+		public function set titleLayout(value:LayoutBase):void
+		{
+			var oldValue:LayoutBase = _titleLayout;
+			_titleLayout = value;
+			
+			if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				var changeEvent:PropertyChangeEvent = 
+					PropertyChangeEvent.createUpdateEvent(this, "titleLayout", oldValue, _titleLayout);
+				
+				dispatchEvent(changeEvent);
+			}
+		}
+		
+		public function backKeyHandledByView():Boolean
+		{
+			if (hasEventListener(FlexEvent.BACK_KEY_PRESSED))
+			{
+				var event:FlexEvent = new FlexEvent(FlexEvent.BACK_KEY_PRESSED, false, true);
+				var eventCanceled:Boolean = !dispatchEvent(event);
+				
+				// If the event was canceled, that means the application
+				// is doing its own custom logic for the back key
+				return eventCanceled;
+			}
+			
+			return false;
+		}
+		
+		public function canRemove():Boolean
+		{
+			if (hasEventListener(ViewNavigatorEvent.REMOVING))
+			{
+				var event:ViewNavigatorEvent = 
+					new ViewNavigatorEvent(ViewNavigatorEvent.REMOVING, 
+						false, true, navigator.lastAction);
+				
+				return dispatchEvent(event);
+			}
+			
+			return true;
+		}
+		
+//		//----------------------------------
+//		//  actionBarVisible
+//		//----------------------------------
+//		private var _actionBarVisible:Boolean = true;
+//		
+//		[Inspectable(category="General", defaultValue="true")]
+//		/**
+//		 *  Specifies whether a view should show the action bar or not.
+//		 *  This property does not necessarily correlate to the 
+//		 *  <code>visible</code> property of the view navigator's ActionBar control. 
+//		 *
+//		 *  @default true
+//		 * 
+//		 *  @langversion 3.0
+//		 *  @playerversion AIR 2.5
+//		 *  @productversion Flex 4.5
+//		 */
+//		public function get actionBarVisible():Boolean
+//		{
+//			return _actionBarVisible;
+//		}
+//		
+//		/**
+//		 *  @private
+//		 */ 
+//		public function set actionBarVisible(value:Boolean):void
+//		{
+//			_actionBarVisible = value;
+//			
+//			// Immediately request actionBar's visibility be toggled
+//			if (isActive && navigator)
+//			{
+//				if (_actionBarVisible)
+//					navigator.showActionBar();
+//				else
+//					navigator.hideActionBar();
+//			}
+//		}
+		
+		public function setActionBarVisible(value:Boolean):void
+		{
+			_actionBarVisible = value;
+		}
+		
+		private var _active:Boolean = false;
+		
+		public function get isActive():Boolean
+		{
+			return _active;
+		}
+		
+		public function setActive(value:Boolean):void
+		{
+			if (_active != value)
+			{
+				_active = value;
+				
+				// Switch orientation states if needed
+				if (_active)
+					updateOrientationState();
+				
+				var eventName:String = _active ? 
+					ViewNavigatorEvent.VIEW_ACTIVATE : 
+					ViewNavigatorEvent.VIEW_DEACTIVATE;
+				
+				if (hasEventListener(eventName))
+					dispatchEvent(new ViewNavigatorEvent(eventName, false, false, navigator.lastAction));
+			}
+		}
+		
+		/**
+		 *  @private
+		 */
+		mx_internal function updateOrientationState():void
+		{
+			setCurrentState(getCurrentViewState(), false);
+		}
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function deserializeData(value:Object):Object
+		{
+			return value;
+		}
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function setNavigator(value:ViewNavigator):void
+		{
+			_navigator = value;
+			
+			if (hasEventListener("navigatorChanged"))
+				dispatchEvent(new Event("navigatorChanged"));
+		}
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function createReturnObject():Object
+		{
+			return null;
+		}
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function serializeData():Object
+		{
+			return data;    
+		}
+		
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function getCurrentViewState():String
+		{
+			var aspectRatio:String = FlexGlobals.topLevelApplication.aspectRatio;
+			
+			if (hasState(aspectRatio))
+				return aspectRatio;
+			
+			// If the appropriate state for the orientation of the device
+			// isn't defined, return the current state
+			return currentState;
+		}
+		
+		//----------------------------------
+		//  data
+		//----------------------------------
+		
+		private var _data:Object;
+		
+		[Bindable("dataChange")]
+		
+		/**
+		 *  @inheritDoc
+		 */
+		public function get data():Object
+		{
+			return _data;
+		}
+		
+		/**
+		 *  @private
+		 */ 
+		public function set data(value:Object):void
+		{
+			_data = value;
+			
+			if (hasEventListener(FlexEvent.DATA_CHANGE))
+				dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+		}
+	}
+}
\ No newline at end of file



Mime
View raw message