This is interresting .. i have to understand the core mechanism of OL :)
so i have few questions again :
1) Do you know where are theses core JS library (ex LzView) in the LPS
server ? i didn't find them under /lps tree.
1bis) =>And who is doing the binding from LZX code to ECMA code ? i
guess it's the OL compiler / servlet couple ?
2) Which object framework is used by OL ? prototype.js ?
another question about HCI design:
-3) Is it possible to have a MVC mechanism in OL ? I was thinking about
declaring static my component in a sort of view, bind them in a JS
library playing the role of the Controler, and then a model.
an example with a button that init and connect to a rtmp server (it's a
draft)
-------------------------------------------------------------------------
<!-- the "view" myapp.lzx-->
<canvas>
<edittext id="edittextServerAddress" />
<button id="mybutton" >connect</button>
<script src="mycontroler.js">
...
<canvas/>
-------------------------------------------------------------------------
<!-- the "controler" mycontroler.js -->
//creating the model, ideally, the view would be created here too, but
the view is the app entry point so i guess it have to be created first
and then the view have to create the controller
var rtmpconn = new myrtmpconnection();
// binding view to controler
mybutton.onclick = function(button)
{
button.setAttribute('text','connecting ...');
rtmpconn.setAttribute ... etc
rtmpconn.myModelInitMethod(edittextServerAddress.text);
rtmpconn.connect();
}
// "controller classic" functions callable from "external"
function init(adress){
... code ...
rtmpconn.myModelInitMethod(adress);
... code ...
}
-------------------------------------------------------------------------
<!-- the model "mymodel.lzx" -->
<library>
<class name="myrtmpconnection" extends="rtmpconnection">
<attribute name="myModelVar" />
<method name="myModelInitMethod" args="adress"=> (code) </method>
</class>
</library>
... hope that is clear ... the idea is to have a "real" agent MVC model
... but that's maybe a bad/wrong way ?
thanks a lot
Pierre
Henry Minsky a écrit :
I should add that there is a certain magic translation of core class
names
from LZX to Javascript that is happening, so <view> actually
corresponds to
the real class named LzView, same for most of the core classes that are
user visible. The magic happens via the static var declaration in a
class called "tagname":
class LzView extends LzNode {
static var tagname = 'view';
..
As Tucker said, if you redefine a core class like that, you do so at
your own risk,
all sorts of things will probably break.
On 7/10/07, *P T Withington* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Welcome to dynamic languages. Yes, it is allowed. If you really
wanted to, you could replace the core classes too. And, yes, it will
probably cause a problem if you do.
In general, Javascript emphasizes flexibility over safety. IMO, Java
leans the other way.
On 2007-07-10, at 13:29 EDT, Pierre Augier wrote:
> I all !!
>
> i 'am asking if it's possible to override core class by inclusion
>
> i mean something like this :
> ----------------------------------------------------
>
> #file /mypath/view.lzx
>
> <class name="view">
>
> // my own view class
>
> </class>
>
>
> and later...
>
> #file /myotherpath/myapp.lzx
>
> <include href="/mypath/view.lzx"/>
>
> <canvas>
>
> <!-- use of the overrided class -->
> <view name="lalala" />
>
> </canvas>
>
> ----------------------------------------------------
>
> I've tried with "view" and "text" as class name ==> does
> not work (compilation error)
> then i've tried with "menu" or "button" ==> it
> work althought i get a warning message in debug console
>
> i guess it's because view and text are in the LFC, but menu and
> button are component ...
>
> but my question is:
>
> except for LFC that sems impossible to override, for the other
> class, is this allowed ?? will cause problem ???
>
>
> thanks
>
> Pierre
>
>
--
Henry Minsky
Software Architect
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>