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.