You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by bi...@apache.org on 2014/02/26 01:31:11 UTC

[2/2] git commit: [flex-asjs] [refs/heads/develop] - Update SVG based button in the FlexJS - JS framework Created simple example project for SVG based components

Update SVG based button in the FlexJS - JS framework
Created simple example project for SVG based components


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b4bfea26
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b4bfea26
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b4bfea26

Branch: refs/heads/develop
Commit: b4bfea26f582aece0bc61cc0240ce6726f06e4ea
Parents: 75e7b34
Author: Om <bi...@gmail.com>
Authored: Tue Feb 25 16:25:59 2014 -0800
Committer: Om <bi...@gmail.com>
Committed: Tue Feb 25 16:25:59 2014 -0800

----------------------------------------------------------------------
 examples/FlexJSTest_SVG/build.xml               |  2 +-
 examples/FlexJSTest_SVG/src/FlexJSTest_SVG.mxml | 39 ++++++++++
 .../FlexJSTest_SVG/src/FlexJSTest_again.mxml    | 51 -------------
 examples/FlexJSTest_SVG/src/MyInitialView.mxml  | 76 ++------------------
 .../src/StockDataJSONItemConverter.as           | 36 ----------
 .../src/controllers/MyController.as             | 50 ++-----------
 examples/FlexJSTest_SVG/src/models/MyModel.as   | 12 ----
 .../as/projects/FlexJSUI/compile-config.xml     |  5 ++
 frameworks/as/projects/FlexJSUI/defaults.css    | 10 +++
 frameworks/flex-config.xml                      |  6 ++
 .../flex/svg/staticControls/TextButton.js       | 22 +++---
 11 files changed, 80 insertions(+), 229 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/build.xml
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/build.xml b/examples/FlexJSTest_SVG/build.xml
index 4b9131a..3ab90ca 100644
--- a/examples/FlexJSTest_SVG/build.xml
+++ b/examples/FlexJSTest_SVG/build.xml
@@ -21,7 +21,7 @@
 
 <project name="flexjstest_SVG" default="main" basedir=".">
     <property name="FLEXJS_HOME" location="../.."/>
-    <property name="example" value="FlexJSTest_again" />
+    <property name="example" value="FlexJSTest_SVG" />
     
     <property file="${FLEXJS_HOME}/env.properties"/>
     <property environment="env"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/FlexJSTest_SVG.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/FlexJSTest_SVG.mxml b/examples/FlexJSTest_SVG/src/FlexJSTest_SVG.mxml
new file mode 100644
index 0000000..21961f9
--- /dev/null
+++ b/examples/FlexJSTest_SVG/src/FlexJSTest_SVG.mxml
@@ -0,0 +1,39 @@
+<?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.
+
+-->
+<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+				   xmlns:local="*"
+				   xmlns:basic="library://ns.apache.org/flexjs/basic" 
+				   xmlns:models="models.*" 
+				   xmlns:controllers="controllers.*"
+				   initialize="MyModel(model).labelText='Hello SVG'"
+				   >
+	<basic:valuesImpl>
+		<basic:SimpleCSSValuesImpl />
+	</basic:valuesImpl>
+	<basic:initialView>
+		<local:MyInitialView />
+	</basic:initialView>
+	<basic:model>
+		<models:MyModel />
+	</basic:model>
+	<basic:controller>
+		<controllers:MyController />
+	</basic:controller>
+</basic:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/FlexJSTest_again.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/FlexJSTest_again.mxml b/examples/FlexJSTest_SVG/src/FlexJSTest_again.mxml
deleted file mode 100644
index b86b828..0000000
--- a/examples/FlexJSTest_SVG/src/FlexJSTest_again.mxml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?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.
-
--->
-<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-				   xmlns:local="*"
-				   xmlns:basic="library://ns.apache.org/flexjs/basic" 
-				   xmlns:models="models.*" 
-				   xmlns:controllers="controllers.*"
-				   initialize="MyModel(model).labelText='Hello HTML5'"
-				   >
-	<basic:valuesImpl>
-		<basic:SimpleCSSValuesImpl />
-	</basic:valuesImpl>
-	<basic:initialView>
-		<local:MyInitialView />
-	</basic:initialView>
-	<basic:model>
-		<models:MyModel />
-	</basic:model>
-	<basic:controller>
-		<controllers:MyController />
-	</basic:controller>
-    <basic:beads>
-        <basic:HTTPService id="service">
-            <basic:LazyCollection id="collection">
-                <basic:inputParser>
-                    <basic:JSONInputParser />
-                </basic:inputParser>
-                <basic:itemConverter>
-                    <local:StockDataJSONItemConverter />
-                </basic:itemConverter> 
-            </basic:LazyCollection>
-        </basic:HTTPService>
-    </basic:beads>
-</basic:Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/MyInitialView.mxml b/examples/FlexJSTest_SVG/src/MyInitialView.mxml
index ac0d891..074af5e 100644
--- a/examples/FlexJSTest_SVG/src/MyInitialView.mxml
+++ b/examples/FlexJSTest_SVG/src/MyInitialView.mxml
@@ -19,36 +19,16 @@ limitations under the License.
 -->
 <basic:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
 				xmlns:basic="library://ns.apache.org/flexjs/basic"
-				xmlns:html5="library://ns.apache.org/flexjs/html5" 
+				xmlns:html5="library://ns.apache.org/flexjs/html5"
+				xmlns:svg="library://ns.apache.org/flexjs/svg"				
 			   >
     <fx:Script>
         <![CDATA[            
-			import org.apache.flex.events.CustomEvent;
 			import org.apache.flex.events.Event;
 			import org.apache.flex.utils.Timer;
 			
 			private var timer:org.apache.flex.utils.Timer;
 			
-            public function get symbol():String
-            {
-                return list.selectedItem as String;
-            }
-			
-			public function get city():String
-			{
-				return cityList.selectedItem as String;
-			}
-            
-            public function get inputText():String
-            {
-            	return input.text;
-            }
-			
-			public function get comboBoxValue():String
-			{
-				return String(comboBox.selectedItem);
-			}
-			
 			public function startTimer():void
 			{
 				timer = new org.apache.flex.utils.Timer(1000);
@@ -73,54 +53,6 @@ limitations under the License.
 	<html5:TextButton text="Start Timer" x="100" y="75" click="startTimer()" />
 	<html5:TextButton text="Stop Timer" x="100" y="100" click="timer.removeEventListener('timer', timerHandler);timer.stop()" />
 	<html5:Label id="timerLabel" x="100" y="125" />
-	
-	<html5:List id="cityList"  x="200" y="75" width="100" height="75" change="dispatchEvent(new CustomEvent('cityListChanged'))">
-		<html5:beads>
-			<basic:ConstantBinding
-				sourceID="applicationModel"
-				sourcePropertyName="cities"
-				destinationPropertyName="dataProvider" />
-		</html5:beads>
-	</html5:List>
-    
-    <html5:TextArea x="320" y="25" width="150" height="75">
-		<html5:beads>
-			<basic:SimpleBinding eventName="labelTextChanged"
-								 sourceID="applicationModel"
-								 sourcePropertyName="labelText"
-								 destinationPropertyName="text" />
-		</html5:beads>
-    </html5:TextArea>
-    <html5:TextInput id="input" x="320" y="110" />
-    <html5:TextButton text="Transfer" x="320" y="138" click="dispatchEvent(new CustomEvent('transferClicked'))" />
-    
-    <html5:CheckBox id="checkbox" x="320" y="170" text="Check Me" />
-    
-    <html5:RadioButton groupName="group1" text="Apples" value="0" x="100" y="150" />
-    <html5:RadioButton groupName="group1" text="Oranges" value="1" x="100" y="170" selected="true" />
-    <html5:RadioButton groupName="group1" text="Grapes" value="2" x="100" y="190" />
-    
-    <html5:RadioButton groupName="group2" text="Red" value="red" x="100" y="250" selected="true" />
-    <html5:RadioButton groupName="group2" text="Green" value="green" x="100" y="270" />
-    <html5:RadioButton groupName="group2" text="Blue" value="blue" x="100" y="290"  />
-	
-	<html5:DropDownList id="list" x="200" y="200" width="100" height="24" change="dispatchEvent(new CustomEvent('listChanged'))">
-		<html5:beads>
-			<basic:ConstantBinding
-				sourceID="applicationModel"
-				sourcePropertyName="strings"
-				destinationPropertyName="dataProvider" />
-		</html5:beads>
-	</html5:DropDownList>
-	<html5:TextButton text="OK" x="200" y="230" click="dispatchEvent(new CustomEvent('buttonClicked'))" />
-	
-	<html5:ComboBox id="comboBox" x="320" y="200" width="100" change="dispatchEvent(new CustomEvent('comboBoxChanged'))">
-		<html5:beads>
-			<basic:ConstantBinding
-				sourceID="applicationModel"
-				sourcePropertyName="cities"
-				destinationPropertyName="dataProvider" />
-		</html5:beads>
-	</html5:ComboBox>
-    
+
+	<svg:TextButton text="SVG Button" x="100" y="175" width="100" height="30" click="startTimer()" />
 </basic:ViewBase>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/StockDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/StockDataJSONItemConverter.as b/examples/FlexJSTest_SVG/src/StockDataJSONItemConverter.as
deleted file mode 100644
index a030fe0..0000000
--- a/examples/FlexJSTest_SVG/src/StockDataJSONItemConverter.as
+++ /dev/null
@@ -1,36 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package
-{
-    import org.apache.flex.net.JSONItemConverter;
-    
-    public class StockDataJSONItemConverter extends JSONItemConverter
-    {
-        public function StockDataJSONItemConverter()
-        {
-            super();
-        }
-        
-        override public function convertItem(data:String):Object
-        {
-            var obj:Object = super.convertItem(data);
-            return obj.query.results.quote.Ask;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/controllers/MyController.as
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/controllers/MyController.as b/examples/FlexJSTest_SVG/src/controllers/MyController.as
index 8120572..bacd10d 100644
--- a/examples/FlexJSTest_SVG/src/controllers/MyController.as
+++ b/examples/FlexJSTest_SVG/src/controllers/MyController.as
@@ -18,12 +18,11 @@
 ////////////////////////////////////////////////////////////////////////////////
 package controllers
 {
+	import models.MyModel;
+	
 	import org.apache.flex.core.Application;
 	import org.apache.flex.core.IDocument;
 	import org.apache.flex.events.Event;
-	
-    
-    import models.MyModel;
     	
 	public class MyController implements IDocument
 	{
@@ -31,60 +30,21 @@ package controllers
 		{
 			if (app)
 			{
-				this.app = app as FlexJSTest_again;
+				this.app = app as FlexJSTest_SVG;
 				app.addEventListener("viewChanged", viewChangeHandler);
 			}
 		}
 		
-        private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22";
-        private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json";
-		private var app:FlexJSTest_again;
+		private var app:FlexJSTest_SVG;
 		
 		private function viewChangeHandler(event:Event):void
 		{
-			app.initialView.addEventListener("buttonClicked", buttonClickHandler);
-            app.initialView.addEventListener("listChanged", listChangedHandler);
-			app.initialView.addEventListener("cityListChanged", cityListChangeHandler);
-            app.initialView.addEventListener("transferClicked", transferClickHandler);
-			app.initialView.addEventListener("comboBoxChanged", comboBoxChangeHandler);
 		}
 		
-        private function buttonClickHandler(event:Event):void
-        {
-            var sym:String = MyInitialView(app.initialView).symbol;
-            app.service.url = queryBegin + sym + queryEnd;
-            app.service.send();
-            app.service.addEventListener("complete", completeHandler);
-        }
-        
-        private function completeHandler(event:Event):void
-        {
-            MyModel(app.model).labelText = app.collection.getItemAt(0) as String;
-        }
-        
-        private function listChangedHandler(event:Event):void
-        {
-            MyModel(app.model).labelText = MyInitialView(app.initialView).symbol;
-        }
-		
-		private function cityListChangeHandler(event:Event):void
-		{
-			MyModel(app.model).labelText = MyInitialView(app.initialView).city;
-		}
-        
-        private function transferClickHandler(event:Event):void
-        {
-        	MyModel(app.model).labelText = MyInitialView(app.initialView).inputText;
-        }
-		
-		private function comboBoxChangeHandler(event:Event):void
-		{
-			MyModel(app.model).labelText = MyInitialView(app.initialView).comboBoxValue;
-		}
         
 		public function setDocument(document:Object, id:String = null):void
 		{
-			this.app = document as FlexJSTest_again;
+			this.app = document as FlexJSTest_SVG;
 			app.addEventListener("viewChanged", viewChangeHandler);
 		}
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/examples/FlexJSTest_SVG/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_SVG/src/models/MyModel.as b/examples/FlexJSTest_SVG/src/models/MyModel.as
index 1dc23e6..eeb5af3 100644
--- a/examples/FlexJSTest_SVG/src/models/MyModel.as
+++ b/examples/FlexJSTest_SVG/src/models/MyModel.as
@@ -42,18 +42,6 @@ package models
 				dispatchEvent(new Event("labelTextChanged"));
 			}
 		}
-        
-        private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"];
-        public function get strings():Array
-        {
-            return _strings;
-        }
-		
-		private var _cities:Array = ["London", "Miami", "Paris", "Sydney", "Tokyo"];
-		public function get cities():Array
-		{
-			return _cities;
-		}
 
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/frameworks/as/projects/FlexJSUI/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/compile-config.xml b/frameworks/as/projects/FlexJSUI/compile-config.xml
index aa41d8e..a72ad58 100644
--- a/frameworks/as/projects/FlexJSUI/compile-config.xml
+++ b/frameworks/as/projects/FlexJSUI/compile-config.xml
@@ -50,6 +50,10 @@
                 <uri>library://ns.apache.org/flexjs/createjs</uri>
                 <manifest>createjs-manifest.xml</manifest>
             </namespace>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/svg</uri>
+                <manifest>svg-manifest.xml</manifest>
+            </namespace>			
         </namespaces>
         
         <source-path>
@@ -74,6 +78,7 @@
         <uri>library://ns.apache.org/flexjs/html5</uri>
         <uri>library://ns.apache.org/flexjs/jquery</uri>
         <uri>library://ns.apache.org/flexjs/createjs</uri>
+		<uri>library://ns.apache.org/flexjs/svg</uri>
     </include-namespaces>  
         
     <target-player>${playerglobal.version}</target-player>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/frameworks/as/projects/FlexJSUI/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/defaults.css b/frameworks/as/projects/FlexJSUI/defaults.css
index 3db56a2..7a4d2f8 100644
--- a/frameworks/as/projects/FlexJSUI/defaults.css
+++ b/frameworks/as/projects/FlexJSUI/defaults.css
@@ -21,6 +21,7 @@
 @namespace h5 "library://ns.apache.org/flexjs/html5";
 @namespace jq "library://ns.apache.org/flexjs/jquery";
 @namespace createjs "library://ns.apache.org/flexjs/createjs";
+@namespace svg "library://ns.apache.org/flexjs/svg";
 
 /* Global style declaration */
 *
@@ -388,4 +389,13 @@ createjs|CheckBox
     IBeadView: ClassReference("org.apache.flex.html.staticControls.beads.CheckBoxView");
 }
 
+/* SVG */
+
+svg|TextButton
+{
+    IBeadModel: ClassReference("org.apache.flex.html.staticControls.beads.models.TextModel");
+    IBeadView: ClassReference("org.apache.flex.html.staticControls.beads.CSSTextButtonView");
+    iMeasurementBead: ClassReference("org.apache.flex.html.staticControls.beads.TextButtonMeasurementBead");
+}
+
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/frameworks/flex-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/flex-config.xml b/frameworks/flex-config.xml
index 40e92a4..1cbe66b 100644
--- a/frameworks/flex-config.xml
+++ b/frameworks/flex-config.xml
@@ -96,6 +96,12 @@
             
             <manifest>as/projects/FlexJSUI/html5-manifest.xml</manifest>
          
+        </namespace>
+		<namespace>
+            <uri>library://ns.apache.org/flexjs/svg</uri>
+            
+            <manifest>as/projects/FlexJSUI/svg-manifest.xml</manifest>
+         
         </namespace>   
       </namespaces>
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4bfea26/frameworks/js/FlexJS/src/org/apache/flex/svg/staticControls/TextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/svg/staticControls/TextButton.js b/frameworks/js/FlexJS/src/org/apache/flex/svg/staticControls/TextButton.js
index fbd4d34..507cd17 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/svg/staticControls/TextButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/svg/staticControls/TextButton.js
@@ -23,26 +23,23 @@ goog.require('org.apache.flex.core.UIBase');
  * @extends {org.apache.flex.core.UIBase}
  */
 org.apache.flex.svg.staticControls.TextButton = function() {
-  org.apache.flex.core.UIBase.call(this);
+  goog.base(this);
 };
-goog.inherits(
-    org.apache.flex.svg.staticControls.TextButton, org.apache.flex.core.UIBase
-);
+goog.inherits(org.apache.flex.svg.staticControls.TextButton,
+    org.apache.flex.core.UIBase);
 
 
 /**
  * @override
- * @param {Object} p The parent element.
  */
-org.apache.flex.svg.staticControls.TextButton.prototype.addToParent =
-    function(p) {
+org.apache.flex.svg.staticControls.TextButton.prototype.createElement =
+    function() {
   this.element = document.createElement('embed');
-  this.element.setAttribute('src', 'skins/TextButtonSkin.svg');
-  this.element.setAttribute('type', 'button');
-
-  p.appendChild(this.element);
+  this.element.setAttribute('src', 'org/apache/flex/svg/staticControls/skins/TextButtonSkin.svg');
 
   this.positioner = this.element;
+
+  return this.element;
 };
 
 
@@ -50,7 +47,8 @@ org.apache.flex.svg.staticControls.TextButton.prototype.addToParent =
  * @expose
  * @return {string} The text getter.
  */
-org.apache.flex.svg.staticControls.TextButton.prototype.get_text = function() {
+org.apache.flex.svg.staticControls.TextButton.prototype.get_text =
+    function() {
   return this.element.getAttribute('label');
 };