You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pu...@apache.org on 2020/09/29 10:20:42 UTC
[royale-asjs] branch develop updated: Create NameUtil.as
This is an automated email from the ASF dual-hosted git repository.
pushminakazi 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 4bd79b2 Create NameUtil.as
4bd79b2 is described below
commit 4bd79b22132a15062441d98f848e44aa745e5c6f
Author: pashminakazi <42...@users.noreply.github.com>
AuthorDate: Tue Sep 29 15:20:32 2020 +0500
Create NameUtil.as
---
.../MXRoyale/src/main/royale/mx/utils/NameUtil.as | 189 +++++++++++++++++++++
1 file changed, 189 insertions(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/utils/NameUtil.as b/frameworks/projects/MXRoyale/src/main/royale/mx/utils/NameUtil.as
new file mode 100644
index 0000000..455d02c
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/utils/NameUtil.as
@@ -0,0 +1,189 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.utils
+{
+
+//import flash.display.DisplayObject;
+import mx.core.UIComponent;
+import mx.core.IUIComponent;
+import org.apache.royale.reflection.getQualifiedClassName;
+import mx.core.IRepeaterClient;
+
+/**
+ * The NameUtil utility class defines static methods for
+ * creating names for Flex objects.
+ * You do not create instances of NameUtil;
+ * instead you call static methods of the class, such as
+ * the <code>NameUtil.createName()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class NameUtil
+{
+ //include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Class variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private static var counter:int = 0;
+
+ //--------------------------------------------------------------------------
+ //
+ // Class methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Creates a unique name for any Object instance, such as "Button12", by
+ * combining the unqualified class name with an incrementing counter.
+ *
+ * @param object Object requiring a name.
+ *
+ * @return String containing the unique name.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static function createUniqueName(object:Object):String
+ {
+ if (!object)
+ return null;
+
+ var name:String = getQualifiedClassName(object);
+
+ // If there is a package name, strip it off.
+ var index:int = name.indexOf("::");
+ if (index != -1)
+ name = name.substr(index + 2);
+
+ // If the class name ends with a digit (which some autogenerated
+ // classes do), then append an underscore before appending
+ // the counter.
+ var charCode:int = name.charCodeAt(name.length - 1);
+ if (charCode >= 48 && charCode <= 57)
+ name += "_";
+
+ return name + counter++;
+ }
+
+ /**
+ * Returns a string, such as
+ * "MyApplication0.addressForm.lastName.TextField17",
+ * for a UIComponent object that indicates its position in the
+ * hierarchy of UIComponent objects in an application.
+ *
+ * @param uicomponent A UIComponent object whose hierarchy in the application
+ * is desired.
+ *
+ * @return String containing the position of <code>uicomponent</code>
+ * in the hierarchy of UIComponent objects in an application.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public static function uicomponentToString(
+ uicomponent:IUIComponent):String
+ {
+ var result:String;
+
+ // Start at the specified object and walk up the parent chain
+ // to build up the string to return.
+ try
+ {
+ for (var o:IUIComponent = uicomponent;
+ o != null;
+ o = o.owner)
+ {
+ // If this object is in the display tree,
+ // stop after we've prepended the topmost Application instance.
+ if (o.owner && o.stage && o.owner == o.stage)
+ break;
+
+ // Prefer id over name if specified.
+ var s:String = "id" in o && o["id"] ? o["id"] : o.name;
+
+ if (o is IRepeaterClient)
+ {
+ var indices:Array = IRepeaterClient(o).instanceIndices;
+ if (indices)
+ s += "[" + indices.join("][") + "]";
+ }
+
+ result = result == null ? s : s + "." + result;
+ }
+ }
+ catch (e:SecurityError)
+ {
+ // Ignore error and continue with what we have.
+ // We may not have access to our parent if we are loaded into a sandbox.
+ }
+
+ return result;
+ } */
+
+ /**
+ * Returns the name of the specified object's class,
+ * such as <code>"Button"</code>
+ *
+ * <p>This string does not include the package name.
+ * If you need the package name as well, call the
+ * <code>getQualifiedClassName()</code> method in the flash.utils package.
+ * It will return a string such as <code>"mx.controls::Button"</code>.</p>
+ *
+ * @param object The object.
+ *
+ * @return The name of the specified object's class.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static function getUnqualifiedClassName(object:Object):String
+ {
+ var name:String;
+ if (object is String)
+ name = object as String;
+ else
+ name = getQualifiedClassName(object);
+
+ // If there is a package name, strip it off.
+ var index:int = name.indexOf("::");
+ if (index != -1)
+ name = name.substr(index + 2);
+
+ return name;
+ }
+}
+
+}