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")