You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2016/01/11 19:29:15 UTC
git commit: [flex-asjs] [refs/heads/develop] - Separated event levels
in List-based components so each level handles events meaningful to it and
dispatches higher-level events as necessary.
Repository: flex-asjs
Updated Branches:
refs/heads/develop 0a2709e6c -> 0d5a4c8e0
Separated event levels in List-based components so each level handles events meaningful to it and dispatches higher-level events as necessary.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/0d5a4c8e
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/0d5a4c8e
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/0d5a4c8e
Branch: refs/heads/develop
Commit: 0d5a4c8e0fb82e7326b464db80384a92497456d0
Parents: 0a2709e
Author: Peter Ent <pe...@apache.org>
Authored: Mon Jan 11 13:29:12 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Jan 11 13:29:12 2016 -0500
----------------------------------------------------------------------
.../Core/as/src/org/apache/flex/events/Event.as | 5 +
.../org/apache/flex/events/ItemAddedEvent.as | 88 ++++++++++++++
.../org/apache/flex/events/ItemClickedEvent.as | 115 +++++++++++++++++++
.../org/apache/flex/events/ItemRemovedEvent.as | 88 ++++++++++++++
.../controllers/ItemRendererMouseController.as | 33 +++---
.../ListSingleSelectionMouseController.as | 47 ++++++--
.../ButtonBarButtonItemRenderer.as | 14 ++-
.../flex/html/supportClasses/DataGroup.as | 62 +++-------
8 files changed, 378 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/Core/as/src/org/apache/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/as/src/org/apache/flex/events/Event.as b/frameworks/projects/Core/as/src/org/apache/flex/events/Event.as
index 765db3d..008909b 100644
--- a/frameworks/projects/Core/as/src/org/apache/flex/events/Event.as
+++ b/frameworks/projects/Core/as/src/org/apache/flex/events/Event.as
@@ -124,5 +124,10 @@ package org.apache.flex.events
{
// do nothing
}
+
+ public function cloneEvent():org.apache.flex.events.Event
+ {
+ return this;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemAddedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemAddedEvent.as b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemAddedEvent.as
new file mode 100644
index 0000000..24707c0
--- /dev/null
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemAddedEvent.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+
+// 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.flex.events
+{
+
+ import org.apache.flex.events.CustomEvent;
+
+ /**
+ * The ItemAddedEvent is dispatched by IItemRendererParent objects whenenver an
+ * itemRenderer is added.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ItemAddedEvent extends CustomEvent
+ {
+
+ //--------------------------------------
+ // Constructor
+ //--------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ItemAddedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+
+ item = null;
+ }
+
+ /**
+ * The item being added.
+ *
+ * @export
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var item:Object;
+
+ /**
+ * @private
+ */
+ override public function cloneEvent():org.apache.flex.events.Event
+ {
+ var newEvent:ItemAddedEvent = new ItemAddedEvent(type);
+ newEvent.item = item;
+ return newEvent;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemClickedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemClickedEvent.as b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemClickedEvent.as
new file mode 100644
index 0000000..ac943b0
--- /dev/null
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemClickedEvent.as
@@ -0,0 +1,115 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+
+// 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.flex.events
+{
+
+ import org.apache.flex.events.CustomEvent;
+
+ /**
+ * The ItemClickedEvent is a custom event issued by an itemRenderer to
+ * convey information about itself when it has determined that the
+ * event(s) happening to it constitute a 'click' on itself.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ItemClickedEvent extends CustomEvent
+ {
+
+ //--------------------------------------
+ // Constructor
+ //--------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ItemClickedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+
+ index = -1;
+ data = null;
+ multipleSelection = false;
+ }
+
+ /**
+ * The index of the item beginning with zero.
+ *
+ * @export
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var index:Number;
+
+ /**
+ * The data of the item.
+ *
+ * @export
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var data:Object;
+
+ /**
+ * Whether or not this click is part of a multi-selection sequence.
+ *
+ * @export
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var multipleSelection:Boolean;
+
+ /**
+ * @private
+ */
+ override public function cloneEvent():org.apache.flex.events.Event
+ {
+ var newEvent:ItemClickedEvent = new ItemClickedEvent(type);
+ newEvent.index = index;
+ newEvent.data = data;
+ newEvent.multipleSelection = multipleSelection;
+ return newEvent;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemRemovedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemRemovedEvent.as b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemRemovedEvent.as
new file mode 100644
index 0000000..d638084
--- /dev/null
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/events/ItemRemovedEvent.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+
+// 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.flex.events
+{
+
+ import org.apache.flex.events.CustomEvent;
+
+ /**
+ * The ItemRemovedEvent is dispatched by IItemRendererParent objects whenenver an
+ * itemRenderer is removed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ItemRemovedEvent extends CustomEvent
+ {
+
+ //--------------------------------------
+ // Constructor
+ //--------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ItemRemovedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+
+ item = null;
+ }
+
+ /**
+ * The item being removed.
+ *
+ * @export
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var item:Object;
+
+ /**
+ * @private
+ */
+ override public function cloneEvent():org.apache.flex.events.Event
+ {
+ var newEvent:ItemRemovedEvent = new ItemRemovedEvent(type);
+ newEvent.item = item;
+ return newEvent;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
index ca06c77..0c637bf 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
@@ -33,9 +33,10 @@ COMPILE::JS {
import goog.events.EventType;
import goog.events;
}
+ import org.apache.flex.events.ItemClickedEvent;
/**
- * The ItemRendererMouseController class bead handles mouse events in itemRenderers. This
+ * The ItemRendererMouseController class can mouse events in itemRenderers. This
* includes roll-overs, mouse down, and mouse up. These platform-specific events are then
* re-dispatched as FlexJS events.
*
@@ -100,8 +101,7 @@ COMPILE::JS {
var target:ISelectableItemRenderer = event.target as ISelectableItemRenderer;
if (target)
{
- target.hovered = true;
- target.dispatchEvent(new Event("itemRendererRollOver",true));
+ target.dispatchEvent(new Event("itemRollOver",true));
}
}
@@ -110,8 +110,7 @@ COMPILE::JS {
{
var target:ISelectableItemRenderer = event.target as ISelectableItemRenderer;
if (target) {
- target.hovered = true;
- target.dispatchEvent(new Event("itemRendererRollOver",true));
+ target.dispatchEvent(new Event("itemRollOver",true));
}
}
@@ -124,9 +123,7 @@ COMPILE::JS {
var target:ISelectableItemRenderer = event.target as ISelectableItemRenderer;
if (target)
{
- target.hovered = false;
- target.down = false;
- target.dispatchEvent(new Event("itemRendererRollOut",true));
+ target.dispatchEvent(new Event("itemRollOut",true));
}
}
@@ -136,9 +133,7 @@ COMPILE::JS {
var target:ISelectableItemRenderer = event.target as ISelectableItemRenderer;
if (target)
{
- target.hovered = false;
- target.down = false;
- target.dispatchEvent(new Event("itemRendererRollOut",true));
+ target.dispatchEvent(new Event("itemRollOut",true));
}
}
@@ -179,9 +174,13 @@ COMPILE::JS {
var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
if (target)
{
+ var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+ newEvent.data = target.data;
+ newEvent.multipleSelection = event.shiftKey;
+ newEvent.index = target.index;
+
target.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
- target.selected = true;
- target.dispatchEvent(new Event("selected"));
+ target.dispatchEvent(newEvent);
}
}
@@ -194,8 +193,12 @@ COMPILE::JS {
var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
if (target)
{
- target.selected = true;
- target.dispatchEvent(new Event("selected"));
+ var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+ newEvent.data = target.data;
+ newEvent.multipleSelection = event.shiftKey;
+ newEvent.index = target.index;
+
+ target.dispatchEvent(newEvent);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
index 9760591..e8a1f1f 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
@@ -26,8 +26,12 @@ package org.apache.flex.html.beads.controllers
import org.apache.flex.core.IStrand;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.ItemAddedEvent;
+ import org.apache.flex.events.ItemRemovedEvent;
import org.apache.flex.events.MouseEvent;
import org.apache.flex.html.beads.IListView;
+
+ import org.apache.flex.events.ItemClickedEvent;
/**
* The ListSingleSelectionMouseController class is a controller for
@@ -103,25 +107,48 @@ package org.apache.flex.html.beads.controllers
_strand = value;
listModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
listView = value.getBeadByType(IListView) as IListView;
- dataGroup = listView.dataGroup;
- dataGroup.addEventListener("selected", selectedHandler, true);
- IEventDispatcher(_strand).addEventListener(MouseEvent.ROLL_OVER, rolloverHandler);
+ IEventDispatcher(_strand).addEventListener("itemAdded", handleItemAdded);
+ IEventDispatcher(_strand).addEventListener("itemRemoved", handleItemRemoved);
+ }
+
+ private function handleItemAdded(event:ItemAddedEvent):void
+ {
+ IEventDispatcher(event.item).addEventListener("itemClicked", selectedHandler);
+ IEventDispatcher(event.item).addEventListener("itemRollOver", rolloverHandler);
+ IEventDispatcher(event.item).addEventListener("itemRollOut", rolloutHandler);
}
- private function selectedHandler(event:Event):void
+ private function handleItemRemoved(event:ItemAddedEvent):void
+ {
+ IEventDispatcher(event.item).removeEventListener("itemClicked", selectedHandler);
+ IEventDispatcher(event.item).removeEventListener("itemRollOver", rolloverHandler);
+ IEventDispatcher(event.item).removeEventListener("itemRollOut", rolloutHandler);
+ }
+
+ private function selectedHandler(event:ItemClickedEvent):void
{
- listModel.selectedIndex = ISelectableItemRenderer(event.target).index;
+ listModel.selectedIndex = event.index;
listView.host.dispatchEvent(new Event("change"));
}
- private function rolloverHandler(event:Event):void
- {
- var renderer:ISelectableItemRenderer = event.target as ISelectableItemRenderer;
+ private function rolloverHandler(event:Event):void
+ {
+ var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
if (renderer) {
- //trace("ListSingleSelectionMouseController.ROLL_OVER");
+ renderer.hovered = true;
IRollOverModel(listModel).rollOverIndex = renderer.index;
}
- }
+ }
+
+ private function rolloutHandler(event:Event):void
+ {
+ var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
+ if (renderer) {
+ renderer.hovered = false;
+ renderer.down = false;
+ IRollOverModel(listModel).rollOverIndex = -1;
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
index 64a9e43..a461fac 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
@@ -22,8 +22,10 @@ package org.apache.flex.html.supportClasses
import org.apache.flex.core.IItemRendererParent;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
+ import org.apache.flex.events.MouseEvent;
import org.apache.flex.html.TextButton;
import org.apache.flex.html.beads.ITextItemRenderer;
+ import org.apache.flex.events.ItemClickedEvent;
/**
* The ButtonBarButtonItemRenderer class handles the display of each item for the
@@ -63,10 +65,13 @@ package org.apache.flex.html.supportClasses
/**
* @private
*/
- private function handleClickEvent(event:Event):void
+ private function handleClickEvent(event:MouseEvent):void
{
- var parent:Object = itemRendererParent;
- (parent as UIBase).dispatchEvent(new Event("selected", this));
+ var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+ newEvent.multipleSelection = event.shiftKey;
+ newEvent.index = index;
+ newEvent.data = data;
+ dispatchEvent(newEvent);
}
/**
@@ -102,6 +107,9 @@ package org.apache.flex.html.supportClasses
var added:Boolean = false;
if (textButton == null) {
textButton = new TextButton();
+
+ // listen for clicks on the button and translate them into
+ // an itemClicked event.
textButton.addEventListener('click',handleClickEvent);
added = true;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d5a4c8e/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataGroup.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataGroup.as
index c156a6f..15b6587 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataGroup.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataGroup.as
@@ -22,10 +22,14 @@ package org.apache.flex.html.supportClasses
import org.apache.flex.core.IItemRenderer;
import org.apache.flex.core.IItemRendererParent;
import org.apache.flex.core.IRollOverModel;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.events.Event;
+ import org.apache.flex.events.ItemAddedEvent;
+ import org.apache.flex.events.ItemClickedEvent;
+ import org.apache.flex.events.ItemRemovedEvent;
/**
* The DataGroup class is the IItemRendererParent used internally
@@ -58,59 +62,25 @@ package org.apache.flex.html.supportClasses
{
super.addElement(c, dispatchEvent);
- var dispatcher:IEventDispatcher = c as IEventDispatcher;
- dispatcher.addEventListener("itemRendererRollOver", handleRollOver);
- dispatcher.addEventListener("itemRendererRollOut", handleRollOut);
+ var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded");
+ newEvent.item = c;
+
+ var strand:IEventDispatcher = parent as IEventDispatcher;
+ strand.dispatchEvent(newEvent);
}
/**
* @private
*/
override public function removeElement(c:Object, dispatchEvent:Boolean = true):void
- {
- var dispatcher:IEventDispatcher = c as IEventDispatcher;
- dispatcher.removeEventListener("itemRendererRollOver", handleRollOver);
- dispatcher.removeEventListener("itemRendererRollOut", handleRollOut);
-
+ {
super.removeElement(c, dispatchEvent);
- }
-
- /**
- * @private
- */
- private function handleRollOver(event:Event):void
- {
- var strand:IStrand = parent as IStrand;
- var rollModel:IRollOverModel = strand.getBeadByType(IRollOverModel) as IRollOverModel;
- if (rollModel) {
- var n:int = numElements;
- for (var i:int=0; i < n; i++) {
- var renderer:Object = getElementAt(i);
- if (renderer == event.currentTarget) {
- rollModel.rollOverIndex = i;
- break;
- }
- }
- }
- }
-
- /**
- * @private
- */
- private function handleRollOut(event:Event):void
- {
- var strand:IStrand = parent as IStrand;
- var rollModel:IRollOverModel = strand.getBeadByType(IRollOverModel) as IRollOverModel;
- if (rollModel) {
- var n:int = numElements;
- for (var i:int=0; i < n; i++) {
- var renderer:Object = getElementAt(i);
- if (renderer == event.currentTarget) {
- rollModel.rollOverIndex = -1;
- break;
- }
- }
- }
+
+ var newEvent:ItemRemovedEvent = new ItemRemovedEvent("itemRemoved");
+ newEvent.item = c;
+
+ var strand:IEventDispatcher = parent as IEventDispatcher;
+ strand.dispatchEvent(newEvent);
}
/**