|
From: Peter R. <ant...@gm...> - 2003-10-28 12:41:47
|
... sorry for the repost - my mua always insists to send with my default
emailadress as sender ... :(
Hi Daniel and all,
here's a fixed version of the panelbar.js and the updated example.
You'll find the following changes in there:
- Added proper prototype-command:
var p = dynapi.setPrototype('PanelBar','DynLayer');
- Removed csscontent and cssmenu from constructor
- Moved most of the init-code to the PreCreate-event. That way there
is no problem with subclassing anymore.
- Added the possibility to construct a PanelBar with pure HTML
instead of layers, i.e. var pb = new PanelBar ('My Menu', 'My Content',...)
creates a proper PanelBar. You can still construct the PanelBar
with layers of course!
- Added getContentLayer and getMenuLayer
I discussed the whole panelbar-stuff with Daniel yesterday. We decided to
build a window-widget with the following functionality:
- Menubar, Content, Status-Bar (optional)
- Dragable
- Minimize, Maximize, Resize, Close with each action firing an event
(especially close might be important ;)
- Based on ViewPane or something similar (scrolling mechanism)
- When using multiple windows add a proper focus handling
A widget of that kind I need anyway for my current project so I think
it is best to develop it as a basic and reusable widget for the dynapi.
And Daniel already comited to help or better start writing that thing ;)
Has anyone already done such thing (a window-widget)?
Any other suggestions, comments etc. are welcome, of course!
Regards,
Peter
..: If wanted I can send diffs of course...
Daniel Tiru wrote:
> Hi Peter, I am the one to blame :)
>
> Have had very little time right now, but I will try to fix the panel
> bar, would also be great to see what you have done with it.
>
> Regards
> Daniel Tiru
>
> -----Original Message-----
> From: dyn...@li...
> [mailto:dyn...@li...] On Behalf Of Peter
> Romianowski
> Sent: den 27 oktober 2003 15:41
> To: dyn...@li...
> Subject: Re: [Dynapi-Dev] Problems in inheritence (General and PanelBar)
>
>
> Hi,
>
>
>>Instead of var p = PanelBar.prototype = new DynLayer
>>it should be var p = dynapi.setPrototype('PanelBar','DynLayer');
>
>
> Ahhh, that makes everything clear! Works now. Will this be changed in
> the CVS too?
>
> This does not solve the problem I have with the constructor. I saw a
> discussion about the PanelBar before where someone suggested to move
> stuff out of the constructor. Will there be any fix to the PanelBar
> regarding this "issue" (not able to subclass it)?
>
> Keep up the good work,
>
> Peter
>
>
>
>>--
>>Raymond Irving
>>
>>--- Peter Romianowski <ant...@gm...> wrote:
>>
>>
>>>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! ;)
>>>
>>>
>>>
>>>
>>
>>-------------------------------------------------------
>>
>>
>>>This SF.net email is sponsored by: The SF.net
>>>Donation Program.
>>>Do you like what SourceForge.net is doing for the
>>>Open
>>>Source Community? Make a contribution, and help us
>>>add new
>>>features and functionality. Click here: http://sourceforge.net/donate/
>>>_______________________________________________
>>>Dynapi-Dev mailing list
>>>Dyn...@li...
>>>
>>
>>http://www.mail-archive.com/dyn...@li.../
>>
>>
>>__________________________________
>>Do you Yahoo!?
>>Exclusive Video Premiere - Britney Spears
>>http://launch.yahoo.com/promos/britneyspears/
>>
>>
>>-------------------------------------------------------
>>This SF.net email is sponsored by: The SF.net Donation Program. Do you
>
>
>>like what SourceForge.net is doing for the Open Source Community?
>>Make a contribution, and help us add new features and functionality.
>>Click here: http://sourceforge.net/donate/
>>_______________________________________________
>>Dynapi-Dev mailing list
>>Dyn...@li...
>>http://www.mail-archive.com/dyn...@li.../
>>
>>
>
>
|