You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2019/12/29 11:44:34 UTC

[royale-asjs] branch develop updated: jewel-datacontainer: Make StyledUIBase the base class for DataContainerBase, List, DropDownList and Table components

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 32e0973  jewel-datacontainer: Make StyledUIBase the base class for DataContainerBase, List, DropDownList and Table components
32e0973 is described below

commit 32e0973f523bb54b7286d78502db59be1b4b2821
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sun Dec 29 12:44:22 2019 +0100

    jewel-datacontainer: Make StyledUIBase the base class for DataContainerBase, List, DropDownList and Table components
---
 .../projects/Jewel/src/main/royale/JewelClasses.as |   1 -
 .../org/apache/royale/jewel/DataContainer.as       |   2 +-
 .../royale/org/apache/royale/jewel/DropDownList.as |   2 +-
 .../main/royale/org/apache/royale/jewel/List.as    |  36 +-----
 .../main/royale/org/apache/royale/jewel/Table.as   |   2 +-
 .../jewel/supportClasses/DataContainerBase.as      | 132 ---------------------
 .../supportClasses/container/DataContainerBase.as  | 125 +++++++++++++++++++
 7 files changed, 130 insertions(+), 170 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index cb3102a..a30b67f 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -102,7 +102,6 @@ package
         import org.apache.royale.jewel.supportClasses.ISelectableContent; ISelectableContent;
         import org.apache.royale.jewel.supportClasses.textinput.ITextInput; ITextInput;
 
-        import org.apache.royale.jewel.supportClasses.DataContainerBase; DataContainerBase;
         import org.apache.royale.jewel.supportClasses.Viewport; Viewport;
         import org.apache.royale.jewel.supportClasses.NoViewport; NoViewport;
         import org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport; ScrollingViewport;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataContainer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataContainer.as
index 1198377..64f7197 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataContainer.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DataContainer.as
@@ -23,7 +23,7 @@ package org.apache.royale.jewel
 	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IListWithPresentationModel;
 	import org.apache.royale.jewel.beads.models.ListPresentationModel;
-	import org.apache.royale.jewel.supportClasses.DataContainerBase;
+	import org.apache.royale.jewel.supportClasses.container.DataContainerBase;
 
 	/**
 	 *  Indicates that the initialization of the list is complete.
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DropDownList.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DropDownList.as
index ee96cb8..795c425 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DropDownList.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DropDownList.as
@@ -31,7 +31,7 @@ package org.apache.royale.jewel
     import org.apache.royale.core.ISelectionModel;
     import org.apache.royale.html.elements.Select;
     import org.apache.royale.jewel.beads.models.ListPresentationModel;
-    import org.apache.royale.jewel.supportClasses.DataContainerBase;
+    import org.apache.royale.jewel.supportClasses.container.DataContainerBase;
 
 
     //--------------------------------------
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
index e956765..0eeb95d 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
@@ -23,8 +23,7 @@ package org.apache.royale.jewel
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.ISelectionModel;
 	import org.apache.royale.jewel.beads.models.ListPresentationModel;
-	import org.apache.royale.jewel.supportClasses.DataContainerBase;
-	import org.apache.royale.utils.IEmphasis;
+	import org.apache.royale.jewel.supportClasses.container.DataContainerBase;
 
 	/**
 	 *  Indicates that the initialization of the list is complete.
@@ -64,7 +63,7 @@ package org.apache.royale.jewel
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class List extends DataContainerBase implements IEmphasis
+	public class List extends DataContainerBase
 	{
 		/**
 		 *  constructor.
@@ -228,36 +227,5 @@ package org.apache.royale.jewel
 			}
 			return presModel;
 		}
-
-		private var _emphasis:String;
-        /**
-		 *  Applies emphasis color display. Possible constant values are: PRIMARY, SECONDARY, EMPHASIZED.
-         *  Colors are defined in royale jewel theme CSS.
-         * 
-         *  Left without value to get the default look (light or dark).
-         *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-        public function get emphasis():String
-        {
-            return _emphasis;
-        }
-        [Inspectable(category="General", enumeration="primary,secondary,emphasized")]
-        public function set emphasis(value:String):void
-        {
-            if (_emphasis != value)
-            {
-                if(_emphasis)
-                {
-					toggleClass(_emphasis, false);
-                }
-                _emphasis = value;
-
-                toggleClass(_emphasis, value);
-            }
-        }
    	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Table.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Table.as
index aab7d64..1371ddc 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Table.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Table.as
@@ -26,7 +26,7 @@ package org.apache.royale.jewel
     }
 	import org.apache.royale.core.ISelectionModel;
 	import org.apache.royale.jewel.beads.models.TableModel;
-	import org.apache.royale.jewel.supportClasses.DataContainerBase;
+	import org.apache.royale.jewel.supportClasses.container.DataContainerBase;
 	
 	[DefaultProperty("columns")]
 
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/DataContainerBase.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/DataContainerBase.as
deleted file mode 100644
index 93a6ab1..0000000
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/DataContainerBase.as
+++ /dev/null
@@ -1,132 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.supportClasses
-{
-    import org.apache.royale.core.DataContainerBase;
-    import org.apache.royale.utils.IClassSelectorListSupport;
-    import org.apache.royale.utils.ClassSelectorList;
-
-    public class DataContainerBase extends org.apache.royale.core.DataContainerBase implements IClassSelectorListSupport
-    {
-        /**
-         *  Constructor.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
-        public function DataContainerBase()
-		{
-            classSelectorList = new ClassSelectorList(this);
-			super();
-		}
-
-        protected var classSelectorList:ClassSelectorList;
-
-        COMPILE::JS
-        override protected function setClassName(value:String):void
-        {
-            classSelectorList.addNames(value);
-        }
-
-        /**
-         * Add a class selector to the list.
-         * 
-         * @param name Name of selector to add.
-         * 
-         * @langversion 3.0
-         * @playerversion Flash 10.2
-         * @playerversion AIR 2.6
-         * @productversion Royale 0.9.3
-         */
-        public function addClass(name:String):void
-        {
-            COMPILE::JS
-            {
-            classSelectorList.add(name);
-            }
-        }
-
-        /**
-         * Removes a class selector from the list.
-         * 
-         * @param name Name of selector to remove.
-         *
-         * @royaleignorecoercion HTMLElement
-         * @royaleignorecoercion DOMTokenList
-         * 
-         * @langversion 3.0
-         * @playerversion Flash 10.2
-         * @playerversion AIR 2.6
-         * @productversion Royale 0.9.3
-         */
-        public function removeClass(name:String):void
-        {
-            COMPILE::JS
-            {
-            classSelectorList.remove(name);
-            }
-        }
-
-        /**
-         * Add or remove a class selector to/from the list.
-         * 
-         * @param name Name of selector to add or remove.
-         * @param value True to add, False to remove.
-         * 
-         * @langversion 3.0
-         * @playerversion Flash 10.2
-         * @playerversion AIR 2.6
-         * @productversion Royale 0.9.3
-         */
-        public function toggleClass(name:String, value:Boolean):void
-        {
-            COMPILE::JS
-            {
-            classSelectorList.toggle(name, value);
-            }
-        }
-
-        /**
-		 *  Search for the name in the element class list 
-		 *
-         *  @param name Name of selector to find.
-         *  @return return true if the name is found or false otherwise.
-         * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.3
-		 */
-		public function containsClass(name:String):Boolean
-        {
-            COMPILE::JS
-            {
-            return classSelectorList.contains(name);    
-            }
-            COMPILE::SWF
-            {//not implemented
-            return false;
-            }
-        }
-
-    }
-
-}
\ No newline at end of file
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/container/DataContainerBase.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/container/DataContainerBase.as
new file mode 100644
index 0000000..c4ef1ab
--- /dev/null
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/container/DataContainerBase.as
@@ -0,0 +1,125 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.supportClasses.container
+{
+	import org.apache.royale.core.IFactory;
+	import org.apache.royale.core.IItemRendererProvider;
+	import org.apache.royale.core.ValuesManager;
+	import org.apache.royale.events.Event;
+	
+	/**
+	 *  Indicates that the initialization of the list is complete.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.9.7
+	 */
+	[Event(name="initComplete", type="org.apache.royale.events.Event")]
+    
+    /**
+     *  The DataContainerBase class is the base class for components that
+	 *  that have generated content, like lists.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.7
+     */
+	public class DataContainerBase extends ContainerBase implements IItemRendererProvider
+	{
+        /**
+         *  Constructor.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.7
+         */
+		public function DataContainerBase()
+		{
+			super();
+		}
+		
+		/*
+		* UIBase
+		*/
+		
+		private var _DCinitialized:Boolean;
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			if (!_DCinitialized)
+			{
+				ValuesManager.valuesImpl.init(this);
+				_DCinitialized = true;
+			}
+			
+			super.addedToParent();
+						
+			dispatchEvent(new Event("initComplete"));
+		}
+		
+		/*
+		 * IList
+		 */
+		
+		/**
+		 * Returns the sub-component that parents all of the item renderers.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.7
+		 * 	@royaleignorecoercion org.apache.royale.html.beads.IListView
+		public function get dataGroup():IItemRendererParent
+		{
+			// The JS-side's view.dataGroup is actually this instance of DataContainerBase
+			return (view as IListView).dataGroup;
+		}
+		 */
+		
+		/*
+		* IItemRendererProvider
+		*/
+		
+		private var _itemRenderer:IFactory = null;
+		
+		/**
+		 *  The class or factory used to display each item.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.7
+		 */
+		public function get itemRenderer():IFactory
+		{
+			return _itemRenderer;
+		}
+		public function set itemRenderer(value:IFactory):void
+		{
+			_itemRenderer = value;
+		}
+				
+    }
+}