You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2020/06/19 11:36:27 UTC
[royale-asjs] branch develop updated: Change ComboBoxItemByField
for a Basic Bead so that it can be used by more components
This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new 2365dbb Change ComboBoxItemByField for a Basic Bead so that it can be used by more components
new 57c25cd Merge pull request #870 from raudjcholo/develop
2365dbb is described below
commit 2365dbb6a6df779fb38c053a792badc6fe82c48f
Author: Raul Nunez <ra...@gmail.com>
AuthorDate: Thu Jun 18 19:43:41 2020 +0200
Change ComboBoxItemByField for a Basic Bead so that it can be used by more components
---
.../Basic/src/main/resources/basic-manifest.xml | 2 +
.../html/beads/CollectionSelectedItemByField.as} | 53 ++++++++++++----------
.../Jewel/src/main/resources/jewel-manifest.xml | 1 -
3 files changed, 30 insertions(+), 26 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index 3db2977..6e59649 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -294,5 +294,7 @@
<component id="BrowserRouter" class="org.apache.royale.routing.BrowserRouter"/>
<component id="UIGraphicsBase" class="org.apache.royale.display.UIGraphicsBase"/>
+
+ <component id="CollectionSelectedItemByField" class="org.apache.royale.html.beads.CollectionSelectedItemByField"/>
</componentPackage>
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxItemByField.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CollectionSelectedItemByField.as
similarity index 65%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxItemByField.as
rename to frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CollectionSelectedItemByField.as
index e73559a..ea284fd 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/ComboBoxItemByField.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CollectionSelectedItemByField.as
@@ -16,28 +16,30 @@
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads.controls.combobox
+package org.apache.royale.html.beads
{
import org.apache.royale.core.IBead;
- import org.apache.royale.jewel.ComboBox;
import org.apache.royale.core.IStrand;
import org.apache.royale.collections.CollectionUtils;
- import org.apache.royale.collections.ArrayList;
import org.apache.royale.events.Event;
+ import org.apache.royale.collections.ICollectionView;
+ import org.apache.royale.core.ISelectionModel;
+ import org.apache.royale.events.IEventDispatcher;
/**
- * The ComboBoxItemByField class is a specialty bead that can be used with
- * any ComboBox control. This bead allows to select an item by field
+ * The CollectionSelectedItemByField class is a specialty bead that can be used with
+ * any control with ISelectionModel. This bead allows to select an item by field
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9.4
+ * @productversion Royale 0.9.8
*/
- public class ComboBoxItemByField implements IBead{
+ public class CollectionSelectedItemByField implements IBead{
- protected var comboBox:ComboBox;
+ protected var _model:ISelectionModel;
+ protected var _strand:IStrand;
/**
@@ -46,9 +48,9 @@ package org.apache.royale.jewel.beads.controls.combobox
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9.4
+ * @productversion Royale 0.9.8
*/
- public function ComboBoxItemByField()
+ public function CollectionSelectedItemByField()
{
}
@@ -58,12 +60,13 @@ package org.apache.royale.jewel.beads.controls.combobox
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9.7
+ * @productversion Royale 0.9.8
*/
public function set strand(value:IStrand):void
{
- comboBox = value as ComboBox;
- comboBox.addEventListener("selectionChanged", selectionChangedHandler);
+ _strand = value;
+ _model = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ (_strand as IEventDispatcher).addEventListener("selectionChanged", selectionChangedHandler);
updateHost();
}
@@ -74,7 +77,7 @@ package org.apache.royale.jewel.beads.controls.combobox
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9.4
+ * @productversion Royale 0.9.8
*/
public function get valueField():String
{
@@ -95,7 +98,7 @@ package org.apache.royale.jewel.beads.controls.combobox
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9.4
+ * @productversion Royale 0.9.8
*/
public function get selectedValue():*{
return _selectedValue;
@@ -107,29 +110,29 @@ package org.apache.royale.jewel.beads.controls.combobox
}
/**
- * This bead allows update the selected item of the combobox through the entered field
+ * This bead allows update the selected item of the component through the entered field
*/
protected function updateHost():void
{
- if(comboBox && valueField != "" && selectedValue != null){
- var aux:* = CollectionUtils.getItemByField(comboBox.dataProvider as ArrayList,valueField,selectedValue);
+ if(_model && valueField != "" && selectedValue != null){
+ var aux:* = CollectionUtils.getItemByField(_model.dataProvider as ICollectionView,valueField,selectedValue);
if(aux == null){
- comboBox.selectedItem = null;
- comboBox.selectedIndex = -1;
- } else if (aux!==comboBox.selectedItem){
- comboBox.selectedItem = aux;
+ _model.selectedItem = null;
+ _model.selectedIndex = -1;
+ } else if (aux!==_model.selectedItem){
+ _model.selectedItem = aux;
}
}
}
/**
- * Select the right item for the combobox.
+ * Select the right item for the component.
*
* @param event
*/
protected function selectionChangedHandler(event:Event):void{
- if(valueField != "" && comboBox){
- var selectedItem:Object = comboBox.selectedItem;
+ if(valueField != "" && _model){
+ var selectedItem:Object = _model.selectedItem;
if(selectedItem != null && selectedValue !== selectedItem[valueField])
selectedValue = selectedItem[valueField];
}
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index 55136c2..e575c79 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -198,7 +198,6 @@
<component id="ComboLowerCase" class="org.apache.royale.jewel.beads.controls.combobox.ComboLowerCase"/>
<component id="ComboBoxDisabled" class="org.apache.royale.jewel.beads.controls.combobox.ComboBoxDisabled"/>
<component id="ComboBoxTruncateText" class="org.apache.royale.jewel.beads.controls.combobox.ComboBoxTruncateText"/>
- <component id="ComboBoxItemByField" class="org.apache.royale.jewel.beads.controls.combobox.ComboBoxItemByField"/>
<component id="LayoutChildren" class="org.apache.royale.jewel.beads.layouts.LayoutChildren"/>
<component id="BasicLayout" class="org.apache.royale.jewel.beads.layouts.BasicLayout"/>