|
From: Peter R. <ant...@gm...> - 2003-10-26 20:18:08
|
Hi,
I have two problems here. First I cannot subclass PanelBar until I
comment out some stuff in the constructor like that:
function PanelBar(lyrmnu,lyrcnt,mnuheight,x,y,w,h,mnucss,cntcss,minimized) {
this.DynLayer = DynLayer;
this.DynLayer(null,x,y,w,h,null);
if (lyrmnu) {
this.x = x;
...
this.menu.setHTML(this._mnuhtml.replace('{@min}',this._mnuhtmlmax));
}
this.onPreCreate(PanelBar.PreCreateEvent);
this.onCreate(PanelBar.CreateEvent);
}
}
Is there any common pattern how to avoid problems with subclassing? Or
am I doing something totally stupid in trying to subclass PanelBar?
The next problem is that I can't enable the dragevents on my subclass of
PanelBar until I change dragevent.js line 225 (enableDragEvents):
if(lyr.isClass('DynLayer')) lyr.addEventListener(DragEvent.lyrListener);
to
lyr.addEventListener(DragEvent.lyrListener);
That is bruteforce, I know ;) I just tried to figure out where the
problem is. And I found that myPanelBarSubclass.isClass('DynLayer')
yields false which I consider as wrong - it is a DynLayer since it is a
subclass of PanelBar which is a subclass of DynLayer! The quickest fix I
can imagine is to rewrite the isClass-method to tell whether any
superclass matches the argument. I don't know if this breaks something,
so I didn't try that yet.
If I am trying to do something totally wrong then please tell me!
Otherwise I will gladly help "fixing" the issues.
Regards,
Peter
default disclaimer: DynAPI rules! ;)
|