You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pi...@apache.org on 2017/12/16 12:30:37 UTC
[royale-asjs] branch develop updated: Add
DynamicRemoveAllByNullItemRendererForArrayListData
This is an automated email from the ASF dual-hosted git repository.
piotrz 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 eb358af Add DynamicRemoveAllByNullItemRendererForArrayListData
eb358af is described below
commit eb358afc0fdc33f398ff9733b9b21ebbba2c6e6b
Author: Piotr Zarzycki <pi...@gmail.com>
AuthorDate: Sat Dec 16 13:30:28 2017 +0100
Add DynamicRemoveAllByNullItemRendererForArrayListData
Add DynamicRemoveAllByNullItemRendererForArrayListData which allows to remove all rows from the list when dataProvider is being set to null
---
.../MDLDynamicTableExample/src/MainView.mxml | 9 +++++
.../Basic/src/main/resources/basic-manifest.xml | 1 +
...RemoveAllByNullItemRendererForArrayListData.as} | 44 +++++++---------------
...DynamicRemoveAllItemRendererForArrayListData.as | 6 +--
4 files changed, 26 insertions(+), 34 deletions(-)
diff --git a/examples/royale/MDLDynamicTableExample/src/MainView.mxml b/examples/royale/MDLDynamicTableExample/src/MainView.mxml
index e484cac..c450cc6 100644
--- a/examples/royale/MDLDynamicTableExample/src/MainView.mxml
+++ b/examples/royale/MDLDynamicTableExample/src/MainView.mxml
@@ -40,6 +40,11 @@ limitations under the License.
usersListModel.users.removeAll();
}
+ private function onRemoveAllByNullClick(event:MouseEvent):void
+ {
+ tblUsers.dataProvider = null;
+ }
+
private function onTblChange(event:Event):void
{
var selIndex:int = tblUsers.selectedIndex;
@@ -69,6 +74,7 @@ limitations under the License.
<js:DynamicItemsRendererFactoryForArrayListData />
<js:DynamicRemoveItemRendererForArrayListData />
<js:DynamicRemoveAllItemRendererForArrayListData />
+ <js:DynamicRemoveAllByNullItemRendererForArrayListData />
</mdl:beads>
</mdl:Table>
</mdl:GridCell>
@@ -81,4 +87,7 @@ limitations under the License.
<mdl:GridCell>
<mdl:Button text="Remove All" width="130" click="onRemoveAllClick(event)"/>
</mdl:GridCell>
+ <mdl:GridCell>
+ <mdl:Button text="Remove All by Null" width="150" click="onRemoveAllByNullClick(event)"/>
+ </mdl:GridCell>
</mdl:Grid>
diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index d0bf629..0aba42a 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -154,6 +154,7 @@
<component id="DynamicRemoveItemRendererForArrayListData" class="org.apache.royale.html.beads.DynamicRemoveItemRendererForArrayListData" />
<component id="DataItemRendererFactoryForHierarchicalData" class="org.apache.royale.html.beads.DataItemRendererFactoryForHierarchicalData" />
<component id="DynamicRemoveAllItemRendererForArrayListData" class="org.apache.royale.html.beads.DynamicRemoveAllItemRendererForArrayListData" />
+ <component id="DynamicRemoveAllByNullItemRendererForArrayListData" class="org.apache.royale.html.beads.DynamicRemoveAllByNullItemRendererForArrayListData" />
<component id="TextItemRendererFactoryForArrayData" class="org.apache.royale.html.beads.TextItemRendererFactoryForArrayData" />
<component id="TextItemRendererFactoryForStringVectorData" class="org.apache.royale.html.beads.TextItemRendererFactoryForStringVectorData" />
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
similarity index 78%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
copy to frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
index 5111037..8215562 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllByNullItemRendererForArrayListData.as
@@ -24,21 +24,19 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
- import org.apache.royale.core.UIBase;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
/**
- * Handles the removal of all itemRenderers once the corresponding datum has been removed
- * from the IDataProviderModel.
+ * Handles the removal of all itemRenderers once data source is being set to null.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- public class DynamicRemoveAllItemRendererForArrayListData implements IBead
+ public class DynamicRemoveAllByNullItemRendererForArrayListData implements IBead
{
/**
* Constructor
@@ -48,7 +46,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- public function DynamicRemoveAllItemRendererForArrayListData()
+ public function DynamicRemoveAllByNullItemRendererForArrayListData()
{
}
@@ -93,33 +91,19 @@ package org.apache.royale.html.beads
protected function dataProviderChangeHandler(event:Event):void
{
var dp:IEventDispatcher = dataProviderModel.dataProvider as IEventDispatcher;
- if (!dp)
- return;
-
- // listen for all items being removed in the future.
- dp.addEventListener(CollectionEvent.ALL_ITEMS_REMOVED, handleAllItemsRemoved);
- }
- /**
- * Handles the itemRemoved event by removing the item.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- */
- protected function handleAllItemsRemoved(event:CollectionEvent):void
- {
- if (dataProviderModel is ISelectionModel)
- {
- var model:ISelectionModel = dataProviderModel as ISelectionModel;
- model.selectedIndex = -1;
- model.selectedItem = null;
- }
- var parent:UIBase = itemRendererParent as UIBase;
- itemRendererParent.removeAllItemRenderers();
+ if (!dp)
+ {
+ if (dataProviderModel is ISelectionModel)
+ {
+ var model:ISelectionModel = dataProviderModel as ISelectionModel;
+ model.selectedIndex = -1;
+ model.selectedItem = null;
+ }
- (_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+ itemRendererParent.removeAllItemRenderers();
+ (_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+ }
}
private var _dataProviderModel: IDataProviderModel;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
index 5111037..558cf0a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveAllItemRendererForArrayListData.as
@@ -24,13 +24,12 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IList;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
- import org.apache.royale.core.UIBase;
import org.apache.royale.events.CollectionEvent;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
/**
- * Handles the removal of all itemRenderers once the corresponding datum has been removed
+ * Handles the removal of all itemRenderers once the all items has been removed
* from the IDataProviderModel.
*
* @langversion 3.0
@@ -116,9 +115,8 @@ package org.apache.royale.html.beads
model.selectedIndex = -1;
model.selectedItem = null;
}
- var parent:UIBase = itemRendererParent as UIBase;
- itemRendererParent.removeAllItemRenderers();
+ itemRendererParent.removeAllItemRenderers();
(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
}
--
To stop receiving notification emails like this one, please contact
['"commits@royale.apache.org" <co...@royale.apache.org>'].