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! ;) |