This is an automated email from the ASF dual-hosted git repository.
harbs 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 8c07a12 helper function for selection bead
8c07a12 is described below
commit 8c07a12d9386eb75b36ebace497cfc0dc8e194f4
Author: Harbs <[email protected]>
AuthorDate: Sun Feb 23 19:32:54 2020 +0200
helper function for selection bead
---
.../org/apache/royale/html/beads/ListView.as | 136 +++++-------
.../apache/royale/html/beads/VirtualListView.as | 149 ++++++-------
.../controllers/ItemRendererMouseController.as | 27 +--
.../ListMultiSelectionMouseController.as | 24 +--
.../ListSingleSelectionMouseController.as | 22 +-
.../MultiSelectionItemRendererMouseController.as | 33 ++-
...verridableSelectableItemRendererClassFactory.as | 13 +-
.../apache/royale/utils/getSelectionRenderBead.as | 46 ++++
.../controllers/ItemRendererMouseController.as | 55 ++---
...tualDataItemRendererFactoryForCollectionView.as | 142 ++++++------
.../royale/jewel/beads/views/DropDownListView.as | 239 +++++++++++----------
.../apache/royale/jewel/beads/views/ListView.as | 155 +++++++------
.../apache/royale/jewel/beads/views/TabBarView.as | 21 +-
.../apache/royale/jewel/beads/views/TableView.as | 33 +--
.../royale/jewel/beads/views/VirtualListView.as | 99 ++++-----
.../AdvancedDataGridItemRenderer.as | 5 +-
.../mx/controls/beads/AdvancedDataGridView.as | 3 +-
17 files changed, 597 insertions(+), 605 deletions(-)
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
index fdbae01..dbd8c91 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
@@ -18,29 +18,13 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html.beads
{
- import org.apache.royale.html.beads.DataContainerView;
- import org.apache.royale.core.BeadViewBase;
- import org.apache.royale.core.ContainerBase;
- import org.apache.royale.core.IBead;
- import org.apache.royale.core.IBeadLayout;
- import org.apache.royale.core.IBeadModel;
- import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IItemRenderer;
- import org.apache.royale.core.IItemRendererOwnerView;
- import org.apache.royale.core.IParent;
- import org.apache.royale.core.IParentIUIBase;
import org.apache.royale.core.IRollOverModel;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.core.IUIBase;
- import org.apache.royale.core.Strand;
- import org.apache.royale.core.UIBase;
- import org.apache.royale.core.ValuesManager;
import org.apache.royale.events.Event;
- import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.html.supportClasses.Border;
- import org.apache.royale.html.supportClasses.DataGroup;
+ import org.apache.royale.utils.getSelectionRenderBead;
+ import org.apache.royale.core.IStrand;
/**
* The List class creates the visual elements of the
org.apache.royale.html.List
@@ -79,25 +63,24 @@ package org.apache.royale.html.beads
}
/**
- * @private
- * @royaleignorecoercion
org.apache.royale.core.ISelectableItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
*/
protected function selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = listModel.selectedIndex;
}
@@ -105,26 +88,25 @@ package org.apache.royale.html.beads
protected var lastRollOverIndex:int = -1;
/**
- * @private
- * @royaleignorecoercion
org.apache.royale.core.ISelectableItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
* * @royaleignorecoercion org.apache.royale.core.IRollOverModel
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:ISelectableItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex = (listModel as
IRollOverModel).rollOverIndex;
}
}
@@ -172,21 +154,21 @@ package org.apache.royale.html.beads
*/
protected function selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as
IItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
- lastSelectedIndex = listModel.selectedIndex;
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+ lastSelectedIndex = listModel.selectedIndex;
}
protected var lastRollOverIndex:int = -1;
@@ -196,20 +178,20 @@ package org.apache.royale.html.beads
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:ISelectableItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex =
IRollOverModel(listModel).rollOverIndex;
}
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
index a9165dd..3ea9fc7 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
@@ -7,7 +7,7 @@
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -18,32 +18,17 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html.beads
{
- import org.apache.royale.core.BeadViewBase;
- import org.apache.royale.core.ContainerBase;
- import org.apache.royale.core.IBead;
- import org.apache.royale.core.IBeadLayout;
- import org.apache.royale.core.IBeadModel;
- import org.apache.royale.core.IBeadView;
import org.apache.royale.core.IDataProviderItemRendererMapper;
- import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IItemRenderer;
- import org.apache.royale.core.IItemRendererOwnerView;
- import org.apache.royale.core.IParent;
- import org.apache.royale.core.IParentIUIBase;
import org.apache.royale.core.IRollOverModel;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.core.IUIBase;
- import org.apache.royale.core.Strand;
- import org.apache.royale.core.UIBase;
- import org.apache.royale.core.ValuesManager;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.events.ItemRendererEvent;
- import org.apache.royale.html.supportClasses.Border;
- import org.apache.royale.html.supportClasses.DataGroup;
-
+ import org.apache.royale.events.ItemRendererEvent;
+ import org.apache.royale.utils.getSelectionRenderBead;
+
/**
* The List class creates the visual elements of the
org.apache.royale.html.List
* component. A List consists of the area to display the data (in the
dataGroup), any
@@ -65,7 +50,7 @@ package org.apache.royale.html.beads
protected var listModel:ISelectionModel;
protected var lastSelectedIndex:int = -1;
-
+
/**
* @private
*/
@@ -74,69 +59,63 @@ package org.apache.royale.html.beads
listModel = _strand.getBeadByType(ISelectionModel) as
ISelectionModel;
listModel.addEventListener("selectedIndexChanged",
selectionChangeHandler);
listModel.addEventListener("rollOverIndexChanged",
rollOverIndexChangeHandler);
- var mapper:IEventDispatcher =
_strand.getBeadByType(IDataProviderItemRendererMapper) as IEventDispatcher;
- mapper.addEventListener(ItemRendererEvent.CREATED,
itemCreatedHandler);
+ var mapper:IEventDispatcher =
_strand.getBeadByType(IDataProviderItemRendererMapper) as IEventDispatcher;
+ mapper.addEventListener(ItemRendererEvent.CREATED,
itemCreatedHandler);
super.handleInitComplete(event);
}
- protected function itemCreatedHandler(event:ItemRendererEvent):void
- {
- var selectionBead:ISelectableItemRenderer;
- var ir:IIndexedItemRenderer = event.itemRenderer as
IIndexedItemRenderer;
- if (ir.index == lastSelectedIndex)
- {
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
-
- }
-
- protected var firstElementIndex:int = 1;
-
- override public function
getItemRendererForIndex(index:int):IItemRenderer
- {
- if (contentView.numElements == 0)
- return null;
-
- var firstIndex:int = (contentView.getElementAt(firstElementIndex)
as IIndexedItemRenderer).index;
-
- if (index < firstIndex)
- return null;
- if (index >= (firstIndex + contentView.numElements))
- return null;
-
- return contentView.getElementAt(index - firstIndex +
firstElementIndex) as IItemRenderer;
- }
-
+ protected function
itemCreatedHandler(event:ItemRendererEvent):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IIndexedItemRenderer = event.itemRenderer as
IIndexedItemRenderer;
+ if (ir.index == lastSelectedIndex)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+
+ }
+
+ protected var firstElementIndex:int = 1;
+
+ override public function
getItemRendererForIndex(index:int):IItemRenderer
+ {
+ if (contentView.numElements == 0)
+ return null;
+
+ var firstIndex:int =
(contentView.getElementAt(firstElementIndex) as IIndexedItemRenderer).index;
+
+ if (index < firstIndex)
+ return null;
+ if (index >= (firstIndex + contentView.numElements))
+ return null;
+
+ return contentView.getElementAt(index - firstIndex +
firstElementIndex) as IItemRenderer;
+ }
+
/**
* @private
* @royaleignorecoercion
org.apache.royale.core.IIndexedItemRenderer
*/
protected function selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
+ var selectionBead:ISelectableItemRenderer;
var ir:IIndexedItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IIndexedItemRenderer;
if(ir)
- {
- if (ir is IStrand)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as
IIndexedItemRenderer;
if(ir)
- {
- if (ir is IStrand)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = listModel.selectedIndex;
}
@@ -150,27 +129,21 @@ package org.apache.royale.html.beads
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IIndexedItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IIndexedItemRenderer;
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IIndexedItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IIndexedItemRenderer;
if(ir)
- {
- if (ir is IStrand)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as IIndexedItemRenderer;
if(ir)
- {
- if (ir is IStrand)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex = (listModel as
IRollOverModel).rollOverIndex;
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as
index 62cc5f5..c40e599 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as
@@ -20,7 +20,7 @@ package org.apache.royale.html.beads.controllers
{
import org.apache.royale.core.IBeadController;
import org.apache.royale.core.IIndexedItemRenderer;
- import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
COMPILE::SWF {
import org.apache.royale.events.Event;
@@ -36,6 +36,7 @@ COMPILE::JS {
}
import org.apache.royale.events.ItemClickedEvent;
import org.apache.royale.utils.sendEvent;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The ItemRendererMouseController class can mouse events in
itemRenderers. This
@@ -158,12 +159,9 @@ COMPILE::JS {
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (target)
{
- if (target is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.down = true;
- }
+ var
selectionBead:ISelectableItemRenderer = getSelectionRenderBead(renderer);
+ if (selectionBead)
+ selectionBead.down = true;
var newEvent:ItemClickedEvent = new
ItemClickedEvent("itemMouseDown");
newEvent.data = target.data;
newEvent.index = target.index;
@@ -182,15 +180,12 @@ COMPILE::JS {
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (target)
{
- if (target is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- {
- selectionBead.down = true;
- selectionBead.hovered = false;
- }
- }
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(renderer);
+ if (selectionBead)
+ {
+ selectionBead.down = true;
+ selectionBead.hovered = false;
+ }
var newEvent:ItemClickedEvent = new
ItemClickedEvent("itemMouseDown");
newEvent.data = target.data;
newEvent.index = target.index;
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as
index fef9e79..196f153 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as
@@ -7,7 +7,7 @@
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -29,9 +29,9 @@ package org.apache.royale.html.beads.controllers
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.events.ItemAddedEvent;
import org.apache.royale.events.ItemRemovedEvent;
- import org.apache.royale.events.MouseEvent;
import org.apache.royale.events.MultiSelectionItemClickedEvent;
import org.apache.royale.html.beads.IListView;
+ import org.apache.royale.utils.getSelectionRenderBead;
import org.apache.royale.utils.sendEvent;
/**
@@ -41,7 +41,7 @@ package org.apache.royale.html.beads.controllers
* update the data model or dispatch a semantic event.
* This controller watches for events from the item renderers
* and updates an IMultiSelectionModel (which supports multi
- * selection).
+ * selection).
*
* @langversion 3.0
* @playerversion Flash 10.2
@@ -215,15 +215,15 @@ package org.apache.royale.html.beads.controllers
{
var renderer:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (renderer) {
- if (renderer is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- {
- selectionBead.hovered = false;
- selectionBead.down = false;
- }
- }
+ if (renderer is IStrand)
+ {
+ var
selectionBead:ISelectableItemRenderer = getSelectionRenderBead(renderer);
+ if (selectionBead)
+ {
+ selectionBead.hovered = false;
+ selectionBead.down = false;
+ }
+ }
IRollOverModel(listModel).rollOverIndex = -1;
}
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as
index 69fb16b..da7028f 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as
@@ -7,7 +7,7 @@
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,7 +23,7 @@ package org.apache.royale.html.beads.controllers
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IRollOverModel;
import org.apache.royale.core.IIndexedItemRenderer;
- import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
import org.apache.royale.events.Event;
@@ -33,6 +33,7 @@ package org.apache.royale.html.beads.controllers
import org.apache.royale.events.ItemRemovedEvent;
import org.apache.royale.html.beads.IListView;
import org.apache.royale.utils.sendEvent;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The ListSingleSelectionMouseController class is a controller for
@@ -137,7 +138,7 @@ package org.apache.royale.html.beads.controllers
{
listModel.selectedIndex = event.index;
listModel.selectedItem = event.data;
- sendEvent(listView.host,"change");
+ sendEvent(listView.host,"change");
}
/**
@@ -160,15 +161,12 @@ package org.apache.royale.html.beads.controllers
{
var renderer:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (renderer) {
- if (renderer is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- {
- selectionBead.hovered = false;
- selectionBead.down = false;
- }
- }
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(renderer);
+ if (selectionBead)
+ {
+ selectionBead.hovered = false;
+ selectionBead.down = false;
+ }
IRollOverModel(listModel).rollOverIndex = -1;
}
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as
index a9f5588..0dc606a 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as
@@ -7,7 +7,7 @@
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -19,7 +19,7 @@
package org.apache.royale.html.beads.controllers
{
import org.apache.royale.core.IBeadController;
- import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IStrand;
COMPILE::SWF {
@@ -36,6 +36,7 @@ package org.apache.royale.html.beads.controllers
}
import org.apache.royale.events.MultiSelectionItemClickedEvent;
import org.apache.royale.utils.sendEvent;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The MultiSelectionItemRendererMouseController class can mouse
events in itemRenderers. This
@@ -159,14 +160,11 @@ package org.apache.royale.html.beads.controllers
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (target)
{
- if (target is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- {
- selectionBead.down = true;
- }
- }
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(renderer);
+ if (selectionBead)
+ {
+ selectionBead.down = true;
+ }
var newEvent:MultiSelectionItemClickedEvent =
new MultiSelectionItemClickedEvent("itemMouseDown", true, true);
newEvent.shiftKey = event.shiftKey;
newEvent.ctrlKey = event.ctrlKey;
@@ -188,15 +186,12 @@ package org.apache.royale.html.beads.controllers
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (target)
{
- if (target is IStrand)
- {
- var selectionBead:ISelectableItemRenderer = (renderer as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- {
- selectionBead.down = true;
- selectionBead.hovered = false;
- }
- }
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(renderer);
+ if (selectionBead)
+ {
+ selectionBead.down = true;
+ selectionBead.hovered = false;
+ }
var newEvent:MultiSelectionItemClickedEvent =
MultiSelectionItemClickedEvent.createMultiSelectionItemClickedEvent("itemMouseDown",
event);
newEvent.data = target.data;
newEvent.index = target.index;
diff --git
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
index e1f05c3..841f367 100644
---
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
+++
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
@@ -25,6 +25,7 @@ package org.apache.royale.core
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.utils.MXMLDataInterpreter;
+ import org.apache.royale.utils.getSelectionRenderBead;
[DefaultProperty("mxmlContent")]
@@ -82,8 +83,16 @@ package org.apache.royale.core
override public function createItemRenderer():IItemRenderer
{
var ir:IItemRenderer = super.createItemRenderer();
- if (!ir.getBeadByType(ISelectableItemRenderer))
- ir.addBead(new selectableBeadClass());
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(ir);
+ if (!selectionBead)
+ {
+ selectionBead = new selectableBeadClass();
+ COMPILE::JS
+ {
+ ir["_selectionBead_"] = selectionBead;
+ }
+ ir.addBead(selectionBead);
+ }
return ir;
}
}
diff --git
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/getSelectionRenderBead.as
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/getSelectionRenderBead.as
new file mode 100644
index 0000000..aff00dd
--- /dev/null
+++
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/getSelectionRenderBead.as
@@ -0,0 +1,46 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.utils
+{
+ import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
+
+ /**
+ * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
+ */
+ public function
getSelectionRenderBead(renderer:IItemRenderer):ISelectableItemRenderer
+ {
+ COMPILE::JS
+ {
+ var selectionBead:ISelectableItemRenderer = renderer["_selectionBead_"];
+ if(!selectionBead)
+ {
+ selectionBead = renderer.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
+ if(selectionBead)
+ renderer["_selectionBead_"] = selectionBead;
+ }
+ return selectionBead;
+ }
+
+ COMPILE::SWF
+ {
+ return renderer.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as
index 0929caf..42e3fd8 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as
@@ -31,11 +31,12 @@ package org.apache.royale.jewel.beads.controllers
import org.apache.royale.core.WrappedHTMLElement;
import org.apache.royale.events.BrowserEvent;
}
- import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IBeadController;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IStrand;
import org.apache.royale.events.ItemClickedEvent;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The ItemRendererMouseController class can mouse events in
itemRenderers. This
@@ -62,7 +63,7 @@ package org.apache.royale.jewel.beads.controllers
{
}
- private var renderer:IIndexedItemRenderer;
+ private var renderer:IIndexedItemRenderer;
private var _strand:IStrand;
/**
@@ -78,11 +79,11 @@ package org.apache.royale.jewel.beads.controllers
public function set strand(value:IStrand):void
{
_strand = value;
- renderer = value as IIndexedItemRenderer;
+ renderer = value as IIndexedItemRenderer;
COMPILE::SWF {
- renderer.addEventListener(MouseEvent.ROLL_OVER,
rollOverHandler);
- renderer.addEventListener(MouseEvent.ROLL_OUT,
rollOutHandler);
+ renderer.addEventListener(MouseEvent.ROLL_OVER,
rollOverHandler);
+ renderer.addEventListener(MouseEvent.ROLL_OUT,
rollOutHandler);
renderer.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
renderer.addEventListener(MouseEvent.MOUSE_UP,
mouseUpHandler);
}
@@ -157,8 +158,8 @@ package org.apache.royale.jewel.beads.controllers
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
if (target)
{
- var selectionBead:ISelectableItemRenderer =
target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- selectionBead.down = true;
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(target);
+ selectionBead.down = true;
target.addEventListener(MouseEvent.MOUSE_UP,
mouseUpHandler);
}
}
@@ -171,12 +172,12 @@ package org.apache.royale.jewel.beads.controllers
protected function handleMouseDown(event:BrowserEvent):void
{
var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
- if (target)
- {
- var selectionBead:ISelectableItemRenderer =
target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- selectionBead.down = true;
- selectionBead.hovered = false;
- }
+ if (target)
+ {
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(target);
+ selectionBead.down = true;
+ selectionBead.hovered = false;
+ }
}
/**
@@ -193,7 +194,7 @@ package org.apache.royale.jewel.beads.controllers
newEvent.data = target.data;
newEvent.index = target.index;
- target.removeEventListener(MouseEvent.MOUSE_UP,
mouseUpHandler);
+ target.removeEventListener(MouseEvent.MOUSE_UP,
mouseUpHandler);
target.dispatchEvent(newEvent);
}
}
@@ -206,19 +207,19 @@ package org.apache.royale.jewel.beads.controllers
protected function handleMouseUp(event:BrowserEvent):void
{
event.stopImmediatePropagation();
- var target:IIndexedItemRenderer = event.currentTarget as
IIndexedItemRenderer;
- if (target)
- {
- var selectionBead:ISelectableItemRenderer =
target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead && selectionBead.down)
- {
- var newEvent:ItemClickedEvent = new
ItemClickedEvent("itemClicked");
- newEvent.data = target.data;
- newEvent.index = target.index;
-
- target.dispatchEvent(newEvent);
- }
- }
+ var target:IIndexedItemRenderer = event.currentTarget
as IIndexedItemRenderer;
+ if (target)
+ {
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(target);
+ if (selectionBead && selectionBead.down)
+ {
+ var newEvent:ItemClickedEvent = new
ItemClickedEvent("itemClicked");
+ newEvent.data = target.data;
+ newEvent.index = target.index;
+
+ target.dispatchEvent(newEvent);
+ }
+ }
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
index 6d3a89b..804e0e6 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
@@ -19,52 +19,38 @@
package org.apache.royale.jewel.beads.itemRenderers
{
import org.apache.royale.collections.ArrayList;
- import org.apache.royale.collections.ICollectionView;
- import org.apache.royale.core.IBead;
- import org.apache.royale.core.IDataProviderModel;
- import org.apache.royale.core.IDataProviderVirtualItemRendererMapper;
- import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.core.IStrandWithModelView;
- import org.apache.royale.core.UIBase;
import org.apache.royale.events.Event;
- import org.apache.royale.events.EventDispatcher;
- import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.events.ItemRendererEvent;
- import org.apache.royale.html.beads.IListView;
import org.apache.royale.html.beads.VirtualDataItemRendererFactoryBase;
- import org.apache.royale.html.supportClasses.DataItemRenderer;
- import
org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
- import org.apache.royale.utils.loadBeadFromValuesManager;
+ import org.apache.royale.utils.getSelectionRenderBead;
import org.apache.royale.utils.sendStrandEvent;
-
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
+
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
- /**
- * The DataItemRendererFactoryForArrayData class reads an
- * array of data and creates an item renderer for every
- * item in the array. Other implementations of
- * IDataProviderItemRendererMapper map different data
- * structures or manage a virtual set of renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.7
- */
+ /**
+ * The DataItemRendererFactoryForArrayData class reads an
+ * array of data and creates an item renderer for every
+ * item in the array. Other implementations of
+ * IDataProviderItemRendererMapper map different data
+ * structures or manage a virtual set of renderers.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
public class VirtualDataItemRendererFactoryForCollectionView extends
VirtualDataItemRendererFactoryBase
{
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.7
- */
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
public function
VirtualDataItemRendererFactoryForCollectionView(target:Object=null)
{
super(target);
@@ -72,61 +58,61 @@ package org.apache.royale.jewel.beads.itemRenderers
private var dp:ArrayList;
- /**
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.7
- * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
- * @royaleignorecoercion org.apache.royale.html.beads.IListView
- */
+ /**
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ * @royaleignorecoercion
org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
+ */
override protected function
dataProviderChangeHandler(event:Event):void
{
- if (!dataProviderModel)
+ if (!dataProviderModel)
return;
- dp = dataProviderModel.dataProvider as ArrayList;
+ dp = dataProviderModel.dataProvider as ArrayList;
if (!dp)
return;
super.dataProviderChangeHandler(event);
- sendStrandEvent(_strand, "layoutNeeded");
- }
-
- /**
- * Get an item renderer for a given index.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.7
- * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
- * @royaleignorecoercion org.apache.royale.html.beads.IListView
- */
- override public function getItemRendererForIndex(index:int,
elementIndex:int):IIndexedItemRenderer
- {
- var ir:IIndexedItemRenderer = rendererMap[index];
- if (ir) return ir;
-
+ sendStrandEvent(_strand, "layoutNeeded");
+ }
+
+ /**
+ * Get an item renderer for a given index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ * @royaleignorecoercion
org.apache.royale.core.IStrandWithModelView
+ * @royaleignorecoercion org.apache.royale.html.beads.IListView
+ */
+ override public function getItemRendererForIndex(index:int,
elementIndex:int):IIndexedItemRenderer
+ {
+ var ir:IIndexedItemRenderer = rendererMap[index];
+ if (ir) return ir;
+
ir = super.getItemRendererForIndex(index, elementIndex);
-
- // if the item was already selected make the item show it
- if(index == (dataProviderModel as ISelectionModel).selectedIndex)
- {
- var selectionBead:ISelectableItemRenderer;
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
+
+ // if the item was already selected make the item show
it
+ if(index == (dataProviderModel as
ISelectionModel).selectedIndex)
+ {
+ var selectionBead:ISelectableItemRenderer;
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
- return ir;
+ return ir;
}
override public function getItemAt(index:int):Object
- {
- return dp.getItemAt(index);
- }
+ {
+ return dp.getItemAt(index);
+ }
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
index 627d23e..0b6094c 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
@@ -18,83 +18,84 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.views
{
- COMPILE::JS
- {
- import org.apache.royale.html.elements.Select;
- }
- import org.apache.royale.core.IItemRenderer;
- import org.apache.royale.core.ISelectableItemRenderer;
- import org.apache.royale.core.ISelectionModel;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.events.Event;
- import org.apache.royale.html.beads.DataContainerView;
- import org.apache.royale.jewel.DropDownList;
- import org.apache.royale.jewel.beads.models.IDropDownListModel;
-
- /**
- * The DropDownListView class creates the visual elements of the
org.apache.royale.jewel.DropDownList
- * component. The job of the view bead is to put together the parts of
the DropDownList such as the Select
- *
- * @viewbead
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- */
- public class DropDownListView extends DataContainerView
- {
- public function DropDownListView()
- {
- super();
- }
-
- private var dropDownList:DropDownList;
-
- /**
- * The prompt
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- * @royalesuppresspublicvarwarning
- */
- public var prompt:String = "";
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @royaleignorecoercion HTMLLabelElement
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- */
- override public function set strand(value:IStrand):void
- {
- super.strand = value;
-
- COMPILE::JS
- {
- dropDownList = value as DropDownList;
- dropDownList.dropDown = new Select();
-
- var name:String = "dropDownList" + Math.random();
- dropDownList.dropDown.element.name = name;
-
- dropDownList.addElement(dropDownList.dropDown);
- }
- }
-
- override protected function dataProviderChangeHandler(event:Event):void
- {
- super.dataProviderChangeHandler(event);
-
- changedSelection();
- }
-
- /**
+ COMPILE::JS
+ {
+ import org.apache.royale.html.elements.Select;
+ }
+ import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectionModel;
+ import org.apache.royale.core.IStrand;
+ import org.apache.royale.events.Event;
+ import org.apache.royale.html.beads.DataContainerView;
+ import org.apache.royale.jewel.DropDownList;
+ import org.apache.royale.jewel.beads.models.IDropDownListModel;
+ import org.apache.royale.utils.getSelectionRenderBead;
+
+ /**
+ * The DropDownListView class creates the visual elements of the
org.apache.royale.jewel.DropDownList
+ * component. The job of the view bead is to put together the parts of
the DropDownList such as the Select
+ *
+ * @viewbead
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.4
+ */
+ public class DropDownListView extends DataContainerView
+ {
+ public function DropDownListView()
+ {
+ super();
+ }
+
+ private var dropDownList:DropDownList;
+
+ /**
+ * The prompt
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.4
+ * @royalesuppresspublicvarwarning
+ */
+ public var prompt:String = "";
+
+ /**
+ * @copy org.apache.royale.core.IBead#strand
+ *
+ * @royaleignorecoercion HTMLLabelElement
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.4
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+
+ COMPILE::JS
+ {
+ dropDownList = value as DropDownList;
+ dropDownList.dropDown = new Select();
+
+ var name:String = "dropDownList" +
Math.random();
+ dropDownList.dropDown.element.name = name;
+
+ dropDownList.addElement(dropDownList.dropDown);
+ }
+ }
+
+ override protected function
dataProviderChangeHandler(event:Event):void
+ {
+ super.dataProviderChangeHandler(event);
+
+ changedSelection();
+ }
+
+ /**
* @private
* @royaleignorecoercion org.apache.royale.core.ISelectionModel
*/
@@ -107,61 +108,61 @@ package org.apache.royale.jewel.beads.views
}
- protected var lastSelectedIndex:int = -1;
- /**
+ protected var lastSelectedIndex:int = -1;
+ /**
* @private
* @royaleignorecoercion
org.apache.royale.core.ISelectableItemRenderer
- * @royaleignorecoercion
org.apache.royale.jewel.beads.models.IDropDownListModel
+ * @royaleignorecoercion
org.apache.royale.jewel.beads.models.IDropDownListModel
*/
protected function selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer;
- if (lastSelectedIndex != -1) {
- ir = dataGroup.getItemRendererAt(lastSelectedIndex) as
IItemRenderer;
- }
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer;
+ if (lastSelectedIndex != -1) {
+ ir =
dataGroup.getItemRendererAt(lastSelectedIndex) as IItemRenderer;
+ }
if(ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- var newIndex:int = model.selectedIndex;
- if (model is IDropDownListModel) {
- newIndex += IDropDownListModel(model).offset;
- }
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ var newIndex:int = model.selectedIndex;
+ if (model is IDropDownListModel) {
+ newIndex += IDropDownListModel(model).offset;
+ }
ir = dataGroup.getItemRendererAt(newIndex) as
IItemRenderer;
- if(ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
+ if(ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = newIndex;
- }
-
- override protected function
itemsCreatedHandler(event:org.apache.royale.events.Event):void
- {
- super.itemsCreatedHandler(event);
+ }
- changedSelection();
- }
+ override protected function
itemsCreatedHandler(event:org.apache.royale.events.Event):void
+ {
+ super.itemsCreatedHandler(event);
- private var model:ISelectionModel;
+ changedSelection();
+ }
- private function changedSelection():void
- {
- model = dataModel as ISelectionModel;
- //var selectedIndex:int = dropDownList.selectedIndex;
+ private var model:ISelectionModel;
- /* if (model.selectedIndex > -1 && model.dataProvider)
- {*/
- dropDownList.selectedIndex = model.selectedIndex;
- dropDownList.selectedItem = model.selectedItem;
- /* }*/
- }
- }
+ private function changedSelection():void
+ {
+ model = dataModel as ISelectionModel;
+ //var selectedIndex:int = dropDownList.selectedIndex;
+
+ /* if (model.selectedIndex > -1 && model.dataProvider)
+ {*/
+ dropDownList.selectedIndex =
model.selectedIndex;
+ dropDownList.selectedItem = model.selectedItem;
+ /* }*/
+ }
+ }
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
index cb781f8..b8f3723 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
@@ -27,6 +27,7 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.core.IStrand;
import org.apache.royale.events.Event;
import org.apache.royale.html.beads.DataContainerView;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The ListView class creates the visual elements of the
org.apache.royale.jewel.List
@@ -102,60 +103,58 @@ package org.apache.royale.jewel.beads.views
*/
override protected function
itemsCreatedHandler(event:Event):void
{
- super.itemsCreatedHandler(event);
+ super.itemsCreatedHandler(event);
if(listModel.selectedIndex != -1)
selectionChangeHandler(null);
}
/**
- * @private
- * @royaleignorecoercion
org.apache.royale.core.ISelectableItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
*/
- protected function selectionChangeHandler(event:Event):void
- {
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as
IItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
-
- lastSelectedIndex = listModel.selectedIndex;
- }
+ protected function selectionChangeHandler(event:Event):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+
+ lastSelectedIndex = listModel.selectedIndex;
+ }
protected var lastRollOverIndex:int = -1;
/**
- * @private
- * @royaleignorecoercion
org.apache.royale.core.ISelectableItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
* @royaleignorecoercion org.apache.royale.core.IRollOverModel
*/
- protected function rollOverIndexChangeHandler(event:Event):void
- {
- var selectionBead:ISelectableItemRenderer;
- var ir:ISelectableItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
- lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex;
- }
+ protected function rollOverIndexChangeHandler(event:Event):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
+ lastRollOverIndex = (listModel as
IRollOverModel).rollOverIndex;
+ }
}
COMPILE::SWF
@@ -212,47 +211,47 @@ package org.apache.royale.jewel.beads.views
/**
* @private
*/
- protected function selectionChangeHandler(event:Event):void
- {
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as
IItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
- lastSelectedIndex = listModel.selectedIndex;
- }
+ protected function selectionChangeHandler(event:Event):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+ lastSelectedIndex = listModel.selectedIndex;
+ }
protected var lastRollOverIndex:int = -1;
/**
* @private
*/
- protected function rollOverIndexChangeHandler(event:Event):void
- {
- var selectionBead:ISelectableItemRenderer;
- var ir:ISelectableItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- if (ir) {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
- lastRollOverIndex = IRollOverModel(listModel).rollOverIndex;
- }
+ protected function rollOverIndexChangeHandler(event:Event):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IItemRenderer;
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
+ lastRollOverIndex =
IRollOverModel(listModel).rollOverIndex;
+ }
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
index 91e94b3..116489d 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
@@ -18,13 +18,14 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.views
{
- import org.apache.royale.core.ISelectableItemRenderer;
+ import org.apache.royale.core.ISelectableItemRenderer;
COMPILE::JS
{
import org.apache.royale.events.Event;
import org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer;
}
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The TabBarView class creates the visual elements of the
org.apache.royale.jewel.TabBar
@@ -42,8 +43,8 @@ package org.apache.royale.jewel.beads.views
* constructor.
*
* <inject_html>
- * <script
src="https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.3.1/web-animations.min.js"></script>
- * </inject_html>
+ * <script
src="https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.3.1/web-animations.min.js"></script>
+ * </inject_html>
*
* @langversion 3.0
* @playerversion Flash 10.2
@@ -64,11 +65,11 @@ package org.apache.royale.jewel.beads.views
{
var prev_ir:TabBarButtonItemRenderer =
dataGroup.getItemRendererAt(lastSelectedIndex) as TabBarButtonItemRenderer;
var ir:TabBarButtonItemRenderer =
dataGroup.getItemRendererAt(listModel.selectedIndex) as
TabBarButtonItemRenderer;
- var selectionBead:ISelectableItemRenderer;
+ var selectionBead:ISelectableItemRenderer;
if(prev_ir) {
- selectionBead = prev_ir.getBeadByType(ISelectableItemRenderer)
as ISelectableItemRenderer;
- selectionBead.selected = false;
+ selectionBead = getSelectionRenderBead(prev_ir);
+ selectionBead.selected = false;
var lastRect:ClientRect =
prev_ir.getBoundingBox;
var currentRect:ClientRect = ir.getBoundingBox;
var widthDiff:Number = lastRect.width /
currentRect.width;
@@ -76,13 +77,13 @@ package org.apache.royale.jewel.beads.views
widthDiff = 1;
var positionDiff:Number = lastRect.left -
currentRect.left;
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- selectionBead.selected = true;
+ selectionBead = getSelectionRenderBead(ir);
+ selectionBead.selected = true;
ir.animateIndicator(positionDiff, widthDiff,
300, 'ease-in-out');
} else
{
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- selectionBead.selected = true;
+ selectionBead = getSelectionRenderBead(ir);
+ selectionBead.selected = true;
}
lastSelectedIndex = listModel.selectedIndex;
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
index c7a7cdb..1acb128 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
@@ -18,7 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.views
{
- import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IStrandWithModel;
@@ -28,6 +28,7 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.jewel.beads.views.ListView;
import org.apache.royale.jewel.supportClasses.table.TFoot;
import org.apache.royale.jewel.supportClasses.table.THead;
+ import org.apache.royale.utils.getSelectionRenderBead;
/**
* The TableView class creates the visual elements of the
org.apache.royale.jewel.Table component.
@@ -52,7 +53,7 @@ package org.apache.royale.jewel.beads.views
public function TableView()
{
super();
- }
+ }
/**
* @copy org.apache.royale.core.IBead#strand
@@ -95,7 +96,7 @@ package org.apache.royale.jewel.beads.views
*/
override protected function
itemsCreatedHandler(event:Event):void
{
- super.itemsCreatedHandler(event);
+ super.itemsCreatedHandler(event);
if(listModel.selectedIndex != -1)
selectionChangeHandler(null);
}
@@ -116,23 +117,23 @@ package org.apache.royale.jewel.beads.views
*/
override protected function
selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
+ var selectionBead:ISelectableItemRenderer;
var ir:IItemRenderer =
dataGroup.getItemRendererAt(lastSelectedIndex) as IItemRenderer;
- if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
ir =
dataGroup.getItemRendererAt(listModel.selectedIndex) as IItemRenderer;
if (ir)
- {
- selectionBead = (ir as
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
- lastSelectedIndex = listModel.selectedIndex;
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+ lastSelectedIndex = listModel.selectedIndex;
}
}
}
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
index a65bcb4..ec1f3de 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
@@ -25,7 +25,8 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.events.Event;
import org.apache.royale.html.beads.VirtualDataContainerView;
-
+ import org.apache.royale.utils.getSelectionRenderBead;
+
/**
* The VirtualListView class creates the visual elements of the
org.apache.royale.jewel.List
* component in a way that can be recicled to reuse as the user
scrolls the list getting performance improvements
@@ -72,50 +73,52 @@ package org.apache.royale.jewel.beads.views
*/
// override protected function
itemsCreatedHandler(event:Event):void
// {
- // super.itemsCreatedHandler(event);
+ // super.itemsCreatedHandler(event);
// if(listModel.selectedIndex != -1)
// selectionChangeHandler(null);
// }
- protected var firstElementIndex:int = 1;
+ protected var firstElementIndex:int = 1;
/**
* Retrieve the renderer for a given index
+ * @royaleignorecoercion
org.apache.royale.core.IIndexedItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
*/
- override public function
getItemRendererForIndex(index:int):IItemRenderer
- {
- if (contentView.numElements == 0)
- return null;
-
- var firstIndex:int = (contentView.getElementAt(firstElementIndex)
as IIndexedItemRenderer).index;
-
- if (index < firstIndex)
- return null;
- if (index >= (firstIndex + contentView.numElements))
- return null;
-
- return contentView.getElementAt(index - firstIndex +
firstElementIndex) as IItemRenderer;
- }
-
+ override public function
getItemRendererForIndex(index:int):IItemRenderer
+ {
+ if (contentView.numElements == 0)
+ return null;
+
+ var firstIndex:int =
(contentView.getElementAt(firstElementIndex) as IIndexedItemRenderer).index;
+
+ if (index < firstIndex)
+ return null;
+ if (index >= (firstIndex + contentView.numElements))
+ return null;
+
+ return contentView.getElementAt(index - firstIndex +
firstElementIndex) as IItemRenderer;
+ }
+
/**
* @private
- * @royaleignorecoercion
org.apache.royale.core.IIndexedItemRenderer
+ * @royaleignorecoercion org.apache.royale.core.IItemRenderer
*/
protected function selectionChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
- if (ir)
- {
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = false;
- }
- ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as
IItemRenderer;
- if (ir) {
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.selected = true;
- }
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastSelectedIndex);
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir =
dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = listModel.selectedIndex;
}
@@ -125,24 +128,24 @@ package org.apache.royale.jewel.beads.views
/**
* @private
* @royaleignorecoercion
org.apache.royale.core.IIndexedItemRenderer
- * * @royaleignorecoercion org.apache.royale.core.IRollOverModel
+ * @royaleignorecoercion org.apache.royale.core.IRollOverModel
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
- var selectionBead:ISelectableItemRenderer;
- var ir:IIndexedItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex) as IIndexedItemRenderer;
- if (ir)
- {
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = false;
- }
- ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex) as IIndexedItemRenderer;
- if (ir) {
- selectionBead = ir.getBeadByType(ISelectableItemRenderer) as
ISelectableItemRenderer;
- if (selectionBead)
- selectionBead.hovered = true;
- }
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IItemRenderer =
dataGroup.getItemRendererForIndex(lastRollOverIndex);
+ if (ir)
+ {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir = dataGroup.getItemRendererForIndex((listModel as
IRollOverModel).rollOverIndex);
+ if (ir) {
+ selectionBead = getSelectionRenderBead(ir);
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex = (listModel as
IRollOverModel).rollOverIndex;
}
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
index 218693a..b38ba13 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
@@ -51,6 +51,7 @@ import mx.collections.IHierarchicalData;
import mx.events.ListEvent;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IListDataItemRenderer;
+import org.apache.royale.utils.getSelectionRenderBead;
//--------------------------------------
// Events
@@ -231,12 +232,12 @@ public class AdvancedDataGridItemRenderer extends
StringItemRenderer
{
if (styleName == "textRollOverColor")
{
- selectionBead =
getBeadByType(ISelectableItemRenderer) as
AdvancedDataGridSelectableItemRendererBead;
+ selectionBead = getSelectionRenderBead(this) as
AdvancedDataGridSelectableItemRendererBead;
selectionBead.textRollOverColor = String(value);
}
else if (styleName == "textSelectedColor")
{
- selectionBead =
getBeadByType(ISelectableItemRenderer) as
AdvancedDataGridSelectableItemRendererBead;
+ selectionBead = getSelectionRenderBead(this) as
AdvancedDataGridSelectableItemRendererBead;
selectionBead.textSelectedColor = String(value);
}
else
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
index fc25a33..168d4fe 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
@@ -36,6 +36,7 @@ package mx.controls.beads
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.html.DataGridButtonBar;
+ import org.apache.royale.utils.getSelectionRenderBead;
use namespace mx_internal;
@@ -177,7 +178,7 @@ package mx.controls.beads
var ir:IItemRenderer = view.getItemRendererForIndex(index) as
IItemRenderer;
if (ir)
{
- var selectionBead:ISelectableItemRenderer =
ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ var selectionBead:ISelectableItemRenderer =
getSelectionRenderBead(ir);
selectionBead.selected = selected;
selectionBead.hovered = highlighted;
COMPILE::JS