This is an automated email from the ASF dual-hosted git repository.
carlosrovira 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 1bb1cdc jewel-listcontroller: simplify all code to extend the basic
one and left just jewel unique code
1bb1cdc is described below
commit 1bb1cdca93d48e8042df4a00183e8b0d1be3dbc6
Author: Carlos Rovira <[email protected]>
AuthorDate: Wed Feb 5 20:03:59 2020 +0100
jewel-listcontroller: simplify all code to extend the basic one and left
just jewel unique code
---
.../ListSingleSelectionMouseController.as | 115 +++------------------
1 file changed, 12 insertions(+), 103 deletions(-)
diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ListSingleSelectionMouseController.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ListSingleSelectionMouseController.as
index c18927a..b48f1a9 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ListSingleSelectionMouseController.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ListSingleSelectionMouseController.as
@@ -18,36 +18,31 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.controllers
{
- import org.apache.royale.core.IBeadController;
- import org.apache.royale.core.IItemRendererParent;
- 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.events.Event;
import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.events.ItemAddedEvent;
- import org.apache.royale.events.ItemClickedEvent;
- import org.apache.royale.events.ItemRemovedEvent;
- import org.apache.royale.html.beads.IListView;
+ import
org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController;
import org.apache.royale.jewel.beads.models.IJewelSelectionModel;
/**
- * The ListSingleSelectionMouseController class is a controller for
- * org.apache.royale.jewel.List. Controllers
- * watch for events from the interactive portions of a View and
+ * The Jewel ListSingleSelectionMouseController class is a controller for
+ * org.apache.royale.jewel.List.
+ *
+ * Controllers watch for events from the interactive portions of a View
and
* update the data model or dispatch a semantic event.
* This controller watches for events from the item renderers
* and updates an ISelectionModel (which only supports single
* selection). Other controller/model pairs would support
* various kinds of multiple selection.
+ *
+ * Jewel controller takes into account if the component
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.4
*/
- public class ListSingleSelectionMouseController implements
IBeadController
+ public class ListSingleSelectionMouseController extends
org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController
{
/**
* Constructor.
@@ -62,38 +57,6 @@ package org.apache.royale.jewel.beads.controllers
}
/**
- * The model.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- */
- protected var listModel:ISelectionModel;
-
- /**
- * The view.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- */
- protected var listView:IListView;
-
- /**
- * The parent of the item renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.4
- */
- protected var dataGroup:IItemRendererParent;
-
- private var _strand:IStrand;
-
- /**
* @copy org.apache.royale.core.IBead#strand
*
* @langversion 3.0
@@ -105,13 +68,9 @@ package org.apache.royale.jewel.beads.controllers
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
* @royaleignorecoercion org.apache.royale.core.IListView
*/
- public function set strand(value:IStrand):void
+ override public function set strand(value:IStrand):void
{
- _strand = value;
- listModel = value.getBeadByType(ISelectionModel) as
ISelectionModel;
- listView = value.getBeadByType(IListView) as IListView;
- IEventDispatcher(_strand).addEventListener("itemAdded",
handleItemAdded);
-
IEventDispatcher(_strand).addEventListener("itemRemoved", handleItemRemoved);
+ super.strand = value;
//if the list is composed as part of another component, with a
shared model (e.g. ComboBox) then it should not be the primary dispatcher
if (listModel is IJewelSelectionModel &&
!(IJewelSelectionModel(listModel).hasDispatcher)) {
@@ -125,61 +84,11 @@ package org.apache.royale.jewel.beads.controllers
}
/**
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+ *
+ * @param event
*/
- protected function handleItemAdded(event:ItemAddedEvent):void
- {
-
IEventDispatcher(event.item).addEventListener("itemClicked", selectedHandler);
-
IEventDispatcher(event.item).addEventListener("itemRollOver", rolloverHandler);
-
IEventDispatcher(event.item).addEventListener("itemRollOut", rolloutHandler);
- }
-
- /**
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- protected function
handleItemRemoved(event:ItemRemovedEvent):void
- {
-
IEventDispatcher(event.item).removeEventListener("itemClicked",
selectedHandler);
-
IEventDispatcher(event.item).removeEventListener("itemRollOver",
rolloverHandler);
-
IEventDispatcher(event.item).removeEventListener("itemRollOut", rolloutHandler);
- }
-
- protected function selectedHandler(event:ItemClickedEvent):void
- {
- listModel.selectedIndex = event.index;
- listModel.selectedItem = event.data;
- listView.host.dispatchEvent(new Event(Event.CHANGE));
- }
-
protected function modelChangeHandler(event:Event):void{
IEventDispatcher(_strand).dispatchEvent(new Event(event.type));
}
-
- /**
- * @royaleemitcoercion
org.apache.royale.core.ISelectableItemRenderer
- * @royaleignorecoercion org.apache.royale.core.IRollOverModel
- */
- protected function rolloverHandler(event:Event):void
- {
- var renderer:ISelectableItemRenderer =
event.currentTarget as ISelectableItemRenderer;
- if (renderer) {
- IRollOverModel(listModel).rollOverIndex =
renderer.index;
- }
- }
-
- /**
- * @royaleemitcoercion
org.apache.royale.core.ISelectableItemRenderer
- * @royaleignorecoercion org.apache.royale.core.IRollOverModel
- */
- protected function rolloutHandler(event:Event):void
- {
- var renderer:ISelectableItemRenderer =
event.currentTarget as ISelectableItemRenderer;
- if (renderer) {
- renderer.hovered = false;
- renderer.down = false;
- IRollOverModel(listModel).rollOverIndex = -1;
- }
- }
-
}
}