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;
-                       }
-               }
-
        }
 }

Reply via email to