[Laszlo-dev] For Review: Change 20071105-jcrowley-a Summary: Find source of basedatacombobox-based components

J Crowley jcrowley at laszlosystems.com
Tue Nov 6 04:12:19 PST 2007


I'm not sure if the "invalid index" warning is such a good idea --  
from what I've seen (see /test/components/base/lzunit- 
basedatacombobox.lzx), people often use an index of -1 to deselect the  
items.  Might be confusing or annoying for someone to get a warning  
every time they do that.  Other than that, though, this looks like a  
much better approach, with the isValid() check for the dataset's data  
instead of using the ondata of a pointer.

Hrmm, so do you want to send out a changeset with your version and I  
can approve it, or should I send out an updated version of this one  
with your fix?

On Nov 6, 2007, at 6:53 AM, André Bargull wrote:

> Not approved!
>
> The xpath-processing is a bit too simple. What about xpaths like:  
> "ds:/root/node[@value='foo']/leaf" ?
>
> I prefer a more simple xpath-processing, just like it's done in  
> "basegrid": wait for the "ondata"-event of the dataset!
>
> I've attached another approach for this bug.
> + fixed nullpointer-bug in DHTML for "defaulttext"
> + removed my own comment ("local-dataset-modification by senshi")  
> and the debug-output
> + added temporarily a debug-warning for illegal indexes in  
> "basedatacombobox#_updateSelectionByIndex(..)"
>
>> Change 20071105-jcrowley-a by jcrowley at  
>> DoctorManhattan.mshome.net <http://www.openlaszlo.org/mailman/listinfo/laszlo-dev 
>> > on  2007-11-05 14:07:01 EST
>>     in /Users/jcrowley/src/svn/openlaszlo/trunk-g
>>     for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>> Summary: Find source of basedatacombobox-based components
>> 	with selectfirst="false" emits Debugger warnings
>>
>> New Features:
>>
>> Bugs Fixed: LPP-4704 : Find source of basedatacombobox-based
>> 	components with selectfirst="false" emits Debugger
>> 	warnings
>>
>> Technical Reviewer: henry
>> QA Reviewer: max
>> Doc Reviewer: (pending)
>>
>> Documentation:
>>
>> Release Notes:
>>
>> Details: This is a workaround for an issue involving
>> 	xpathQuery() calls from an oninit handler.
>> 	Basedatacombobox kept getting "p is null"
>> 	warnings because it was requesting data
>> 	before the data was actually there, and because
>> 	it doesn't itself have a datapath, but rather
>> 	string attributes like "itemdatapath" that it
>> 	uses in xpathQuery() calls, I couldn't just
>> 	move things from oninit to ondata.
>>
>> 	My solution, then, was to add a private
>> 	datapointer. The basedatacombobox sets the
>> 	datapointer's xpath to the first node of
>> 	itemdatapath, so that it's listening for at
>> 	least the initial data call.  The ondata
>> 	handler for this datapointer then makes the
>> 	calls to the method that has the various
>> 	xpathQuery() calls that had been getting called
>> 	too early.
>>
>> 	The "p is null" errors are expected in
>> 	situations where calls like this are made, but
>> 	we shouldn't be generating them from our own
>> 	base components.
>>
>> 	I'm not sure if this is the best possible
>> 	solution, necessarily, but it fixes the
>> 	issues while not seeming to break anything.
>>
>> Tests: The example attached to the bug.  Notice there
>> 	are no "p is null" warnings.  (You can compare
>> 	with an unmodified branch, if you'd like.)
>>
>> 	Also, run:
>> 	test/components/base/lzunit-basedatacombobox.lzx
>>
>> 	It operates as before, minus the "p is null"
>> 	warnings.
>>
>> Files:
>> M      lps/components/base/basedatacombobox.lzx
>>
>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071105-jcrowley-a.tar
>
> -- 
>
> Official OpenLaszlo-Committer ^_^
>
> <patch.zip>




More information about the Laszlo-dev mailing list