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 d489256  add SingleSelectionArrayListModel to jewel
d489256 is described below

commit d489256e24a4fcfb5e0cb20bfa9822ec6b83a4ec
Author: Carlos Rovira <carlosrov...@apache.org>
AuthorDate: Sat May 26 15:28:39 2018 +0200

    add SingleSelectionArrayListModel to jewel
---
 .../projects/Jewel/src/main/resources/defaults.css |  2 +-
 .../projects/Jewel/src/main/royale/JewelClasses.as |  1 +
 .../beads/models/SingleSelectionArrayListModel.as  | 91 ++++++++++++++++++++++
 .../Jewel/src/main/sass/components/_list.sass      |  2 +-
 4 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css 
b/frameworks/projects/Jewel/src/main/resources/defaults.css
index 083204a..95c19d1 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -168,7 +168,7 @@ j|List {
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer");
   IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.ScrollingViewport");
   IViewportModel: 
ClassReference("org.apache.royale.core.beads.models.ViewportModel");
-  IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.SingleSelectionCollectionViewModel");
+  IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.SingleSelectionArrayListModel");
   IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.jewel.beads.DataItemRendererFactoryForCollectionView");
 }
 
diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as 
b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index 385f1cc..b2ec58b 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -44,6 +44,7 @@ package
         import org.apache.royale.jewel.beads.views.ListView; ListView;
 
         import 
org.apache.royale.jewel.beads.models.SingleSelectionCollectionViewModel; 
SingleSelectionCollectionViewModel;
+        import 
org.apache.royale.jewel.beads.models.SingleSelectionArrayListModel; 
SingleSelectionArrayListModel;
         import org.apache.royale.jewel.supportClasses.ScrollingViewport; 
ScrollingViewport;
         
         COMPILE::SWF
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/SingleSelectionArrayListModel.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/SingleSelectionArrayListModel.as
new file mode 100644
index 0000000..9089200
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/SingleSelectionArrayListModel.as
@@ -0,0 +1,91 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.jewel.beads.models
+{
+       import org.apache.royale.collections.ICollectionView;
+       import org.apache.royale.collections.ArrayList;
+       import org.apache.royale.events.Event;
+
+    /**
+     *  The SingleSelectionCollectionViewModel class is a selection model for
+     *  a dataProvider that is an ICollectionView. It assumes that items
+     *  can be fetched from the dataProvider using 
dataProvider.getItemAt(index).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.3
+     */
+       public class SingleSelectionArrayListModel extends 
SingleSelectionCollectionViewModel
+       {
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         */
+               public function SingleSelectionArrayListModel()
+               {
+                       
+               }
+
+               private var _dataProvider:ICollectionView;
+
+               [Bindable("dataProviderChanged")]
+        /**
+         *  @copy org.apache.royale.core.ISelectionModel#dataProvider
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         */
+               override public function get dataProvider():Object
+               {
+                       return _dataProvider;
+               }
+
+        /**
+         *  @private
+                *  @royaleignorecoercion 
org.apache.royale.collections.ICollectionView
+         */
+               override public function set dataProvider(value:Object):void
+               {
+            if (value == _dataProvider) return;
+
+                       if (value is Array)
+                               _dataProvider = new ArrayList(value as Array);
+                       else
+               _dataProvider = value as ICollectionView;
+
+                       if(!_dataProvider || _selectedIndex >= 
_dataProvider.length)
+                               _selectedIndex = -1;
+            
+                       _selectedItem = _selectedIndex == -1 ? null : 
_dataProvider.getItemAt(_selectedIndex);
+                       
+                       dispatchEvent(new Event("dataProviderChanged"));
+               }
+
+               private var _selectedIndex:int = -1;
+               private var _selectedItem:Object;
+        
+       }
+}
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_list.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_list.sass
index 89af014..a54f92c 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_list.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_list.sass
@@ -29,7 +29,7 @@ j|List
     IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer")
     IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.ScrollingViewport")
     IViewportModel: 
ClassReference("org.apache.royale.core.beads.models.ViewportModel")
-    IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.SingleSelectionCollectionViewModel")
+    IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.SingleSelectionArrayListModel")
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.jewel.beads.DataItemRendererFactoryForCollectionView")
     //IBeadModel: 
ClassReference("org.apache.royale.core.beads.models.ArraySelectionModel")
     //IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData")

-- 
To stop receiving notification emails like this one, please contact
carlosrov...@apache.org.

Reply via email to