This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 83452546ce80e37a5cb5291dd765b01bae3d61d6
Author: Alex Harui <aha...@apache.org>
AuthorDate: Fri Feb 23 18:17:42 2018 -0800

    put up a loading screen while class data is loading.  Fake some data for 
EventDispacher so ASDoc looks more complete.  Fake a few methods to look like 
they exist on both platforms (which they do but our ASDoc doesn't process those 
external base classes)
---
 examples/royale/ASDoc/build.xml                    | 41 +++++++++--------
 .../apache/royale/events/EventDispatcher.swf.json  | 51 ++++++++++++++++++++++
 .../ASDoc/src/main/royale/ASDocMainView.mxml       | 17 ++++++--
 .../ASDoc/src/main/royale/EventDetailRenderer.mxml | 11 +++--
 .../src/main/royale/EventSummaryRenderer.mxml      | 11 +++--
 .../src/main/royale/MethodDetailRenderer.mxml      | 15 +++++--
 .../src/main/royale/MethodSummaryRenderer.mxml     | 15 +++++--
 .../src/main/royale/PropertyDetailRenderer.mxml    | 12 ++---
 .../ASDoc/src/main/royale/models/ASDocModel.as     |  4 ++
 9 files changed, 132 insertions(+), 45 deletions(-)

diff --git a/examples/royale/ASDoc/build.xml b/examples/royale/ASDoc/build.xml
index 19692a8..522ebf6 100644
--- a/examples/royale/ASDoc/build.xml
+++ b/examples/royale/ASDoc/build.xml
@@ -47,6 +47,26 @@
         property="json.exists"/>
         <antcall target="json" />
         <antcall target="json.swf" />
+        <!-- copy manually patched json files.  Because ASDoc doesn't document
+             flash.*.* classes and browser builtins, some useful ASDoc is
+             missing, so we patch a base class like EventDispatcher so ASDoc
+             looks better -->
+        <copy todir="${basedir}/bin-debug" overwrite="true">
+            <fileset dir="${basedir}/src/main/json">
+                <include name="**/*.json" />
+            </fileset>
+        </copy>
+        <!-- make copies of all json for js-debug and js-release -->
+        <copy todir="${basedir}/bin/js-debug">
+            <fileset dir="${basedir}/bin-debug">
+                <include name="**/*.json" />
+            </fileset>
+        </copy>
+        <copy todir="${basedir}/bin/js-release">
+            <fileset dir="${basedir}/bin-debug">
+                <include name="**/*.json" />
+            </fileset>
+        </copy>
     </target>
     
     <target name="clean">
@@ -80,16 +100,6 @@
             <arg value="-js-output-type=ROYALE" />
             <arg value="-closure-lib=${GOOG_HOME}" />
         </java>
-        <copy todir="${basedir}/bin/js-debug">
-            <fileset dir="${basedir}/bin-debug">
-                <include name="**/*.json" />
-            </fileset>
-        </copy>
-        <copy todir="${basedir}/bin/js-release">
-            <fileset dir="${basedir}/bin-debug">
-                <include name="**/*.json" />
-            </fileset>
-        </copy>
 
     </target>
     
@@ -114,17 +124,6 @@
             <arg value="-js-output-type=ROYALE" />
             <arg value="-closure-lib=${GOOG_HOME}" />
         </java>
-        <copy todir="${basedir}/bin/js-debug">
-            <fileset dir="${basedir}/bin-debug">
-                <include name="**/*.json" />
-            </fileset>
-        </copy>
-        <copy todir="${basedir}/bin/js-release">
-            <fileset dir="${basedir}/bin-debug">
-                <include name="**/*.json" />
-            </fileset>
-        </copy>
-        
     </target>
     
     <target name="examine" depends="build_example.get.browser">
diff --git 
a/examples/royale/ASDoc/src/main/json/org/apache/royale/events/EventDispatcher.swf.json
 
b/examples/royale/ASDoc/src/main/json/org/apache/royale/events/EventDispatcher.swf.json
new file mode 100644
index 0000000..75e6db1
--- /dev/null
+++ 
b/examples/royale/ASDoc/src/main/json/org/apache/royale/events/EventDispatcher.swf.json
@@ -0,0 +1,51 @@
+{ "type": "class",
+  "qname": "org.apache.royale.events.EventDispatcher",
+  "baseClassname": "flash.events.EventDispatcher"
+  ,
+    "description": "This class simply wraps flash.events.EventDispatcher so 
that no flash packages are needed on the JS side.",
+  "tags": [
+  {  "tagName": "playerversion",
+         "values": ["Flash 10.2", "AIR 2.6"]},
+      {  "tagName": "productversion",
+         "values": ["Royale 0.0"]},
+      {  "tagName": "langversion",
+         "values": ["3.0"]}  ],
+  "members": [
+  { "type": "method",
+        "qname": "org.apache.royale.events.EventDispatcher",
+        "namespace": "",
+        "bindable": [],
+        "details": [],
+        "deprecated": {},
+          "description": "Constructor.",
+        "tags": [
+        {  "tagName": "playerversion",
+               "values": ["Flash 10.2", "AIR 2.6"]},
+            {  "tagName": "productversion",
+               "values": ["Royale 0.0"]},
+            {  "tagName": "langversion",
+               "values": ["3.0"]}  ],
+          "return": "",
+          "params": [{ "name": "target", "type": 
"org.apache.royale.events.IEventDispatcher"}]}
+      ,
+      { "type": "method",
+        "qname": "addEventListener",
+        "namespace": "public",
+        "bindable": [],
+        "details": [],
+        "deprecated": {},
+          "description": "Adds an event listener.",
+          "return": "void",
+          "params": [{ "name": "type", "type": "String"},{ "name": "handler", 
"type": "Function"},{ "name": "capture", "type": "Boolean"}]}
+      ,
+      { "type": "method",
+        "qname": "removeEventListener",
+        "namespace": "public",
+        "bindable": [],
+        "details": [],
+        "deprecated": {},
+          "description": "Removes an event listener.",
+          "return": "void",
+          "params": [{ "name": "type", "type": "String"},{ "name": "handler", 
"type": "Function"},{ "name": "capture", "type": "Boolean"}]}
+      ]
+  }
diff --git a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml 
b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
index f560e45..83d8630 100644
--- a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
+++ b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
@@ -63,7 +63,7 @@ limitations under the License.
             
             private function classChangedHandler():void
             {
-               currentState = "classDetail";
+                currentState = "loading";
                 currentClass = classList.selectedItem as String;
                 dispatchEvent(new Event("classChanged"));
             }
@@ -119,8 +119,8 @@ limitations under the License.
                                                    return;
                                                }
                                        }
-                                       
applicationModel.addEventListener("currentDataChanged", findMemberDetail);
                                }
+                        
applicationModel.addEventListener("currentDataChanged", findMemberDetail);
                                classList.selectedItem = cls; 
                                classChangedHandler();
                        }
@@ -134,8 +134,10 @@ limitations under the License.
             
             private function findMemberDetail(event:Event):void
             {
+                currentState = "classDetail";
                applicationModel.removeEventListener("currentDataChanged", 
findMemberDetail);
-               clb.callLater(scrollMemberIntoView);
+                if (findMember)
+                       clb.callLater(scrollMemberIntoView);
             }
             
             private function scrollMemberIntoView():void
@@ -144,6 +146,7 @@ limitations under the License.
                {
                        document.getElementById(findMember).scrollIntoView();
                }
+                findMember = null;
             }
             
             private var popUpList:PopUpList;
@@ -354,6 +357,10 @@ limitations under the License.
         .jsonly {
             color: #0f0;
         }
+        
+        .loading {
+            font-size: 40px;
+        }
        </fx:Style>
        <fx:Declarations>
                <fx:Component className="AltBGRenderer">
@@ -362,6 +369,7 @@ limitations under the License.
        </fx:Declarations>
        <js:states>
          <js:State name="packages" />
+      <js:State name="loading" />
          <js:State name="classDetail" />
        </js:states>
     <js:beads>
@@ -414,6 +422,9 @@ limitations under the License.
                    <js:List className="paneList" id="packagePaneList" 
dataProvider="{ASDocModel(applicationModel).packageList}" 
                        itemRenderer="AltBGRenderer"/>
             </js:Group>
+            <js:Group id="loadingPane" width="100%" includeIn="loading">
+                <js:Label className="loading" text="Loading..." />
+            </js:Group>
             <js:Group id="detailsPane" className="detailsPane" width="100%" 
includeIn="classDetail">
                    <js:beads>
                        <js:VerticalLayout />
diff --git a/examples/royale/ASDoc/src/main/royale/EventDetailRenderer.mxml 
b/examples/royale/ASDoc/src/main/royale/EventDetailRenderer.mxml
index d109c31..4f07056 100644
--- a/examples/royale/ASDoc/src/main/royale/EventDetailRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/EventDetailRenderer.mxml
@@ -37,10 +37,13 @@ limitations under the License.
                                // set up anchor link target
                                target.element.id = obj.qname;
                                }
-                if (obj.platforms[0] == "swf")
-                    target.className += " swfonly";
-                if (obj.platforms[0] == "js")
-                    target.className += " jsonly";
+                if (obj.platforms.length == 1)
+                {
+                    if (obj.platforms[0] == "swf")
+                        target.className += " swfonly";
+                    if (obj.platforms[0] == "js")
+                        target.className += " jsonly";
+                }
                        }
                        
             [Bindable("dataChange")]
diff --git a/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml 
b/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
index 10e254c..9085c06 100644
--- a/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
@@ -50,10 +50,13 @@ limitations under the License.
                        {
                                super.data = value;
                                qname.href = "#!" + obj.ownerhref + "/" + 
obj.qname;
-                if (obj.platforms[0] == "swf")
-                    qname.className += " swfonly";
-                if (obj.platforms[0] == "js")
-                    qname.className += " jsonly";
+                if (obj.platforms.length == 1)
+                {
+                    if (obj.platforms[0] == "swf")
+                        qname.className += " swfonly";
+                    if (obj.platforms[0] == "js")
+                        qname.className += " jsonly";
+                }
                        }
                        
             [Bindable("dataChange")]
diff --git a/examples/royale/ASDoc/src/main/royale/MethodDetailRenderer.mxml 
b/examples/royale/ASDoc/src/main/royale/MethodDetailRenderer.mxml
index cdce333..f96d012 100644
--- a/examples/royale/ASDoc/src/main/royale/MethodDetailRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/MethodDetailRenderer.mxml
@@ -24,6 +24,10 @@ limitations under the License.
                      width="100%">
     <fx:Script>
         <![CDATA[            
+            private static var fakeBothPlatforms:Object = {"addEventListener": 
1, "removeEventListener" : 1,
+                "hasEventListener": 1, "dispatchEvent": 1,
+                "toString": 1};
+            
                        override public function set data(value:Object):void
                        {
                                super.data = value;
@@ -36,10 +40,13 @@ limitations under the License.
                                // set up anchor link target
                                target.element.id = obj.qname;
                                }
-                if (obj.platforms[0] == "swf")
-                    target.className += " swfonly";
-                if (obj.platforms[0] == "js")
-                    target.className += " jsonly";
+                if (obj.platforms.length == 1 && !fakeBothPlatforms[obj.qname])
+                {
+                    if (obj.platforms[0] == "swf")
+                        target.className += " swfonly";
+                    if (obj.platforms[0] == "js")
+                        target.className += " jsonly";
+                }
                        }
                        
             [Bindable("dataChange")]
diff --git a/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml 
b/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
index 3f0d6d4..2150f40 100644
--- a/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
@@ -24,6 +24,10 @@ limitations under the License.
                            width="100%">
     <fx:Script>
         <![CDATA[
+            private static var fakeBothPlatforms:Object = {"addEventListener": 
1, "removeEventListener" : 1,
+                "hasEventListener": 1, "dispatchEvent": 1,
+                "toString": 1};
+                
                        private var _color0:String = "#fff";
                        
                        public function get backgroundColor0():String
@@ -56,10 +60,13 @@ limitations under the License.
                                else
                                        typeGroup.removeElement(link);
                                qname.href = "#!" + obj.ownerhref + "/" + 
obj.qname;
-                if (obj.platforms[0] == "swf")
-                    qname.className += " swfonly";
-                if (obj.platforms[0] == "js")
-                    qname.className += " jsonly";
+                if (obj.platforms.length == 1 && !fakeBothPlatforms[obj.qname])
+                {
+                    if (obj.platforms[0] == "swf")
+                        qname.className += " swfonly";
+                    if (obj.platforms[0] == "js")
+                        qname.className += " jsonly";
+                }
                        }
                        
             [Bindable("dataChange")]
diff --git a/examples/royale/ASDoc/src/main/royale/PropertyDetailRenderer.mxml 
b/examples/royale/ASDoc/src/main/royale/PropertyDetailRenderer.mxml
index 1e157e7..f5ff996 100644
--- a/examples/royale/ASDoc/src/main/royale/PropertyDetailRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/PropertyDetailRenderer.mxml
@@ -36,11 +36,13 @@ limitations under the License.
                                // set up anchor link target
                                target.element.id = obj.qname;
                                }
-                if (obj.platforms[0] == "swf")
-                    target.className += " swfonly";
-                if (obj.platforms[0] == "js")
-                    target.className += " jsonly";
-
+                if (obj.platforms.length == 1)
+                {
+                    if (obj.platforms[0] == "swf")
+                        target.className += " swfonly";
+                    if (obj.platforms[0] == "js")
+                        target.className += " jsonly";
+                }
                        }
                        
             [Bindable("dataChange")]
diff --git a/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as 
b/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
index c7bcc71..49b0d16 100644
--- a/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
+++ b/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
@@ -327,6 +327,8 @@ package models
                             if (q.params.length == mm.params.length)
                             {
                                 foundMatch = true;
+                                if (q.platforms.indexOf(mm.platforms[0]) == -1)
+                                    q.platforms.push(mm.platforms[0]);
                                 break;
                             }
                         }
@@ -579,6 +581,8 @@ package models
                             if (q.params.length == m.params.length)
                             {
                                 foundMatch = true;
+                                if (q.platforms.indexOf(m.platforms[0]) == -1)
+                                    q.platforms.push(m.platforms[0]);
                                 break;
                             }
                         }

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

Reply via email to