From: Kevin <ke...@ke...> - 2003-05-16 19:55:56
Attachments:
tabmanager-update.zip
|
Hi, Here is the TabManager code and a couple of demonstrations. Unpack in the dynapi3x root directory. Is there a dependency between IOElement/DataSource and functions. I didn't think I'd have to explicitly include it. Also a fix for problems with the _destroy system. Thanks for the comments about my BorderManager updates. I don't have much time to work on it at the moment. Anyway have fun with TabManager. I've given up with any real use of style sheets as it would require several changes to the api and getting agreement for this would be difficult. - Kevin. |
From: Raymond I. <xw...@ya...> - 2003-05-16 21:39:19
|
Firstly, it's awesome! An absolutely amazing concept! Using IE with tabmanager2 demo I feel as though I'm using a windows app. The DataSource & FocusManager integrates well with the examples. It's Perfectly Amazing! Very nice work Kevin. Two-Thumbs up for the TabManager My comments are as follows: 1) I think you should also post a copy using the sourceforge patch system. If you don't have CVS access (can't see why not) I can upload these changes by weekend. 2) Any (quick ref) documentation on how to use the new features? 3) Is the callSubmitFn() necessary? I see where you're already using the onsubmit event which in my opion will make the callSubmitFn redundant. Please see below for other comments: --- Kevin <ke...@ke...> wrote: > Hi, > > Here is the TabManager code and a couple of > demonstrations. > Unpack in the dynapi3x root directory. > > Is there a dependency between IOElement/DataSource > and > functions. I didn't think I'd have to explicitly > include it. Yes, there is a dependency between the IOElement and DataSource libraries. By including DataSource IOElement will be automatically included. > Also > a fix for problems with the _destroy system. Ok > Thanks for the comments about my BorderManager > updates. > I don't have much time to work on it at the moment. Understand. We'll try to see how best we can merge the two together. > Anyway > have fun with TabManager. I've given up with any > real use of > style sheets as it would require several changes to > the api and > getting agreement for this would be difficult. I thought the getElmWidth resolved all that? Keep up the good work. -- Raymond Irving > - > Kevin. > > ATTACHMENT part 2 application/x-zip-compressed name=tabmanager-update.zip __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Kevin <ke...@ke...> - 2003-05-17 13:18:10
|
Sorry this is a long one I should have split it in two e-mails. "Raymond Irving" <xw...@ya...> wrote: > Firstly, it's awesome! An absolutely amazing concept! > Using IE with tabmanager2 demo I feel as though I'm > using a windows app. The DataSource & FocusManager > integrates well with the examples. It's Perfectly > Amazing! > > Very nice work Kevin. Two-Thumbs up for the TabManager Thanks. It did take some time to get working. > My comments are as follows: > > 1) I think you should also post a copy using the > sourceforge patch system. If you don't have CVS access > (can't see why not) I can upload these changes by > weekend. I have read access to CVS. I don't really want write access as I may break things. If TabManager is tested on a mac and all is well please add it to CVS. > 2) Any (quick ref) documentation on how to use the new > features? If I can. Is there a quick ref html auto generation system that works from definition lists? > 3) Is the callSubmitFn() necessary? I see where you're > already using the onsubmit event which in my opion > will make the callSubmitFn redundant. I don't understand? Say we have 10 menus x 8 tab buttons (like my Acronyms datasource + 9 other data tables). Now the onsubmit event listener neatly changes the tab color for all 80 buttons but how would it know what action to take? Say the event was from the tab that refered to datasource instance 7 and required a call to the moveLast method. A big if () ... else if() ... else if() ... 80 times? 1) the user can add a unique name to each tab and do a big if statement for all tab instances in the onsubmit event listener 2) addSubmitFn('dsInstanceN.methodN()') to each tab and one src.callSubmitFn() in the event listener 3) add a unique name to each tab that defines the action (only simple callbacks and '-' replaces the '.') tabNM.setID('dsInstanceN-methodM()') This is used in the Acronyms datasource example. I had hoped that a page of many datasource menus could be auto generated with attributes defined in <style> .. tags. Then as in 3 above object style #dsInstanceN-methodM { left:x; ..} would give the correct callback. > Please see below for other comments: Yes I have replied below. > --- Kevin <ke...@ke...> wrote: > > Hi, > > > > Here is the TabManager code and a couple of > > demonstrations. > > Unpack in the dynapi3x root directory. > > > > Is there a dependency between IOElement/DataSource > > and > > functions. I didn't think I'd have to explicitly > > include it. > > Yes, there is a dependency between the IOElement and > DataSource libraries. By including DataSource > IOElement will be automatically included. I was refering to functions not automatically included. I like the dependency chain. So DataSource includes IOElement which the functions either need? > > Also > > a fix for problems with the _destroy system. > > Ok > > > Thanks for the comments about my BorderManager > > updates. > > I don't have much time to work on it at the moment. > > Understand. We'll try to see how best we can merge the > two together. > > > Anyway > > have fun with TabManager. I've given up with any > > real use of > > style sheets as it would require several changes to > > the api and > > getting agreement for this would be difficult. > > I thought the getElmWidth resolved all that? Mmm maybe! This was just w,h if I remember right. IMO left,top,width,height,clip,visibility,z-index, background-color,background-image etc. may have their default values set in head <style> ... </style> tags. The api setting z-index=1, w,h=0, visible=true etc. is passed through to getOuterHTML messes style sheet defaults. The api shouldn't touch. When the element is rendered does _assignElement need to look at css and fill in the null attributes of the DynLayer instance. If it does it should do it for all values that could have come from style sheets. I have tried most of this then to find various quirks in NS4. Also how to get at css values in Mozilla they are blank if set in <style> ... </style> and ok if set in style=" " (we have currentStyle in IE). Anyway that was it so I gave up :( - Kevin > Keep up the good work. > > -- > Raymond Irving > > > - > > Kevin. > > > > > ATTACHMENT part 2 application/x-zip-compressed > name=tabmanager-update.zip > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://www.mail-archive.com/dyn...@li.../ |
From: Raymond I. <xw...@ya...> - 2003-05-18 17:56:20
|
--- Kevin <ke...@ke...> wrote: > ..... I have read access to CVS. I don't really want write > access > as I may break things. If TabManager is tested on a > mac and > all is well please add it to CVS. > > > 2) Any (quick ref) documentation on how to use the > new > > features? > > If I can. Is there a quick ref html auto generation > system that > works from definition lists? No, not as yet > > 3) Is the callSubmitFn() necessary? I see where > you're > > already using the onsubmit event which in my opion > > will make the callSubmitFn redundant. > > I don't understand? Say we have 10 menus x 8 tab > buttons > (like my Acronyms datasource + 9 other data tables). > Now > the onsubmit event listener neatly changes the tab > color for > all 80 buttons but how would it know what action to > take? > Say the event was from the tab that refered to > datasource > instance 7 and required a call to the moveLast > method. > A big if () ... else if() ... else if() ... 80 > times? > > 1) the user can add a unique name to each tab and do > a big > if statement for all tab instances in the onsubmit > event listener > 2) addSubmitFn('dsInstanceN.methodN()') to each tab > and > one src.callSubmitFn() in the event listener > 3) add a unique name to each tab that defines the > action (only > simple callbacks and '-' replaces the '.') > tabNM.setID('dsInstanceN-methodM()') > This is used in the Acronyms datasource example. I understand. > I had hoped that a page of many datasource menus > could be > auto generated with attributes defined in <style> .. > tags. Then > as in 3 above object style #dsInstanceN-methodM { > left:x; ..} > would give the correct callback. > <...........clipped..............> > > Yes, there is a dependency between the IOElement > and > > DataSource libraries. By including DataSource > > IOElement will be automatically included. > > I was refering to functions not automatically > included. I like > the dependency chain. So DataSource includes > IOElement > which the functions either need? Correct. > > > Anyway > > > have fun with TabManager. I've given up with any > > > real use of > > > style sheets as it would require several changes > to > > > the api and > > > getting agreement for this would be difficult. > > > > I thought the getElmWidth resolved all that? > > Mmm maybe! This was just w,h if I remember right. > > IMO left,top,width,height,clip,visibility,z-index, > background-color,background-image etc. may have > their default values set in head <style> ... > </style> tags. > The api setting z-index=1, w,h=0, visible=true etc. > is > passed through to getOuterHTML messes style sheet > defaults. The api shouldn't touch. When the element > is > rendered does _assignElement need to look at css and > fill in the null attributes of the DynLayer > instance. If it > does it should do it for all values that could have > come > from style sheets. I have tried most of this then to > find > various quirks in NS4. Also how to get at css values > in > Mozilla they are blank if set in <style> ... > </style> and > ok if set in style=" " (we have currentStyle in IE). > Anyway that was it so I gave up :( Sound like you'ld more want to use the DynLayer.getInline() features. This will return all the valid <style> settings for the layer. In any case I think this low priority for now. We can leave ot out for now. -- Raymond Irving > - > Kevin > > > Keep up the good work. > > > > -- > > Raymond Irving > > > > > - > > > Kevin. > > > > > > > > ATTACHMENT part 2 application/x-zip-compressed > > name=tabmanager-update.zip > > _______________________________________________ > > Dynapi-Dev mailing list > > Dyn...@li... > > > http://www.mail-archive.com/dyn...@li.../ > > > ------------------------------------------------------- > This SF.net email is sponsored by: If flattening out > C++ or Java > code to make your application fit in a relational > database is painful, > don't do it! Check out ObjectStore. Now part of > Progress Software. > http://www.objectstore.net/sourceforge > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://www.mail-archive.com/dyn...@li.../ __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Raymond I. <xw...@ya...> - 2003-05-18 18:38:51
|
Hi, I've looked at the setBorder(objectparam) design but because we have to always create a object {} as for the inputed params that method will be slower than the setBorder(b,c) or setBorder2(b,c) methods. I would like to suggest that we do the following: setInnerBorder(b,c) - same as setBorder() - only colors will be supported setOuterBorder(b,c) - uses kevin's new setBorder2() design with images what do you think about calling the functions setInnerBorder() and setOuterBorder()? Please give some feedback on these as soon as posible as I'm getting ready to send some changes to the CVS -- Raymond Irving __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Kevin <ke...@ke...> - 2003-05-19 17:28:46
|
See below. "Raymond Irving" <xw...@ya...> wrote: > Hi, > > I've looked at the setBorder(objectparam) design but > because we have to always create a object {} as for > the inputed params that method will be slower than the > setBorder(b,c) or setBorder2(b,c) methods. I would > like to suggest that we do the following: Perhaps we need to rethink the interface. One idea with strings: // like css border-width:1px 4px 4px 1px; var widths="1 4 4 1" // like css this defaults bottom=top left=right etc. var imgSides="imgtop.png imgright.png" // have similar default order for corners var imgCorners="imgtopright.gif imgbottomright.gif imgbottomleft.gif imgtopleft.gif" var content1=parentwidget.addChild(new DynLayer(...)) // widths gives all corner/side/image/anchor data var frame1=new Frame(widths,null,null,imgSides,imgCorners); var container1=content1.addBorderFrame(frame1) // ? or whatever method name > setInnerBorder(b,c) - same as setBorder() - only > colors will be supported // perhaps instead: var widths="2 1" // ie. 2 1 2 1 var colSides="red green #eeeeee blue" var container1=content1.addBorder(widths,colSides) > setOuterBorder(b,c) - uses kevin's new setBorder2() > design with images // change to: var frame1=new Frame(widths,colSides,colCorners,imgSides,imgCorners); // or 4 params var frame1=new Frame(widths,colSides,imgSides,imgCorners); Maybe just 4 params? Would we want a differnent corner color to show through a transparent gif? Well this is my thinking so far. A bit more to do but I tend to agree with Benoit's Frame instance idea. Now the user would have to know they are dealing with a different container object and this removes my naff copy to a new content layer :) Also like Raymond mentioned no performance problem with a big dictionary object - just 4 or 5 strings to parse. And no "bottom-right ..." names because of the agreed css+ order. I used "ne ... nw" etc.. to save a lot of typing. > what do you think about calling the functions > setInnerBorder() and setOuterBorder()? Please give > some feedback on these as soon as posible as I'm > getting ready to send some changes to the CVS IMO we shouldn't have inner borders as they clip the content. Any comment about the above re-design? - Kevin > -- > Raymond Irving > > __________________________________ > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. > http://search.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: If flattening out C++ or Java > code to make your application fit in a relational database is painful, > don't do it! Check out ObjectStore. Now part of Progress Software. > http://www.objectstore.net/sourceforge > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://www.mail-archive.com/dyn...@li.../ |
From: Raymond I. <xw...@ya...> - 2003-05-19 18:04:57
|
Well, parsing the string would require us to use split() functions which is another performance hit. IMO I don't see anything wrong with the current agruments being past to setBorder2 . If it can by simplified then that's also ok with me. I personally use inner borders for some new components that I'm working on. But if this is not the way to go then I would suggest that we discard the code in setBorder() and use the one in setBorder2(). In this way we will only have one setBorder() function. Agree? -- Raymond Irving --- Kevin <ke...@ke...> wrote: > > See below. > > "Raymond Irving" <xw...@ya...> wrote: > > > Hi, > > > > I've looked at the setBorder(objectparam) design > but > > because we have to always create a object {} as > for > > the inputed params that method will be slower than > the > > setBorder(b,c) or setBorder2(b,c) methods. I would > > like to suggest that we do the following: > > Perhaps we need to rethink the interface. One idea > with strings: > > // like css border-width:1px 4px 4px 1px; > var widths="1 4 4 1" > > // like css this defaults bottom=top left=right etc. > var imgSides="imgtop.png imgright.png" > > // have similar default order for corners > var imgCorners="imgtopright.gif imgbottomright.gif > imgbottomleft.gif imgtopleft.gif" > > var content1=parentwidget.addChild(new > DynLayer(...)) > > // widths gives all corner/side/image/anchor data > var frame1=new > Frame(widths,null,null,imgSides,imgCorners); > var container1=content1.addBorderFrame(frame1) // ? > or whatever method name > > > setInnerBorder(b,c) - same as setBorder() - only > > colors will be supported > > // perhaps instead: > var widths="2 1" // ie. 2 1 2 1 > var colSides="red green #eeeeee blue" > var container1=content1.addBorder(widths,colSides) > > > setOuterBorder(b,c) - uses kevin's new > setBorder2() > > design with images > > // change to: > var frame1=new > Frame(widths,colSides,colCorners,imgSides,imgCorners); > // or 4 params > var frame1=new > Frame(widths,colSides,imgSides,imgCorners); > > Maybe just 4 params? Would we want a differnent > corner color to show > through a transparent gif? Well this is my thinking > so far. A bit more to > do but I tend to agree with Benoit's Frame instance > idea. Now the user > would have to know they are dealing with a different > container object and > this removes my naff copy to a new content layer :) > Also like Raymond > mentioned no performance problem with a big > dictionary object - just 4 > or 5 strings to parse. And no "bottom-right ..." > names because of the > agreed css+ order. I used "ne ... nw" etc.. to save > a lot of typing. > > > what do you think about calling the functions > > setInnerBorder() and setOuterBorder()? Please give > > some feedback on these as soon as posible as I'm > > getting ready to send some changes to the CVS > > IMO we shouldn't have inner borders as they clip the > content. > Any comment about the above re-design? > > - > Kevin > > > -- > > Raymond Irving > > > > __________________________________ > > Do you Yahoo!? > > The New Yahoo! Search - Faster. Easier. Bingo. > > http://search.yahoo.com > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: If flattening > out C++ or Java > > code to make your application fit in a relational > database is painful, > > don't do it! Check out ObjectStore. Now part of > Progress Software. > > http://www.objectstore.net/sourceforge > > _______________________________________________ > > Dynapi-Dev mailing list > > Dyn...@li... > > > http://www.mail-archive.com/dyn...@li.../ > > > ------------------------------------------------------- > This SF.net email is sponsored by: If flattening out > C++ or Java > code to make your application fit in a relational > database is painful, > don't do it! Check out ObjectStore. Now part of > Progress Software. > http://www.objectstore.net/sourceforge > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://www.mail-archive.com/dyn...@li.../ __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |