You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2019/12/12 23:47:15 UTC

[royale-asjs] 14/42: jewel-buttonbar: add emphasis to colorize buttons in the bar

This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 2bb4e4641a0b7c8204d1c3a9919453c4c622724c
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Nov 28 20:03:46 2019 +0100

    jewel-buttonbar: add emphasis to colorize buttons in the bar
---
 .../src/main/royale/ButtonBarPlayGround.mxml       |  1 +
 .../royale/org/apache/royale/jewel/ButtonBar.as    | 35 ++++++++++++++++++++++
 .../royale/jewel/beads/views/ButtonBarView.as      | 10 ++++---
 .../jewel/itemRenderers/ButtonBarItemRenderer.as   | 22 +++++++++-----
 .../Jewel/src/main/sass/components/_buttonbar.sass |  1 +
 5 files changed, 58 insertions(+), 11 deletions(-)

diff --git a/examples/royale/TourDeJewel/src/main/royale/ButtonBarPlayGround.mxml b/examples/royale/TourDeJewel/src/main/royale/ButtonBarPlayGround.mxml
index 2a6047a..5349a5a 100644
--- a/examples/royale/TourDeJewel/src/main/royale/ButtonBarPlayGround.mxml
+++ b/examples/royale/TourDeJewel/src/main/royale/ButtonBarPlayGround.mxml
@@ -60,6 +60,7 @@ limitations under the License.
 				<html:H4 text="ButtonBar"/>
 
 				<j:ButtonBar localId="bb2" change="bb2_label.text = bb2.selectedItem as String"
+					emphasis="{ButtonBar.SECONDARY}"
 					dataProvider="{three_options}">
 					<!-- <js:dataProvider>
 						<fx:Array>
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
index 20bdbb7..9de3f06 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ButtonBar.as
@@ -46,6 +46,10 @@ package org.apache.royale.jewel
 	 */
 	public class ButtonBar extends List
 	{
+		public static const PRIMARY:String = "primary";
+        public static const SECONDARY:String = "secondary";
+        public static const EMPHASIZED:String = "emphasized";
+		
 		/**
 		 *  constructor.
 		 *
@@ -103,6 +107,37 @@ package org.apache.royale.jewel
 			ButtonBarModel(model).widthType = value;
 		}
 
+		private var _emphasis:String = "primary";
+        /**
+		 *  Applies emphasis color display. Possible constant values are: PRIMARY, SECONDARY, EMPHASIZED.
+         *  Colors are defined in royale jewel theme CSS.
+         * 
+         *  Left without value to get the default look (light or dark).
+         *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.6
+		 */
+        public function get emphasis():String
+        {
+            return _emphasis;
+        }
+        [Inspectable(category="General", enumeration="primary,secondary,emphasized")]
+        public function set emphasis(value:String):void
+        {
+            if (_emphasis != value)
+            {
+                if(_emphasis)
+                {
+					toggleClass(_emphasis, false);
+                }
+                _emphasis = value;
+
+                toggleClass(_emphasis, value);
+            }
+        }
+
         /**
          * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
          */
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ButtonBarView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ButtonBarView.as
index 1414f76..77bef33 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ButtonBarView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ButtonBarView.as
@@ -19,10 +19,11 @@
 package org.apache.royale.jewel.beads.views
 {
 	import org.apache.royale.core.IStrand;
+	import org.apache.royale.jewel.ButtonBar;
 
 	/**
-	 *  The ButtonBarView class creates the visual elements of the org.apache.royale.html.ButtonBar 
-	 *  component. A ButtonBar is a type of List and ButtonBarView extends the ListView bead, adding a border.
+	 *  The ButtonBarView class creates the visual elements of the org.apache.royale.jewel.ButtonBar 
+	 *  component. A ButtonBar is a type of List and ButtonBarView extends the ListView bead.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
@@ -43,7 +44,8 @@ package org.apache.royale.jewel.beads.views
 		{
 			super();
 		}
-				
+		
+		public var buttonBar:ButtonBar;
 		/**
 		 *  @copy org.apache.royale.core.IBead#strand
 		 *  
@@ -54,8 +56,8 @@ package org.apache.royale.jewel.beads.views
 		 */
 		override public function set strand(value:IStrand):void
 		{
-			_strand = value;
 			super.strand = value;
+			buttonBar = value as ButtonBar;
 		}		
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
index 4407527..5d4ebcb 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
@@ -18,17 +18,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.itemRenderers
 {
+	COMPILE::JS
+	{
+	import org.apache.royale.core.WrappedHTMLElement;
+	}
+
 	import org.apache.royale.core.SimpleCSSStylesWithFlex;
 	import org.apache.royale.events.ItemClickedEvent;
 	import org.apache.royale.events.MouseEvent;
 	import org.apache.royale.html.beads.ITextItemRenderer;
 	import org.apache.royale.html.util.getLabelFromData;
 	import org.apache.royale.jewel.Button;
-
-	COMPILE::JS
-	{
-	import org.apache.royale.core.WrappedHTMLElement;
-	}
+	import org.apache.royale.jewel.ButtonBar;
+	import org.apache.royale.jewel.beads.views.ButtonBarView;
 
 	/**
 	 * The ButtonBarItemRenderer class extends Button and turns it into an itemRenderer
@@ -47,7 +49,8 @@ package org.apache.royale.jewel.itemRenderers
 
 			style = new SimpleCSSStylesWithFlex();
 
-			addEventListener('click',handleClickEvent);
+			addEventListener('click', handleClickEvent);
+
 		}
 
 		private var _data:Object;
@@ -71,6 +74,9 @@ package org.apache.royale.jewel.itemRenderers
 			_data = value;
 
 			updateButtonLabelFromData();
+
+			var buttonBar:ButtonBar = (itemRendererParent as ButtonBarView).buttonBar;
+			emphasis = buttonBar.emphasis;
 		}
 
 		/**
@@ -86,7 +92,9 @@ package org.apache.royale.jewel.itemRenderers
 				valueAsString = "" + data["title"];
 			}
 
-			if (valueAsString) text = valueAsString;
+			if (valueAsString) {
+				text = valueAsString;
+			}
 		}
 
 		/**
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_buttonbar.sass b/frameworks/projects/Jewel/src/main/sass/components/_buttonbar.sass
index 9d67b50..7497aaa 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_buttonbar.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_buttonbar.sass
@@ -21,6 +21,7 @@
 
 // ButtonVar variables
 jewel.buttonbar
+    
 
 j|ButtonBar
     IBeadModel: ClassReference("org.apache.royale.html.beads.models.ButtonBarModel")