[Laszlo-checkins] r11823 - in openlaszlo/trunk: WEB-INF/lps/lfc WEB-INF/lps/lfc/core WEB-INF/lps/lfc/kernel WEB-INF/lps/lfc/kernel/dhtml WEB-INF/lps/lfc/kernel/swf WEB-INF/lps/lfc/kernel/swf9 WEB-INF/lps/lfc/views WEB-INF/lps/server/src/org/openlaszlo/compiler WEB-INF/lps/server/src/org/openlaszlo/sc test/snippets
hqm@openlaszlo.org
hqm at openlaszlo.org
Tue Nov 18 16:25:53 PST 2008
Author: hqm
Date: 2008-11-18 16:25:42 -0800 (Tue, 18 Nov 2008)
New Revision: 11823
Added:
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzBaseLoadableLib.as
Removed:
openlaszlo/trunk/WEB-INF/lps/lfc/glue/
Modified:
openlaszlo/trunk/WEB-INF/lps/lfc/LaszloLibrary.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/DebugExec.as
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/Library.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzLibrary.as
openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloCanvas.lzs
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/DataCompiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ElementCompiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ImportCompiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java
openlaszlo/trunk/test/snippets/import-class.lzx
openlaszlo/trunk/test/snippets/import-script.lzx
openlaszlo/trunk/test/snippets/script-library.lzx
Log:
Change 20081118-hqm-i by hqm at badtzmaru.home on 2008-11-18 19:23:31 EST
in /Users/hqm/openlaszlo/trunk4
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: swf9 import libraries
New Features:
Bugs Fixed: LPP-7291
Technical Reviewer: dda
QA Reviewer: ptw
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
+ implementation of swf9 loadable libraries
+ removed LFC /glue, moved LzInstantiateView to canvas
Tests:
test/snippets
smokecheck
lzpix
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/LaszloLibrary.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/LaszloLibrary.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/LaszloLibrary.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -54,7 +54,6 @@
#include "helpers/Library.lzs"
#include "data/Library.lzs"
#include "services/Library.lzs"
-#include "glue/Library.lzs"
if ($swf9) {
//Debugger placeholder
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -2267,8 +2267,6 @@
return [ self, name ];
}
-
-
} // End of LzNode
lz[LzNode.tagname] = LzNode; // publish
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -19,9 +19,14 @@
/** @access private */
static var attributes = new LzInheritedHash(LzNode.attributes);
- function LzLibraryCleanup ( owner , args ) {
- super(owner, args);
- var lib = LzLibrary.findLibrary(args.libname);
+ var lib:* = null;
+
+ function LzLibraryCleanup ( parent:LzNode? = null , attrs:Object? = null , children:Array? = null, instcall:Boolean = false) {
+ super(parent,attrs,children,instcall);
+ }
+
+ function $lzc$set_libname(val) {
+ this.lib = LzLibrary.findLibrary(val);
lib.loadfinished();
}
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js 2008-11-19 00:25:42 UTC (rev 11823)
@@ -149,7 +149,7 @@
Debug.error("could not find library with href", url);
} else {
lib.loaded = true;
- LzInstantiateView({attrs: {libname: lib.name}, "class": LzLibraryCleanup}, 1);
+ canvas.LzInstantiateView({attrs: {libname: lib.name}, "class": LzLibraryCleanup}, 1);
// Run the queue to instantiate all pending LzInstantiateView calls.
canvas.initDone();
}
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -79,7 +79,7 @@
lib.loaded = true;
}
- LzInstantiateView({attrs: {libname: lib.name}, "class": LzLibraryCleanup}, 1);
+ canvas.LzInstantiateView({attrs: {libname: lib.name}, "class": LzLibraryCleanup}, 1);
// Run the queue to instantiate all pending LzInstantiateView calls.
canvas.initDone();
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/DebugExec.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/DebugExec.as 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/DebugExec.as 2008-11-19 00:25:42 UTC (rev 11823)
@@ -24,6 +24,7 @@
}#
public function DebugExec (...ignore) {
+ runToplevelDefinitions();
}
public function write(...args):void {
@@ -31,6 +32,10 @@
lzconsole.write(args.join(" "));
}
+ public function runToplevelDefinitions() {
+ // Overridden by method in code emitted by SWF9 script compiler
+ }
+
public function doit ():void {
trace("DebugExec.doit() was invoked...");
write("DebugExec.doit() was invoked...");
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as 2008-11-19 00:25:42 UTC (rev 11823)
@@ -206,6 +206,12 @@
*/
LzKeyboardKernel.__keyboardEvent(event, 'onkeydown');
}
+
+ public function runToplevelDefinitions() {
+ // overridden by swf9 script compiler
+ }
+
+
}
// Resource library
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/Library.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/Library.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/Library.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -12,6 +12,7 @@
#include "kernel/swf9/DebugExec.as"
#include "kernel/swf9/LFCApplication.as"
+#include "kernel/swf9/LzBaseLoadableLib.as"
#include "kernel/swf9/LzIdleKernel.as"
#include "kernel/swf9/LzSprite.as"
#include "kernel/swf9/LzTextSprite.as"
Added: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzBaseLoadableLib.as
Property changes on: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzBaseLoadableLib.as
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzLibrary.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzLibrary.as 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzLibrary.as 2008-11-19 00:25:42 UTC (rev 11823)
@@ -15,10 +15,18 @@
class LzLibrary extends LzNode {
#passthrough (toplevel:true) {
- import flash.events.*;
- import flash.net.*;
- import flash.utils.*;
- import flash.xml.*;
+ import flash.display.*;
+ import flash.events.*;
+ import flash.text.*;
+ import flash.ui.*;
+ import flash.geom.*;
+ import flash.utils.*;
+ import mx.controls.Button;
+ import flash.net.*;
+ import flash.utils.*;
+ import flash.system.*;
+
+
}#
/** @access private
@@ -58,6 +66,15 @@
var stage = "late";//"late|defer"
/**
+ * @access private
+ */
+function $lzc$set_stage(val) {
+ this.stage = val;
+}
+
+
+
+/**
* Sent when this library has finished loading.
*
* @lzxtype event
@@ -65,13 +82,26 @@
*/
var onload = LzDeclaredEvent;
+/** @access private
+ * @modifiers override
+ */
+function LzLibrary ( parent:LzNode? = null , attrs:Object? = null , children:Array? = null, instcall:Boolean = false) {
+ super(parent,attrs,children,instcall);
+}
+
/**
* @access private
*/
+function $lzc$set_href(val) {
+ this.href = val;
+}
+
+/**
+ * @access private
+ */
override function construct (parent, args) {
this.stage = args.stage;
super.construct.apply(this, arguments);
- this.sprite = new LzSprite(this, false);
LzLibrary.libraries[args.name] = this;
}
@@ -93,7 +123,7 @@
this.sprite.destroy();
this.sprite = null;
}
- super.destroy.apply(this, arguments);
+ super.destroy();
}
/** @access private */
@@ -113,22 +143,33 @@
return "Library " + this.href + " named " + this.name;
}
+public var loader:Loader = null;
+
/**
* Loads this library dynamically at runtime. Must only be called
* when stage was set to 'defer'.
*
* @access public
*/
-function load (){
+function load () {
if (this.loading || this.loaded) {
return;
}
this.loading = true;
- // TODO [hqm 2008-11]
- // LOAD MODULE HERE !! (this.href);
- Debug.write("LzLibrary.load NYI", this.href);
+ var request:URLRequest = new URLRequest(this.href);
+ request.method = URLRequestMethod.GET;
+ this.loader = new Loader();
+ var info:LoaderInfo = loader.contentLoaderInfo;
+ info.addEventListener(Event.COMPLETE, handleLoadComplete);
+ trace('loader.load ', this.href);
+ this.loader.load(request);
}
+public function handleLoadComplete(event:Event):void {
+ var library:Object = event.target.content;
+ library.exportClassDefs(null);
+}
+
/**
* Called by LzLibraryCleanup when this library has finished loading.
*
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloCanvas.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloCanvas.lzs 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloCanvas.lzs 2008-11-19 00:25:42 UTC (rev 11823)
@@ -845,6 +845,16 @@
}
}
+
+// Utility functions used by the instantiator process
+public function LzInstantiateView(e, tn = 1) {
+ canvas.initiatorAddNode( e , tn );
+}
+
+public function lzAddLocalData(name, d, trimwhitespace) {
+ return new LzDataset(canvas, {name: name, initialdata: d, trimwhitespace: trimwhitespace });
+}
+
} // End of LzCanvas
lz[LzCanvas.tagname] = LzCanvas; // publish
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -74,9 +74,6 @@
this.className = LZXTag2JSClass(env.methodNameGenerator.next());
}
- // Keep track of this class name, in case we're compiling an <import> library
- env.addExportedClassDef(tagName, this.className);
-
this.superclass = superclass;
this.definition = definition;
if (definition != null) {
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -73,13 +73,6 @@
protected File mApplicationFile = null;
protected File mObjectFile = null;
- /** List of class definitions that will be defined by a
- * loadable library module.
- * A map of tagname => classname , e.g.,
- * lz['button'] = $lzc$class_button;
- */
- protected Map exportedClassDefs = new HashMap();
-
final SymbolGenerator methodNameGenerator;
/** Output is written here.
@@ -729,13 +722,4 @@
}
}
- public void addExportedClassDef(String tagname, String classname) {
- exportedClassDefs.put(tagname, classname);
- }
-
- public Map getExportedClassDefs() {
- return exportedClassDefs;
- }
-
-
}
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/DataCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/DataCompiler.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/DataCompiler.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -34,7 +34,7 @@
* would mean delaying the "ondata" of the datasets until they were processed.
*/
- static final String LOCAL_DATA_FNAME = "lzAddLocalData";
+ static final String LOCAL_DATA_FNAME = "canvas.lzAddLocalData";
DataCompiler(CompilationEnvironment env) {
super(env);
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ElementCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ElementCompiler.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ElementCompiler.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -26,7 +26,7 @@
* must match the name of the function in the runtime support
* library.
*/
- protected static final String VIEW_INSTANTIATION_FNAME = "LzInstantiateView";
+ protected static final String VIEW_INSTANTIATION_FNAME = "canvas.LzInstantiateView";
protected final CompilationEnvironment mEnv;
ElementCompiler(CompilationEnvironment env) {
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ImportCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ImportCompiler.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ImportCompiler.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -91,7 +91,12 @@
String libfile = libsrcfile.getName();
String libprefix = mEnv.getLibPrefix();
String runtime = mEnv.getProperty(mEnv.RUNTIME_PROPERTY);
- String extension = Compiler.SCRIPT_RUNTIMES.contains(runtime) ? ".js" : ".swf";
+ String extension = ".swf";
+ if ("swf9".equals(runtime)) {
+ extension = ".swf";
+ } else if (Compiler.SCRIPT_RUNTIMES.contains(runtime)) {
+ extension = ".js";
+ }
String objfilename = libprefix + "/" + libfile + extension;
String objpath = mEnv.getLibPrefixRelative() + "/" + libfile + extension;
@@ -147,11 +152,12 @@
ObjectWriter writer;
String runtime = env.getProperty(env.RUNTIME_PROPERTY);
- if (Compiler.SCRIPT_RUNTIMES.contains(runtime)) {
+ if ("swf9".equals(runtime)) {
+ props.setProperty(org.openlaszlo.sc.Compiler.SWF9_LOADABLE_LIB, "true");
+ writer = new SWF9Writer(props, ostream, env.getMediaCache(), false, env);
+ } else if (Compiler.SCRIPT_RUNTIMES.contains(runtime)) {
writer = new DHTMLWriter(props, ostream,
env.getMediaCache(), false, env);
- } else if ("swf9".equals(runtime)) {
- writer = new SWF9Writer(props, ostream, env.getMediaCache(), false, env);
} else if (Compiler.SWF_RUNTIMES.contains(runtime)) {
// Set the "SWF8_LOADABLE_LIB" flag to true for this compiler
props.setProperty(org.openlaszlo.sc.Compiler.SWF8_LOADABLE_LIB, "true");
@@ -211,8 +217,9 @@
}
}
- // Now output the additions to the tag map
+ // Now output the additions to the tag map.
outputTagMap(env);
+
if (Compiler.SWF_RUNTIMES.contains(runtime)) {
((SWFWriter) env.getGenerator()).setLevel0(false);
}
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -73,7 +73,6 @@
super(props, stream, cache, importLibrary, env);
scriptBuffer = new StringWriter();
scriptWriter= new PrintWriter(scriptBuffer);
-
}
@@ -382,6 +381,13 @@
props.put(org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME, MAIN_APP_CLASSNAME);
props.put(org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME, EXEC_APP_CLASSNAME);
+ /*
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_APPLICATION_PREAMBLE + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_APPLICATION_PREAMBLE));
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME));
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME));
+
+ */
+
try {
scriptWriter.close();
byte[] objcode = ScriptCompiler.compileToByteArray(scriptBuffer.toString(), props);
@@ -413,7 +419,7 @@
public final static String DEBUG_EVAL_CLASSNAME = "DebugEvaluate";
/** The "main" class name for 'import' (runtime loadable) libraries */
- public final static String LIBRARY_CLASSNAME = "LzRuntimeLoadedLib";
+ public final static String LIBRARY_CLASSNAME = "LzRuntimeLoadableLib";
/** List of AS3 imports needed to compile an app */
public static final String imports = " #passthrough (toplevel:true) { \n" +
@@ -430,27 +436,39 @@
/** Create swf9 application boilerplate preamble as3 code
*/
public String makeApplicationPreamble() {
- // MOVE THIS TO SWF9WRITER boilerplate generator code
String source = "public class " + MAIN_APP_CLASSNAME +
- " extends " + LFC_CLASSNAME + " {\n " + imports + "}\n";
+ " extends " + LFC_CLASSNAME + " {\n " + imports + "\n" +
+ "public function " + MAIN_APP_CLASSNAME + "(sprite:Sprite=null) {\n" +
+ "super(sprite);\n" +
+ "runToplevelDefinitions();\n" +
+ "}\n" +
+ "}\n";
source += "public class " + EXEC_APP_CLASSNAME +
- " extends Sprite {\n " + imports + "var app:LzApplication;\n" +
- " function " + EXEC_APP_CLASSNAME + "() {" +
- " app = new LzApplication(this);}}\n";
+ " extends Sprite {\n " + imports +
+ "var app:LzApplication;\n" +
+ "function " + EXEC_APP_CLASSNAME + "() {" +
+ "app = new " + MAIN_APP_CLASSNAME + "(this);\n" +
+ "}\n" +
+ "}\n";
return source;
}
/** Create swf9 import library boilerplate preamble as3 code
*/
public String makeLibraryPreamble() {
- return "NOT YET DEFINED";
+ String source = "public class " + LIBRARY_CLASSNAME +
+ " extends LzBaseLoadableLib {\n " + imports + "\n" +
+ "}\n";
+ return source;
}
-
-
-
public void closeSnippet() throws IOException {
// Callback to let library know we're done loading
+ //
+ // TODO [hqm 2008-11] This won't work, right? We want to call
+ // this static method on the LzLibrary class, but LzLibrary is
+ // in the main app's namespace. Do we need to pass in a
+ // pointer back to the main app's LzLibrary class? Should this be in exportClassDefs?
addScript("LzLibrary.__LZsnippetLoaded('"+this.liburl+"')");
if (mCloseCalled) {
@@ -459,9 +477,17 @@
Properties props = (Properties)mProperties.clone();
// Pass in the table of lzx class defs
- props.put(org.openlaszlo.sc.Compiler.EXPORTED_CLASS_DEFS, mEnv.getExportedClassDefs());
props.setProperty(org.openlaszlo.sc.Compiler.SWF9_APPLICATION_PREAMBLE, makeLibraryPreamble());
+ props.put(org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME, LIBRARY_CLASSNAME);
+ props.put(org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME, LIBRARY_CLASSNAME);
+ /*
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_APPLICATION_PREAMBLE + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_APPLICATION_PREAMBLE));
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_APP_CLASSNAME));
+ System.err.println(org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME + "="+props.get( org.openlaszlo.sc.Compiler.SWF9_WRAPPER_CLASSNAME));
+
+ */
+
try {
scriptWriter.close();
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -494,7 +494,8 @@
public static String SWF9_APP_CLASSNAME = "SWF9MainClassName";
public static String SWF9_WRAPPER_CLASSNAME = "SWF9WrapperClassName";
public static String SWF9_LFC_CLASSNAME = "SWF9LFCClassName";
- public static String SWF8_LOADABLE_LIB = "SWFLoadableLib";
+ public static String SWF9_LOADABLE_LIB = "SWF9LoadableLib";
+ public static String SWF8_LOADABLE_LIB = "SWF8LoadableLib";
public static String TRACK_LINES = "trackLines";
public static String VALIDATE_CACHES = "validateCaches";
public static String WARN_UNDEFINED_REFERENCES = "warnUndefinedReferences";
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -634,7 +634,7 @@
config.forcePublicMembers = options.getBoolean(Compiler.DEBUG_SWF9) && !options.getBoolean(Compiler.DISABLE_PUBLIC_FOR_DEBUG);
config.mainClassName = (String) options.get(Compiler.SWF9_APP_CLASSNAME);
- System.err.println("mainClassName = "+config.mainClassName);
+ //System.err.println("mainClassName = "+config.mainClassName);
if (config.islib) {
//
} else {
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java 2008-11-19 00:25:42 UTC (rev 11823)
@@ -256,12 +256,13 @@
sb.append("{\n");
sb.append(annotateInsertStream(CLASS_LEVEL_STREAM));
+
if (classnm.equals(config.mainClassName) && !config.islib) {
- sb.append("public function " + config.mainClassName + "(sprite:Sprite=null) {\n");
- sb.append("super(sprite);\n");
+ sb.append("override public function runToplevelDefinitions () {");
sb.append(annotateInsertStream(MAIN_CONSTRUCTOR_STREAM));
sb.append("}\n");
}
+
for (int i=4; i<children.length; i++) {
sb.append(children[i]);
}
Modified: openlaszlo/trunk/test/snippets/import-class.lzx
===================================================================
--- openlaszlo/trunk/test/snippets/import-class.lzx 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/test/snippets/import-class.lzx 2008-11-19 00:25:42 UTC (rev 11823)
@@ -5,7 +5,8 @@
<method name="doLoaded">
new lz.myclass(canvas, {fontsize: 8, text: '[1] loaded myclass'});
new lz.myclass(canvas, {fontsize: 10, text: '[2] loaded myclass'});
- new lz.myclass(canvas, {text: '[3] loaded myclass'});
+ var ki = new lz.myclass(canvas, {text: '[3] loaded myclass'});
+ Debug.write('loaded myclass! ki instanceof LzView', ki instanceof LzView);
</method>
<simplelayout spacing="2" />
Modified: openlaszlo/trunk/test/snippets/import-script.lzx
===================================================================
--- openlaszlo/trunk/test/snippets/import-script.lzx 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/test/snippets/import-script.lzx 2008-11-19 00:25:42 UTC (rev 11823)
@@ -10,10 +10,10 @@
<simplelayout/>
<text>You should see a red and green square below</text>
- <import name="lib" href="script-library.lzx" stage="late" onload="foo()"/>
+ <import name="lib" href="script-library.lzx" stage="late" onload="canvas.foo()"/>
</canvas>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2004 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2004, 2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
Modified: openlaszlo/trunk/test/snippets/script-library.lzx
===================================================================
--- openlaszlo/trunk/test/snippets/script-library.lzx 2008-11-18 18:44:09 UTC (rev 11822)
+++ openlaszlo/trunk/test/snippets/script-library.lzx 2008-11-19 00:25:42 UTC (rev 11823)
@@ -1,7 +1,7 @@
<library>
<script>
var blah = 0xff0000;
- function foo() {
+ canvas.foo = function () {
Debug.write('foo!');
}
More information about the Laszlo-checkins
mailing list