flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bigosma...@apache.org
Subject [1/2] Adding the new Tour de Flex Mobile app contributed by George Yabra JIRA Ticket: https://issues.apache.org/jira/browse/FLEX-33839
Date Thu, 07 Nov 2013 01:06:07 GMT
Updated Branches:
  refs/heads/develop a75f536fa -> 351fb18f0


http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml b/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
new file mode 100644
index 0000000..47d1804
--- /dev/null
+++ b/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
@@ -0,0 +1,70 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="RadioButton">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.skins.mobile.TextAreaSkin;
+			protected function radiobuttonHandler(event:Event):void
+			{
+				label.text = event.target.label + " Selected.";
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')"
source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')"
source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
+
+		<s:RadioButtonGroup id="radiogroup1"/>
+	</fx:Declarations>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+
+	<s:VGroup includeIn="DemoState" horizontalCenter="0" y="20">
+		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 1" groupName="radiogroup1"/>
+		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 2" groupName="radiogroup1"/>
+		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 3" groupName="radiogroup1"/>
+	</s:VGroup>
+	
+	<s:Label id="label" horizontalCenter="0" textAlign="center" bottom="20"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10"
right="10" top="10" bottom="10" editable="false" text="The RadioButton component allows the
user make a single choice within a set of mutually exclusive choices. A RadioButtonGroup is
composed of two or more RadioButton components with the same groupName property. While grouping
RadioButton instances in a RadioButtonGroup is optional, a group lets you do things like set
a single event handler on a group of RadioButtons, rather than on each individual RadioButton.
+				&#xd;&#xd;The RadioButton group can refer to the a group created by the RadioButtonGroup
tag. The user selects only one member of the group at a time. Selecting an unselected group
member deselects the currently selected RadioButton component within that group.
+																		  
+				&#xd;&#xd; To use this component in a list-based component, such as a List or
DataGrid, create an item renderer. For information about creating an item renderer, see Custom
Spark item renderers."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/SpinnerListView.mxml b/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
new file mode 100644
index 0000000..c94f59b
--- /dev/null
+++ b/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
@@ -0,0 +1,116 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="SpinnerList">
+	<fx:Script>
+		<![CDATA[
+			import spark.events.IndexChangeEvent;
+			import spark.skins.mobile.TextAreaSkin;
+			
+			protected function spinnerListHandler(event:IndexChangeEvent):void
+			{
+				label.text = spinnerList1.selectedItem.label + " " + spinnerList2.selectedItem.label;
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')"
source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')"
source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+	
+	<s:SpinnerListContainer includeIn="DemoState" width="100%">
+		<s:SpinnerList id="spinnerList1" change="spinnerListHandler(event)" width="50%" height="150">
+			<s:ArrayCollection>
+				<fx:Object label="Item A 1"/>
+				<fx:Object label="Item A 2"/>
+				<fx:Object label="Item A 3"/>
+				<fx:Object label="Item A 4"/>
+				<fx:Object label="Item A 5"/>
+				<fx:Object label="Item A 6"/>
+				<fx:Object label="Item A 7"/>
+				<fx:Object label="Item A 8"/>
+				<fx:Object label="Item A 9"/>
+				<fx:Object label="Item A 10"/>
+				<fx:Object label="Item A 11"/>
+				<fx:Object label="Item A 12"/>
+				<fx:Object label="Item A 13"/>
+				<fx:Object label="Item A 14"/>
+				<fx:Object label="Item A 15"/>
+				<fx:Object label="Item A 16"/>
+				<fx:Object label="Item A 17"/>
+				<fx:Object label="Item A 18"/>
+				<fx:Object label="Item A 19"/>
+				<fx:Object label="Item A 20"/>
+			</s:ArrayCollection>
+		</s:SpinnerList>
+		
+		<s:SpinnerList id="spinnerList2" change="spinnerListHandler(event)" width="50%" height="150">
+			<s:ArrayCollection>
+				<fx:Object label="Item B 1"/>
+				<fx:Object label="Item B 2"/>
+				<fx:Object label="Item B 3"/>
+				<fx:Object label="Item B 4"/>
+				<fx:Object label="Item B 5"/>
+				<fx:Object label="Item B 6"/>
+				<fx:Object label="Item B 7"/>
+				<fx:Object label="Item B 8"/>
+				<fx:Object label="Item B 9"/>
+				<fx:Object label="Item B 10"/>
+				<fx:Object label="Item B 11"/>
+				<fx:Object label="Item B 12"/>
+				<fx:Object label="Item B 13"/>
+				<fx:Object label="Item B 14"/>
+				<fx:Object label="Item B 15"/>
+				<fx:Object label="Item B 16"/>
+				<fx:Object label="Item B 17"/>
+				<fx:Object label="Item B 18"/>
+				<fx:Object label="Item B 19"/>
+				<fx:Object label="Item B 20"/>
+			</s:ArrayCollection>
+		</s:SpinnerList>
+	</s:SpinnerListContainer>
+	
+	
+	<s:Label id="label" horizontalCenter="0" textAlign="center" bottom="20"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10"
right="10" top="10" bottom="10" editable="false" text="The SpinnerList component displays
a list of items. The item in the center of the list is always the selectedItem. By default,
the list wraps around.
+				&#xd;&#xd;You can have multiple SpinnerList controls arranged horizontally within
a single border by wrapping then in a SpinnerListContainer."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/UIViews/TextInputView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/TextInputView.mxml b/tourdeflexmobile/src/UIViews/TextInputView.mxml
new file mode 100644
index 0000000..8a765c8
--- /dev/null
+++ b/tourdeflexmobile/src/UIViews/TextInputView.mxml
@@ -0,0 +1,87 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="TextInput">
+	<fx:Script>
+		<![CDATA[
+			import mx.events.FlexEvent;
+			
+			import spark.skins.mobile.TextAreaSkin;
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+			private function submitText():void
+			{
+				label.text = textInput.text;
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')"
source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')"
source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+	
+	<s:TextInput includeIn="DemoState" id="textInput" skinClass="spark.skins.mobile.TextInputSkin"
prompt="Type Here and Tap Enter" left="5" right="5" top="5" height="40" enter="submitText()"
/>
+	
+	<s:Label includeIn="DemoState" id="label" horizontalCenter="0" y="60" textAlign="center"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10"
right="10" top="10" bottom="10" editable="false" text="TextInput is a text-entry control that
lets users enter and edit a single line of uniformly-formatted text.
+				&#xd; &#xd;The TextInput skin for the Spark theme uses the RichEditableText class.
This means that the Spark TextInput control supports the Text Layout Framework (TLF) library,
which builds on the Flash Text Engine (FTE). In combination, these layers provide text editing
with high-quality international typography and layout.
+				
+				&#xd; &#xd;The TextInput skin for the mobile theme uses the StyleableStageText
class instead of RichEditableText. Since StyleableStageText uses native text fields it allows
for better text entry and manipulation experiences on mobile devices however there are limitations
and differences that you should consider. The native text controls used by StageText apply
different paddings around text. In order to avoid vertical scrolling, the StageText-based
TextInput skin attempts to estimate this padding and compensate for that. Because of this
and other differences in how native text controls treat text, the default height of the TextInput
control using StageText-based skin will differ from its default height using the the TextField-based
TextInput skin.
+				
+				&#xd; &#xd;You can set the text to be displayed, or get the text that the user
has entered, using the text property. This property is a String, so if the user enter a numeric
value it will be reported, for example, as 123.45 rather than 123.45.
+				
+				&#xd; &#xd;The text is formatted using CSS styles such as fontFamily and fontSize.
+				
+				&#xd; &#xd;For the Spark theme you can specify the width of the control using
the widthInChars property which provides a convenient way to specify the width in a way that
scales with the font size or you can use the typicalText property. Note that if you use typicalText,
the widthInChars property is ignored. For all themes, you can also specify an explicit width
in pixels, a percent width, or use constraints such as left and right. You do not normally
do anything to specify the height; the control's default height is sufficient to display one
line of text.
+				
+				&#xd; &#xd;You can use the maxChars property to limit the number of character
that the user can enter, and the restrict to limit which characters the user can enter. To
use this control for password input, set the displayAsPassword property to true.
+				
+				&#xd; &#xd;For the mobile theme, the soft-keyboard-specific properties, autoCapitalize,
autoCorrect, returnKeyLabel and softKeyboardType properties specify keyboard hints. If a soft-keyboard
is present but does not support a feature represented by the hint, the hint is ignored. In
mobile environments with only hardware keyboards, these hints are ignored.
+				
+				&#xd; &#xd;This control dispatches a FlexEvent.ENTER event when the user pressed
the Enter key rather than inserting a line break, because this control does not support entering
multiple lines of text. By default, this control has explicit line breaks.
+				
+				&#xd; &#xd;	This control is a skinnable control whose default skin contains either
a RichEditableText instance for the Spark theme or a StyleableStageText instance for the Mobile
theme. It handles displaying and editing the text. (The skin also handles drawing the border
and background.) This RichEditableText or StyleableStageText instance can be accessed as the
textDisplay object. For the mobile theme, if you wish to use the TextField-based skin, rather
than the StageText-based skin, set the skinClass property to spark.skins.mobile.TextInputSkin.
+																																																																																								
																																										 
+				&#xd; &#xd; For the Spark theme, as a result of its RichEditableText using TLF,
the Spark TextInput control supports displaying left-to-right (LTR) text, such as French,
right-to-left (RTL) text, such as Arabic, and bidirectional text such as a French phrase inside
of an Arabic one. If the predominant text direction is right-to-left, set the direction style
to rtl. The textAlign style defaults to start, which makes the text left-aligned when direction
is ltr and right-aligned when direction is rtl. To get the opposite alignment, set textAlign
to end.
+																																																																																								
																																										 
+				&#xd; &#xd; Also as a result of using TLF, the Spark TextInput supports unlimited
undo/redo within one editing session. An editing session starts when the control gets keyboard
focus and ends when the control loses focus.
+																																																																																								
																																										 
+				&#xd; &#xd;To use this component in a list-based component, such as a List or
DataGrid, create an item renderer. For information about creating an item renderer, see Custom
Spark item renderers."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml b/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
new file mode 100644
index 0000000..5309a75
--- /dev/null
+++ b/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
@@ -0,0 +1,58 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="ToggleSwitch">
+	
+	<fx:Script>
+		<![CDATA[
+
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')"
source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')"
source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+	
+	<s:ToggleSwitch includeIn="DemoState" horizontalCenter="0" y="20" />
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10"
right="10" top="10" bottom="10" editable="false" text="The Spark ToggleSwitch control defines
a binary switch that can be in the selected or unselected position. The ToggleSwitch consists
of a thumb skin part that moves between the two ends of the track skin part, similar to the
Spark Slider control.
+				The ToggleSwitch control has two positions: selected and unselected. By default, the
label OFF corresponds to the unselected position and ON corresponds to the selected position.
+				&#xd; &#xd;Clicking anywhere in the control toggles the position. You can also
slide the thumb along the track to change position. When you release the thumb, it moves to
the position, selected or unselected, that is closest to the thumb location.
+				&#xd; &#xd;The ToggleSwitch control uses the following default values for the
unselected and selected labels: OFF (unselected) and ON (selected). Define a custom skin to
change the labels, or to change other visual characteristics of the control."/>
+				
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/160/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/about.png b/tourdeflexmobile/src/assets/icons/160/about.png
new file mode 100644
index 0000000..d7b7e69
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/160/about.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/160/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/add.png b/tourdeflexmobile/src/assets/icons/160/add.png
new file mode 100644
index 0000000..4d5d484
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/160/add.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/160/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/dock.png b/tourdeflexmobile/src/assets/icons/160/dock.png
new file mode 100644
index 0000000..aa0c320
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/160/dock.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/240/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/about.png b/tourdeflexmobile/src/assets/icons/240/about.png
new file mode 100644
index 0000000..6eaf08a
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/240/about.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/240/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/add.png b/tourdeflexmobile/src/assets/icons/240/add.png
new file mode 100644
index 0000000..ad8ada6
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/240/add.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/240/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/dock.png b/tourdeflexmobile/src/assets/icons/240/dock.png
new file mode 100644
index 0000000..37f3a93
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/240/dock.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/320/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/about.png b/tourdeflexmobile/src/assets/icons/320/about.png
new file mode 100644
index 0000000..4ee903f
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/320/about.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/320/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/add.png b/tourdeflexmobile/src/assets/icons/320/add.png
new file mode 100644
index 0000000..23b9a1c
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/320/add.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/icons/320/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/dock.png b/tourdeflexmobile/src/assets/icons/320/dock.png
new file mode 100644
index 0000000..a749474
Binary files /dev/null and b/tourdeflexmobile/src/assets/icons/320/dock.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/images/bg.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/bg.png b/tourdeflexmobile/src/assets/images/bg.png
new file mode 100644
index 0000000..e1613e5
Binary files /dev/null and b/tourdeflexmobile/src/assets/images/bg.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/images/box1.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box1.png b/tourdeflexmobile/src/assets/images/box1.png
new file mode 100644
index 0000000..8c12918
Binary files /dev/null and b/tourdeflexmobile/src/assets/images/box1.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/images/box2.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box2.png b/tourdeflexmobile/src/assets/images/box2.png
new file mode 100644
index 0000000..bb45969
Binary files /dev/null and b/tourdeflexmobile/src/assets/images/box2.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/images/box3.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box3.png b/tourdeflexmobile/src/assets/images/box3.png
new file mode 100644
index 0000000..b5682da
Binary files /dev/null and b/tourdeflexmobile/src/assets/images/box3.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/assets/images/logo.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/logo.png b/tourdeflexmobile/src/assets/images/logo.png
new file mode 100644
index 0000000..0278b81
Binary files /dev/null and b/tourdeflexmobile/src/assets/images/logo.png differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/renderers/MenuRenderer.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/renderers/MenuRenderer.mxml b/tourdeflexmobile/src/renderers/MenuRenderer.mxml
new file mode 100644
index 0000000..6b79d77
--- /dev/null
+++ b/tourdeflexmobile/src/renderers/MenuRenderer.mxml
@@ -0,0 +1,59 @@
+<?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:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:s="library://ns.adobe.com/flex/spark" 
+				height="40" width="100%" cacheAsBitmap="false">
+
+	<fx:Script>
+		<![CDATA[
+			
+			override public function set data(value:Object):void{
+				super.data = value;
+				
+				if(data){
+					
+					if(data.type == "view"){
+						autoDrawBackground = true;
+						currentState = "ViewState";		
+					} else if(data.type == "separator"){
+						autoDrawBackground = false;
+						opaqueBackground = 0x464646;
+						currentState = "SeparatorState";
+					} else {
+						autoDrawBackground = true;
+						currentState = "ViewState";	
+					}
+					
+					itemLabel.text = data.label;
+					
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="ViewState"/>
+		<s:State name="SeparatorState"/>
+	</s:states>
+	
+	<s:Label id="itemLabel"  color.SeparatorState="#888888" color.ViewState="#FFFFFF" x="10"
verticalCenter="0"/>
+	
+</s:ItemRenderer>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/styles.css
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/styles.css b/tourdeflexmobile/src/styles.css
new file mode 100644
index 0000000..3459839
--- /dev/null
+++ b/tourdeflexmobile/src/styles.css
@@ -0,0 +1,66 @@
+/*///////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////*/
+/* CSS file */
+@namespace s "library://ns.adobe.com/flex/spark";
+
+
+s|ActionBar
+{
+	chromeColor: #303030;
+}
+
+s|View
+{
+	backgroundColor: #464646;
+}
+
+s|Application
+{
+	backgroundColor: #464646;
+}
+
+s|List
+{
+	alternatingItemColors: #303030;
+	selectionColor: #000000;
+	downColor: #FA5B0F;
+	contentBackgroundColor: #464646;
+	color: #FFFFFF;
+}
+
+s|TextArea
+{
+	color: #FFFFFF;
+	contentBackgroundColor: #303030;
+}
+
+s|CheckBox
+{
+	color: #FFFFFF;	
+}
+
+s|RadioButton
+{
+	color: #FFFFFF;	
+}
+
+s|Label
+{
+	color: #FFFFFF;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/views/BlogView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/views/BlogView.mxml b/tourdeflexmobile/src/views/BlogView.mxml
new file mode 100644
index 0000000..6e9f5b3
--- /dev/null
+++ b/tourdeflexmobile/src/views/BlogView.mxml
@@ -0,0 +1,52 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="Apache Flex Blog" viewActivate="init(event)">
+	<fx:Script>
+		<![CDATA[
+			import mx.rpc.events.ResultEvent;
+			
+			import spark.components.supportClasses.StyleableTextField;
+			import spark.events.ViewNavigatorEvent;
+			
+			protected function init(event:ViewNavigatorEvent):void
+			{
+				newsService.send();
+			}
+			
+			protected function resultHandler(event:ResultEvent):void
+			{
+				for(var i:uint = 0; i<=event.result.channel.item.length()-1; i++){
+					StyleableTextField(textArea.textDisplay).htmlText += "<b>" + event.result.channel.item[i].title
+ "</b>" + "\n" + "<i>" + event.result.channel.item[i].pubDate + "</i>"
+ "\n\n" + event.result.channel.item[i].description + "\n\n";
+				}
+				
+				textArea.text += " ";
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<s:HTTPService id="newsService" url="https://blogs.apache.org/flex/feed/entries/rss"
resultFormat="e4x" result="resultHandler(event)"/>
+	</fx:Declarations>
+	
+	<s:TextArea id="textArea" selectable="false" editable="false" skinClass="spark.skins.mobile.TextAreaSkin"
left="5" right="5" top="5" bottom="5"/>
+	
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/351fb18f/tourdeflexmobile/src/views/HttpServiceView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/views/HttpServiceView.mxml b/tourdeflexmobile/src/views/HttpServiceView.mxml
new file mode 100644
index 0000000..373cd85
--- /dev/null
+++ b/tourdeflexmobile/src/views/HttpServiceView.mxml
@@ -0,0 +1,76 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="HTTPService">
+	<fx:Script>
+		<![CDATA[
+			import mx.collections.XMLListCollection;
+			import mx.rpc.events.ResultEvent;
+			
+			import spark.skins.mobile.TextAreaSkin;
+			
+			protected function loadRSS():void
+			{
+				if(textInput.text != ""){
+					rssService.url = textInput.text;
+					rssService.send();
+				}
+			}
+			
+			protected function rssResult(event:ResultEvent):void
+			{
+				itemsList.dataProvider = new XMLListCollection(new XMLList(event.result.channel.item));
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')"
source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')"
source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
+		<s:HTTPService id="rssService" resultFormat="e4x" result="rssResult(event)"/>
+	</fx:Declarations>
+	
+	<s:TextInput id="textInput" text="https://blogs.apache.org/flex/feed/entries/rss" prompt="Type
any RSS 2.0 valid URL" skinClass="spark.skins.mobile.TextInputSkin" includeIn="DemoState"
enter="loadRSS()" y="10" left="5" right="70" height="40"/>
+	<s:Button label="Load" y="10" includeIn="DemoState" width="60" height="40" right="5"
click="loadRSS()"/>
+	
+	<s:List id="itemsList" labelField="title" includeIn="DemoState" width="100%" bottom="0"
top="60"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10"
right="10" top="10" bottom="10" editable="false" text="You use the HTTPService tag to represent
an HTTPService object in an MXML file. When you call the HTTPService object's send() method,
it makes an HTTP request to the specified URL, and an HTTP response is returned. Optionally,
you can pass parameters to the specified URL. When you do not go through the server-based
proxy service, you can use only HTTP GET or POST methods. However, when you set the useProxy
property to true and you use the server-based proxy service, you can also use the HTTP HEAD,
OPTIONS, TRACE, and DELETE methods.
+				&#xd; &#xd;Note: Due to a software limitation, HTTPService does not generate
user-friendly error messages when using GET."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>


Mime
View raw message