[dojo-contributors] tree/dojo.data problems (nee: Re: [Dojo-interest] [ANN] Dojo 0.9 Final)

Jared Jurkiewicz jared.jurkiewicz at gmail.com
Mon Aug 20 22:46:46 EDT 2007


Or maybe I'm missing something (which is entirely possible).  It's
late and I'm tired.

Sincerely,
-- Jared Jurkiewicz


On 8/20/07, Jared Jurkiewicz <jared.jurkiewicz at gmail.com> wrote:
>    It actually was tested.  I had demos set up in dojox.data that did
> Tree against multiple store implementations to validate that Tree,
> ComboBox, etc, all worked properly against a variety of store impls.
> But that's nether here nor there, not will it change things now.  I
> recommend that changes made like that are done more carefully in the
> future and that when such changes are made, to do a grep across all of
> dojo, dijit, and dojox, and for any references, verify said changes do
> not break where the widget/whatever is being used.
>
>   As for parent pointers ... ItemFileReadStore can do that today.
> That's what the _reference type is for in the data file format.  You
> give it a reference identifier to another item (or items) in the
> store.
>
> Sincerely,
> -- Jared Jurkiewicz
>
> On 8/20/07, Bill Keese <bill at dojotoolkit.org> wrote:
> > Jared Jurkiewicz wrote:
> >
> > > Basically, it breaks dijit.Tree from working with any dojo.data
> > > Datastore except for ItemFileReadStore.
> >
> > That's too bad, although not surprising. (In general things that haven't
> > been tested don't work.)  I'm sure we'll find lots of other big problems
> > too, but they'll all get fixed in the end.
> >
> > You can workaround by setting:
> >
> > <script>
> > myStore._features = {};
> > </script>
> >
> > As for the identity API, Tree doesn't assume the store implements
> > getIdentity() but rather requires it, in the same way that Combobox
> > requires that it's store support filtering queries like "ca*".  It's a
> > subtle semantic difference.
> >
> > I'd like to agree w/Brian that all stores should implement getIdentity()
> > but maybe some data just doesn't have an id column?   For any store
> > where an id is possible to compute, I think you can make the store to
> > support getIdentity() in your markup w/the script tag:
> >
> > <div dojoType="dojox.data.fooStore" ...>
> >
> >         <script type='dojo/method' event='getIdentity' args=item>
> >                 return ... ;
> >         </script>
> >
> > </div>
> >
> > If supporting getIdentity() is an issue that we could make sure the tree
> > only requires getIdentity() if the store is also supporting the write API.
> >
> > By the way, I'm looking at making another demo now and I've realized
> > that Tree won't really work for normal relational data where items have
> > parent "pointers" rather than children lists.  IE:
> >
> > {type: "country", name: "united states", id: "US"},
> > {type: "state", name: "california", id: "CA", parent: "US"}
> >
> > That seems like the biggest issue of all to me.  Any ideas?  It seems
> > like we have to either modify the store to support getChildren() by
> > doing a query for all nodes with a given parent, or change the way Tree
> > works.
> > _______________________________________________
> > dojo-contributors mailing list
> > dojo-contributors at dojotoolkit.org
> > http://dojotoolkit.org/mailman/listinfo/dojo-contributors
> >
>



More information about the dojo-contributors mailing list