You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by mk...@apache.org on 2013/06/26 03:12:26 UTC
git commit: [flex-sdk] [refs/heads/develop] - FLEX-14522: Added
enabledField and support during button creation. Minor logic changes.
Updated Branches:
refs/heads/develop 571cd9fc5 -> 712b1ba76
FLEX-14522: Added enabledField and support during button creation. Minor logic changes.
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/712b1ba7
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/712b1ba7
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/712b1ba7
Branch: refs/heads/develop
Commit: 712b1ba7680a969a3c25d4bc76c8ce40e7e3eebe
Parents: 571cd9f
Author: Mark Kessler <Ke...@gmail.com>
Authored: Tue Jun 25 21:06:16 2013 -0400
Committer: Mark Kessler <Ke...@gmail.com>
Committed: Tue Jun 25 21:11:51 2013 -0400
----------------------------------------------------------------------
.../projects/mx/src/mx/controls/NavBar.as | 79 ++++++++++++++++----
1 file changed, 63 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/712b1ba7/frameworks/projects/mx/src/mx/controls/NavBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/mx/src/mx/controls/NavBar.as b/frameworks/projects/mx/src/mx/controls/NavBar.as
index 37f2e33..60849a3 100644
--- a/frameworks/projects/mx/src/mx/controls/NavBar.as
+++ b/frameworks/projects/mx/src/mx/controls/NavBar.as
@@ -106,6 +106,7 @@ use namespace mx_internal;
* <mx:<i>tagname</i>
* <strong>Properties</strong>
* dataProvider="<i>No default</i>"
+ * enabledField="enabled"
* iconField="icon"
* labeField="label"
* selectedIndex="-1"
@@ -404,7 +405,6 @@ public class NavBar extends Box
if (_dataProvider)
{
- // use weak reference
_dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE,
collectionChangeHandler);
}
@@ -463,6 +463,52 @@ public class NavBar extends Box
dispatchEvent(new Event("collectionChange"));
}
+
+ //----------------------------------
+ // enabledField
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the enabled property.
+ */
+ private var _enabledField:String = "enabled";
+
+ [Bindable("enabledFieldChanged")]
+ [Inspectable(category="Data")]
+
+ /**
+ * Name of the the field in the <code>dataProvider</code> object
+ * to use as the enabled label.
+ *
+ * @default "enabled"
+ *
+ * @langversion 3.0
+ * @playerversion Flash 11.1
+ * @playerversion AIR 3.4
+ * @productversion Flex 4.10
+ */
+ public function get enabledField():String
+ {
+ return _enabledField;
+ }
+
+ /**
+ * @private
+ */
+ public function set enabledField(value:String):void
+ {
+ _enabledField = value;
+
+ // If we have a data provider, update here to
+ // reflect new enabled field.
+ if (_dataProvider)
+ dataProvider = _dataProvider;
+
+ dispatchEvent(new Event("enabledFieldChanged"));
+ }
+
+
//----------------------------------
// iconField
//----------------------------------
@@ -955,13 +1001,15 @@ public class NavBar extends Box
if (item is String && labelFunction == null)
{
navItem = Button(createNavItem(String(item)));
+
+ navItem.enabled = enabled;
}
else
{
var label:String = itemToLabel(item);
// if labelField doesn't exist in item, label will be null;
- if (iconField)
+ if (iconField != "")
{
var iconValue:Object = null;
@@ -989,24 +1037,23 @@ public class NavBar extends Box
navItem = Button(createNavItem(label, null));
}
- // Assigning undefined to a String coerces to "",
- // which cancels an ancestor's tooltip.
- // So we have to change undefined to null.
- if (toolTipField)
+ //Check for toolTip field and assign it to the individual button if it exists.
+ if (_toolTipField != "" && item.hasOwnProperty(_toolTipField))
{
- try
- {
- navItem.toolTip = (item[toolTipField] === undefined
- ? null
- : item[toolTipField]);
- }
- catch(e:Error)
- {
- }
+ navItem.toolTip = String(item[_toolTipField]);
+ }
+
+ //Check for enabled field and assign it to the individual button if it exists.
+ if (_enabledField != "" && item.hasOwnProperty(_enabledField))
+ {
+ navItem.enabled = Boolean(item[_enabledField]);
+ }
+ else
+ {
+ navItem.enabled = enabled;
}
}
- navItem.enabled = enabled;
}
resetNavItems();
}