|
From: Josep M. i T. <jm...@ne...> - 2000-12-15 17:57:55
|
And DynLayer_flagDeleteChildren has to be changed to (see the last Re:
dynimage.js (gui) please)
function DynLayer_flagDeleteChildren(dlyr){
for (var i=0; i<dlyr.children.length; i++) {
if (dlyr.children[i].created) dlyr.children[i].deleteElement();
}
};
Josep
-----Mensaje original-----
De: Dan Steinman <dy...@fu...>
Para: dyn...@li... <dyn...@li...>
Fecha: viernes 15 de diciembre de 2000 15:51
Asunto: Re: [Dynapi-Dev] Large number of updates/fixes
>Just change the .createElement() call to DynLayer_createElement(dlyr).
>
>I changed the theme functions for Button, ScrollBar, PushPanel, and
Scrollpane to default to the standard images. I should have put a (url)
parameter in those functions. This can be changed quite easily:
>
>function MetalScrollPane(url) {
> if (!url) url = DynAPI.librarypath+'images/scrollpane/';
> ...
>}
>
>I mentioned I didn't update List yet. It probably just has to be slightly
modified in relation to the create and precreate events.
>
>Dan
>
>On Fri, Dec 15, 2000 at 08:20:48PM +1100, Peter Luxmore wrote:
>> Dan
>>
>> Just been testing what you have currently in CVS. I am using scrollpane
and loadpanel and the code is below.
>>
>> 1. In NS4.7 if you resize the browser window with the mouse, (especially
making it larger), results in the following error:
>>
>> JavaScript Error:
>> http://localhost/dynapi/src/lib/dynapi/api/dyndocument.js,
>> line 53:
>>
>> this.children[i].createElement is not a function.
>>
>> 2. MetalScrollPaneURL is not working in NS4.7 or IE5.1 and the default
scrollbar images are displayed.
>>
>> 3. The list widget is broken. Produces the following error in IE5.1:
>>
>> Line: 33
>> Char: 5
>> Error: 'css' is not an object
>> Code: 0
>> URL: http://localhost/CFCalc2/washerSelect.cfm
>>
>> -------------------------------------------------------------------------
------------------------------
>> <script language="JavaScript" src="../dynapi/src/dynapi.js"></script>
>> <script language="Javascript">
>> DynAPI.setLibraryPath('../dynapi/src/lib/');
>> DynAPI.include('dynapi.api.*');
>> DynAPI.include('dynapi.util.thread.js');
>> DynAPI.include('dynapi.util.pathanim.js');
>> DynAPI.include('dynapi.gui.dynimage.js');
>> DynAPI.include('dynapi.gui.button.js');
>> DynAPI.include('dynapi.gui.scrollbar.js');
>> DynAPI.include('dynapi.gui.viewport.js');
>> DynAPI.include('dynapi.gui.scrollpane.js');
>> DynAPI.include('dynapi.gui.label.js');
>> DynAPI.include('dynapi.gui.list.js');
>> DynAPI.include('dynapi.gui.loadpanel.js');
>>
>> // this should be replaced with a default image location based on
DynAPI.librarypath
>> MetalScrollPaneURL = DynAPI.librarypath+"dynapi/images/mypane/"
>>
>> </script>
>> <script language="Javascript">
>>
>> DynAPI.onLoad = function() {
>> MetalScrollPaneURL = DynAPI.librarypath+"dynapi/images/mypane/"
>>
>> infoPanel = new LoadPanel()
>> infoPanel.setSize(220,233)
>> infoPanel.moveTo(478,197)
>>
>> scroller = new ScrollPane(infoPanel)
>> scroller.setSize(245,263)
>> scroller.moveTo(478,197)
>>
>> menulist = new List()
>> menulist.moveTo(5,230)
>> menulist.setWidth(160)
>> menulist.setBgColor('#000000')
>> menulist.boldOnSelect(true)
>> menulist.setSelectionMode(false)
>>
>> <cfoutput query="baseprofile">
>> menulist.add("#Brand# #Model#")
>> </cfoutput>
>>
>> DynAPI.document.addChild(scroller)
>>
>> <cfoutput query="DataSheet">
>> infoPanel.setURL('_inc.cfm?washerCode=#washerCode#')
>> </cfoutput>
>>
>> DynAPI.document.addChild(menulist)
>> }
>> //-->
>> </script>
>>
>> Regards
>> Peter Luxmore
>>
>> Dan Steinman wrote:
>>
>> > I've posted all my updates to CVS. I think touched every file.
>> >
>> > The significant changes were:
>> >
>> > - inline creation system for Netscape now worked directly into DynLayer
>> > - DynImage auto-resizing, this effected everything that was using
DynImage
>> > - some changes to how the "precreate", "create", and "resize" events
are handled
>> >
>> > The events took a while to work out. I didn't like how it was setup
before because it wasn't quite right when dealing with the new create
system.
>> > "precreate" should be used in widgets for doing most of the final
layout for a widget as well as setting images for the layers. Most of that
stuff used to be in the "create" event, but now with the inline creation
it's more effecient to do it in "precreate" because when you set the
size/location/images of the layers you won't be working with true DIV
elements rather with just the JS objects. The goal is to do as little work
with div's as possible before you create, so that by the time DynLayer
creates the layers it already knows the size and content of them.
>> >
>> > You still need the "create" event to check for content size, and that
sort of stuff.
>> >
>> > I had to remove all the checks for this.created from within the
DynLayer and replace them with checks for this.css!=null. The
"this.created" flag is now true once the layer/div element is created, and
final position/size has been set, AND all it's children are created also.
Peviously this.created was set to true before the children were created
which conflicts with the way the inline creation system is supposed to work.
I updated all the widgets to make sure everything was working ok with this
change.
>> >
>> > I made a few DynLayer methods into simple functions, create()
assignElement, flagChildren etc. These don't have to be methods because
they are never used manually.
>> >
>> > Also you now have to include browser.js BEFORE dynlayer.js because in
dynlayer I'm doing a check for Netscape/IE. I updated the dynapi include
list for this, but if you have any pages that don't do
include('dynapi.api.*') you will have to change the order yourself.
>> >
>> > DynImage.getImage() can be used before onLoad, the reason there was a
problem in IE is you need a break point between the include()'s and the rest
of the page. I updated all the examples so they look like this:
>> >
>> > <script src=dynapi.js>
>> > <script>
>> > DynAPI.setLibraryPath('../src/lib');
>> > DynAPI.include('dynapi.api.*');
>> > ...
>> > </script>
>> > <script>
>> >
>> > rest of code....
>> >
>> > </script>
>> >
>> > Some other minor changes I can remember is the setSize/Width/Height, I
made setSize call setWidth and setHeight, and in those I rearranged a few
things. I removed all references to getComponent() cause it's not needed
anymore. And DynImage.getImage won't return an Image object with .w and .h
tacked on, it's unecessary - if you have any code that uses the .w and .h,
just replace it with .width and .height.
>> >
>> > What is no longer working:
>> > - inline.js, I think something was wrong in IE
>> > - List - Scott A, sorry I didn't get around to fixing this one, I
checked it out in IE before all my changes and worked fantastic, I'd like to
get it working again. Probably just needs some precreate/create changes. I
broke it, so I'll fix it unless you want to take a stab at it.
>> >
>> > Major bugs we should fix before a stable release:
>> > - Loadpanel isn't working in IE4.
>> > - Label/button setSelectable still isn't working, anyone know what
changes are needed?
>> > - Inline creation system for IE - I could do this eventually but I want
to work on some other things first so if anyone else wants to give it a shot
you're welcome, it should be fairly easy now that the NS code has been
finalized.
>> >
>> > Dan
>> > _______________________________________________
>> > Dynapi-Dev mailing list
>> > Dyn...@li...
>> > http://lists.sourceforge.net/mailman/listinfo/dynapi-dev
>>
>>
>> _______________________________________________
>> Dynapi-Dev mailing list
>> Dyn...@li...
>> http://lists.sourceforge.net/mailman/listinfo/dynapi-dev
>_______________________________________________
>Dynapi-Dev mailing list
>Dyn...@li...
>http://lists.sourceforge.net/mailman/listinfo/dynapi-dev
|
|
From: Robert R. <rra...@ya...> - 2000-12-16 04:32:02
|
I haven't seen the new code yet but wouldn't it be
better if the new global functions were static methods
of the DynLayer. Like:
DynLayer.createElement = function(dlyr) {}
This way you would say DynLayer.createElement(). I
think this would make it more clear what the intent of
the functions were if they were static. I don't think
this would require any more memory than a global
function. For users looking at the code, I think a
static method would be more obvious. Of course, it
would not change the way it works.
Rob
--- Dan Steinman <dy...@fu...> wrote:
> Just change the .createElement() call to
> DynLayer_createElement(dlyr).
>
__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
|