This is an automated email from the ASF dual-hosted git repository. carlosrovira pushed a commit to branch feature/jewel-ui-set in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 18568d106551989ea5338350b187d055b60f92d3 Author: Harbs <[email protected]> AuthorDate: Fri Mar 16 13:05:15 2018 +0200 Moved util functions to package-level ones (not sure about removeAllStyles — it seemed to have had a bug so it was probably not functional either way) --- .../projects/Core/src/main/royale/CoreClasses.as | 5 +++ .../apache/royale/utils/cssclasslist/addStyles.as | 47 ++++++++++++++++++++++ .../royale/utils/cssclasslist/removeAllStyles.as | 41 +++++++++++++++++++ .../royale/utils/cssclasslist/removeStyles.as | 46 +++++++++++++++++++++ .../royale/utils/cssclasslist/toggleStyle.as | 39 ++++++++++++++++++ .../main/royale/org/apache/royale/core/UIBase.as | 4 +- .../main/royale/org/apache/royale/jewel/Button.as | 8 ++-- 7 files changed, 184 insertions(+), 6 deletions(-) diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as index 2ec8859..3df4330 100644 --- a/frameworks/projects/Core/src/main/royale/CoreClasses.as +++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as @@ -226,6 +226,11 @@ internal class CoreClasses import org.apache.royale.utils.object.defineSimpleGetter; defineSimpleGetter; import org.apache.royale.utils.object.defineProperty; defineProperty; import org.apache.royale.utils.object.defineSimpleProperty; defineSimpleProperty; + + import org.apache.royale.utils.cssclasslist.removeAllStyles; removeAllStyles; + import org.apache.royale.utils.cssclasslist.removeStyles; removeStyles; + import org.apache.royale.utils.cssclasslist.toggleStyle; toggleStyle; + import org.apache.royale.utils.cssclasslist.addStyles; addStyles; } //Package Level Functions import org.apache.royale.debugging.assert; assert; diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/addStyles.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/addStyles.as new file mode 100644 index 0000000..aa995a0 --- /dev/null +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/addStyles.as @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 "Licens"); 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.utils.cssclasslist +{ + import org.apache.royale.core.IUIBase; + + /** + * Add one or more styles to the component. If the specified class already + * exist, the class will not be added. + * + * @param value, a String with the style (or styles separated by an space) to + * add from the component. If the string is empty doesn't perform any action + * + * @langversion 3.0 + * @productversion Royale 0.9.3 + */ + public function addStyles(wrapper:IUIBase, value:String):void + { + if (value == "") return; + + if (value.indexOf(" ") >= 0) + { + var classes:Array = value.split(" "); + wrapper.element.classList.add.apply(wrapper.element.classList, classes); + } else + { + wrapper.element.classList.add(value); + } + } + +} diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeAllStyles.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeAllStyles.as new file mode 100644 index 0000000..4d19c79 --- /dev/null +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeAllStyles.as @@ -0,0 +1,41 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 "Licens"); 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.utils.cssclasslist +{ + import org.apache.royale.core.IUIBase; + + /** + * Removes all styles + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.3 + */ + public function removeAllStyles(wrapper:IUIBase):void + { + var classList:DOMTokenList = wrapper.element.classList; + var i:int; + for( i = classList.length -1; i > 0; i-- ) + { + classList.remove(classList[i]); + } + } + +} diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeStyles.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeStyles.as new file mode 100644 index 0000000..21f59e0 --- /dev/null +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/removeStyles.as @@ -0,0 +1,46 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 "Licens"); 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.utils.cssclasslist +{ + import org.apache.royale.core.IUIBase; + + /** + * Removes one or more styles from the component. Removing a class that does not + * exist, does not throw any error + * + * @param value, a String with the style (or styles separated by an space) to + * remove from the component. If the string is empty doesn't perform any action + * + * @langversion 3.0 + * @productversion Royale 0.9.3 + */ + public function removeStyles(wrapper:IUIBase, value:String):void + { + if (value == "") return; + + if (value.indexOf(" ") >= 0) + { + var classes:Array = value.split(" "); + wrapper.element.classList.remove.apply(wrapper.element.classList, classes); + } else + { + wrapper.element.classList.remove(value); + } + } +} diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/toggleStyle.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/toggleStyle.as new file mode 100644 index 0000000..8ef9224 --- /dev/null +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/cssclasslist/toggleStyle.as @@ -0,0 +1,39 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 "Licens"); 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.utils.cssclasslist +{ + import org.apache.royale.core.IUIBase; + + /** + * Adds or removes a single style. + * + * The first parameter removes the style from an element, and returns false. + * If the style does not exist, it is added to the element, and the return value is true. + * + * The optional second parameter is a Boolean value that forces the class to be added + * or removed, regardless of whether or not it already existed. + * + * @langversion 3.0 + * @productversion Royale 0.9.3 + */ + public function toggleStyle(wrapper:IUIBase, value:String, force:Boolean = false):Boolean + { + return wrapper.element.classList.toggle(value, force); + } +} diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/core/UIBase.as index de5e089..c14e113 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/core/UIBase.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/core/UIBase.as @@ -37,7 +37,7 @@ package org.apache.royale.core { import org.apache.royale.html.util.addElementToWrapper; import org.apache.royale.utils.CSSUtils; - import org.apache.royale.util.ClassListUtil; + import org.apache.royale.utils.cssclasslist.addStyles; } /** @@ -1085,7 +1085,7 @@ package org.apache.royale.core COMPILE::JS protected function setClassName(value:String):void { - ClassListUtil.addStyles(this, value); + addStyles(this, value); } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Button.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Button.as index 5e4dba9..4059764 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Button.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Button.as @@ -23,7 +23,7 @@ package org.apache.royale.jewel COMPILE::JS { import org.apache.royale.core.WrappedHTMLElement; - import org.apache.royale.util.ClassListUtil; + import org.apache.royale.utils.cssclasslist.toggleStyle; } /** @@ -88,7 +88,7 @@ package org.apache.royale.jewel COMPILE::JS { - ClassListUtil.toggleStyle(this, "primary", value); + toggleStyle(this, "primary", value); } } } @@ -118,7 +118,7 @@ package org.apache.royale.jewel COMPILE::JS { - ClassListUtil.toggleStyle(this, "secondary", value); + toggleStyle(this, "secondary", value); } } } @@ -148,7 +148,7 @@ package org.apache.royale.jewel COMPILE::JS { - ClassListUtil.toggleStyle(this, "emphasized", value); + toggleStyle(this, "emphasized", value); } } } -- To stop receiving notification emails like this one, please contact [email protected].
