You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by yi...@apache.org on 2016/10/13 07:40:16 UTC

[15/27] git commit: [flex-asjs] [refs/heads/refactor-sprite] - Fixed bug in DataChooserView which was causing problems on the SWF side due to missing/incomplete handling of background and border styles.

Fixed bug in DataChooserView which was causing problems on the SWF side due to missing/incomplete handling of background and border styles.


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

Branch: refs/heads/refactor-sprite
Commit: 5ee2995aec843972154490460a563473024084f6
Parents: 93797c2
Author: Peter Ent <pe...@apache.org>
Authored: Mon Oct 10 11:37:03 2016 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Oct 10 11:37:03 2016 -0400

----------------------------------------------------------------------
 .../apache/flex/html/beads/DateChooserView.as   | 61 ++++++++++++++++----
 1 file changed, 50 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ee2995a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
index 0af846a..96f5019 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
@@ -18,11 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
-	import org.apache.flex.html.beads.models.DateChooserModel;
-	import org.apache.flex.html.supportClasses.DateChooserButton;
-	import org.apache.flex.html.supportClasses.DateHeaderButton;
-
-    import org.apache.flex.core.BeadViewBase;
+	import org.apache.flex.core.BeadViewBase;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IBeadModel;
 	import org.apache.flex.core.IBeadView;
@@ -31,9 +27,12 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.ValuesManager;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.beads.layouts.TileLayout;
 	import org.apache.flex.html.Container;
 	import org.apache.flex.html.TextButton;
+	import org.apache.flex.html.beads.layouts.TileLayout;
+	import org.apache.flex.html.beads.models.DateChooserModel;
+	import org.apache.flex.html.supportClasses.DateChooserButton;
+	import org.apache.flex.html.supportClasses.DateHeaderButton;
 
 	/**
 	 * The DateChooserView class is a view bead for the DateChooser. This class
@@ -54,6 +53,8 @@ package org.apache.flex.html.beads
 		public function DateChooserView()
 		{
 		}
+		
+		private var _strand:IStrand;
 
 		/**
 		 *  @copy org.apache.flex.core.IBead#strand
@@ -66,11 +67,7 @@ package org.apache.flex.html.beads
 		override public function set strand(value:IStrand):void
 		{
 			super.strand = value;
-			
-			COMPILE::SWF {
-				value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBackgroundBead")) as IBead);
-				value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBorderBead")) as IBead);
-			}
+			_strand = value;
 
 			// make sure there is a model.
 			model = _strand.getBeadByType(IBeadModel) as DateChooserModel;
@@ -153,6 +150,10 @@ package org.apache.flex.html.beads
 			dayContainer.y = monthLabel.y + monthLabel.height + 5;
 			dayContainer.width = sw;
 			dayContainer.height = sh - (monthLabel.height+5);
+			
+			COMPILE::SWF {
+				displayBackgroundAndBorder(_strand as UIBase);
+			}
 
 			IEventDispatcher(_strand).dispatchEvent( new Event("layoutNeeded") );
 			IEventDispatcher(dayContainer).dispatchEvent( new Event("layoutNeeded") );
@@ -287,5 +288,43 @@ package org.apache.flex.html.beads
 		{
 			updateCalendar();
 		}
+		
+		COMPILE::SWF
+		/**
+		 * @private
+		 */
+		protected function displayBackgroundAndBorder(host:UIBase) : void
+		{
+			var backgroundColor:Object = ValuesManager.valuesImpl.getValue(host, "background-color");
+			var backgroundImage:Object = ValuesManager.valuesImpl.getValue(host, "background-image");
+			if (backgroundColor != null || backgroundImage != null)
+			{
+				if (host.getBeadByType(IBackgroundBead) == null)
+					var c:Class = ValuesManager.valuesImpl.getValue(host, "iBackgroundBead");
+				if (c) {
+					host.addBead( new c() as IBead );
+				}
+			}
+			
+			var borderStyle:String;
+			var borderStyles:Object = ValuesManager.valuesImpl.getValue(host, "border");
+			if (borderStyles is Array)
+			{
+				borderStyle = borderStyles[1];
+			}
+			if (borderStyle == null)
+			{
+				borderStyle = ValuesManager.valuesImpl.getValue(host, "border-style") as String;
+			}
+			if (borderStyle != null && borderStyle != "none")
+			{
+				if (host.getBeadByType(IBorderBead) == null) {
+					c = ValuesManager.valuesImpl.getValue(host, "iBorderBead");
+					if (c) {
+						host.addBead( new c() as IBead );
+					}
+				}
+			}
+		}
 	}
 }