Thanks for your great help so far guys . I'm going down the list of errors , trying to change from a tree with Files to a tree with People in my demo app .
I'll shoot some more questions , please free to answer or tell me they are stupid and i should research some more to formulate better questions :) q : looking at the Tree example code on the tacos.sf page , it looks like there is a method select , that's the listener of the link . On the alpha 7 demo , I'm looking at the codde and this method now calls 2 very complex and scenario specific methods : ensurePreviousRefresh and getInteresectingParent ( through the first metho ) . Are theese two methods now required ? I tried running my code without them , just like the example on the page shows but I'm getting a wierd error on renderPage Caused by: java.lang.ArrayStoreException . On 11/29/05, Andreas Andreou <[EMAIL PROTECTED]> wrote: > > > Cosmin Bucur wrote: > > >ok then i'll ask about another general ideea that i need to get . > > > >first off : > > > >Can the Tree display objects of multiple types ? > > > > > Yes, actually you display the data. > > Take a look at the example at > http://tacos.sourceforge.net/components/Tree.html > > See the html template. Each node there is rendered by the > 3 spans that are surrounded by the tree component. So, you can put > some conditionals there or find a more OO way to render your > different objects... > > >Like i was saying if i want to have a tree displaying Person nodes at > >the root , but then each Person node would have a list of Drug nodes , > >and each Drug node would have a list of Chemical nodes ? > > > >Or do I , in this case create an Item object , that servevs as a > >holder for Person , Drug and Chemical ? > > > >Cosmin > > > >On 11/29/05, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: > > > > > >>Yep :) You've got the general idea now :) > >> > >> > >>On 11/29/05, Cosmin Bucur <[EMAIL PROTECTED]> wrote: > >> > >> > >>>ok so this way , one comparator method could dinamically sort by > >>>different things ? > >>> > >>>For example you have a list of Person objecs and each Person object > >>>has a list of Drug objects which would be displayed as subelements of > >>>the Person tree node . ( Drug don't concern us now , but i'm > >>>anticipating further questions based on this model ) > >>> > >>>Person would have an id , firstname and lastname > >>> > >>>( congratulations Jesse on joining Tapestry ) > >>> > >>>so say you want to filter Person objects in the tree by ID . > >>> > >>>the comparator would then be : > >>> > >>>Person p1 = (Person)o1; > >>>Person p2 = (Person)o2; > >>> > >>>if ( p1.getId() > p2.getId() ) { return 1; } ... ... ... > >>> > >>>So this would give me sorting by ID , listing the Person tree nodes , > >>>based on the numberical value of their id . Then I could implement a > >>>different comparator if i'd want to sort by FirstName , LastName ... > >>> > >>>correct so far ? > >>> > >>> > >>> > >>>On 11/29/05, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>>Alright, but only because I made you suffer so much with the initial > >>>> > >>>> > >>bugs > >> > >> > >>>>you found in cvs ;) > >>>> > >>>>The File Tree demo that you are looking at uses the "comparator" > >>>> > >>>> > >>parameter > >> > >> > >>>>of tree, which as the documentation states, is used to sort the given > >>>>elements in your ITreeContentProvider interface. > >>>> > >>>>This makes sense in the context of the FileTree demo, because the > >>>> > >>>> > >>contents > >> > >> > >>>>aren't sorted by default and could result in random results for each > >>>>request. > >>>> > >>>>The Comparator interface is native to the java api, you can find it in > >>>> > >>>> > >>any > >> > >> > >>>>javadoc for it. (ie > >>>>http://java.sun.com/j2se/1.4.2/docs/api/index.html ). > >>>>Basically, it's almost the same idea as the good old equals(Object obj) > >>>>interface that every java object has. Comparing two values for ordering > >>>>isn't quite as simple to provide by default, which is why the interface > >>>>exists. > >>>> > >>>>The values that you return aren't strict, it's just ~your~ way of > >>>> > >>>> > >>comparing > >> > >> > >>>>them. Tell me what objects you're displaying and I can tell you how to > >>>>compare them. So...being hypothetical, let's say that you have a tree of > >>>>umm....Drugs...Not that a tree makes sense in that instance, but we'll > >>>> > >>>> > >>say > >> > >> > >>>>that's what we're doing anyways... > >>>> > >>>>You could implement Comparator this way: > >>>> > >>>>Drug d1 = (Drug)obj1; > >>>>Drug d2 = (Drug)obj2; > >>>> > >>>>if (d1.getBillPackSize() > d2.getBillPackSize ()) > >>>> return +1; > >>>>else if (d1.getBillPackSize() == d2.getBillPackSize ()) > >>>> return 0; > >>>>else > >>>> return -1; //it has to be less than > >>>> > >>>>You could also sort the drugs by their generic names: > >>>>Drug d1 = (Drug)obj1; > >>>>Drug d2 = (Drug)obj2; > >>>> > >>>>return d1.getGenericName().compareTo(d2.getGenericName()); > >>>> > >>>>You'll notice I'm being a little tricky here, in my version of a Drug > >>>> > >>>> > >>object > >> > >> > >>>>getGenericName returns a String. The tricky part is that if you go > >>>> > >>>> > >>lookup > >> > >> > >>>>the javadocs for String you'll see that it implements Comparable. So > >>>> > >>>> > >>they've > >> > >> > >>>>done the work for us already, woo hoo! ;) Here is what String says it > >>>> > >>>> > >>does > >> > >> > >>>>to implement it: > >>>> > >>>>Compares this String to another Object. If the Object is a String, this > >>>>function behaves like compareTo(String). Otherwise, it throws a > >>>>ClassCastException (as Strings are comparable only to other Strings). > >>>> > >>>>Specified by:compareTo in interface ComparableParameters:o - the Object > >>>> > >>>> > >>to > >> > >> > >>>>be compared. Returns:the value 0 if the argument is a string > >>>>lexicographically equal to this string; a value less than 0 if the > >>>> > >>>> > >>argument > >> > >> > >>>>is a string lexicographically greater than this string; and a value > >>>> > >>>> > >>greater > >> > >> > >>>>than 0 if the argument is a string lexicographically less than this > >>>> > >>>> > >>string. > >> > >> > >>>>So...You can really return whatever the hell you feel like, just make > >>>> > >>>> > >>sure > >> > >> > >>>>that your logic is consistent. > >>>> > >>>> > >>>> > >>>>On 11/29/05, Cosmin Bucur <[EMAIL PROTECTED]> wrote: > >>>> > >>>> > >>>>>if there are any hints or tips that you think a noob might make good > >>>>>use of when starting with Tree let me know , other than that i'll just > >>>>>do my best to formulate some answerable questions :) > >>>>> > >>>>>On 11/29/05, Cosmin Bucur < [EMAIL PROTECTED]> wrote: > >>>>> > >>>>> > >>>>>>UGH ... i'm failing to see the big picture with the tree big time > >>>>>> > >>>>>> > >>... > >> > >> > >>>>>>But I think that this sorter isn't as critical as other things . > >>>>>> > >>>>>> > >>I'll > >> > >> > >>>>>>keep on banging my head against it , dooing test deploy after test > >>>>>>deploy and will try to form some more educated questions ... > >>>>>> > >>>>>>it's obvious i'm sure , but this is so unclear and confusing to me , > >>>>>>that i can't even form a proper question that would help me get it . > >>>>>> > >>>>>> > >>. > >> > >> > >>>>>>. > >>>>>> > >>>>>>On 11/29/05, Jesse Kuhnert <[EMAIL PROTECTED] > wrote: > >>>>>> > >>>>>> > >>>>>>>public int compare(Object o1, > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>Object o2) > >>>>>> > >>>>>> > >>>>>>>Compares its two arguments for order. Returns a negative integer, > >>>>>>> > >>>>>>> > >>>>zero, or a > >>>> > >>>> > >>>>>>>positive integer as the first argument is less than, equal to, or > >>>>>>> > >>>>>>> > >>>>greater > >>>> > >>>> > >>>>>>>than the second. > >>>>>>> > >>>>>>>The implementor must ensure that sgn(compare(x, y)) == > >>>>>>> > >>>>>>> > >>-sgn(compare(y, > >> > >> > >>>>x)) > >>>> > >>>> > >>>>>>>for all x and y. (This implies that compare(x, y) must throw an > >>>>>>> > >>>>>>> > >>>>exception if > >>>> > >>>> > >>>>>>>and only if compare(y, x) throws an exception.) > >>>>>>> > >>>>>>>The implementor must also ensure that the relation is transitive: > >>>>>>>((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0. > >>>>>>> > >>>>>>>Finally, the implementer must ensure that compare(x, y)==0 implies > >>>>>>> > >>>>>>> > >>>>that > >>>> > >>>> > >>>>>>>sgn(compare(x, z))==sgn(compare(y, z)) for all z. > >>>>>>> > >>>>>>>It is generally the case, but not strictly required that > >>>>>>> > >>>>>>> > >>(compare(x, > >> > >> > >>>>y)==0) > >>>> > >>>> > >>>>>>>== ( x.equals(y)). Generally speaking, any comparator that > >>>>>>> > >>>>>>> > >>violates > >> > >> > >>>>this > >>>> > >>>> > >>>>>>>condition should clearly indicate this fact. The recommended > >>>>>>> > >>>>>>> > >>language > >> > >> > >>>>is > >>>> > >>>> > >>>>>>>"Note: this comparator imposes orderings that are inconsistent > >>>>>>> > >>>>>>> > >>with > >> > >> > >>>>equals." > >>>> > >>>> > >>>>>>>Parameters:o1 - the first object to be compared.o2 - the second > >>>>>>> > >>>>>>> > >>object > >> > >> > >>>>to be > >>>> > >>>> > >>>>>>>compared. Returns:a negative integer, zero, or a positive integer > >>>>>>> > >>>>>>> > >>as > >> > >> > >>>>the > >>>> > >>>> > >>>>>>>first argument is less than, equal to, or greater than the second. > >>>>>>> > >>>>>>> > >>>>Throws: > >>>> > >>>> > >>>>>>>ClassCastException - if the arguments' types prevent them from > >>>>>>> > >>>>>>> > >>being > >> > >> > >>>>>>>compared by this Comparator. > >>>>>>> > >>>>>>> > >>>>>>>On 11/29/05, Cosmin Bucur <[EMAIL PROTECTED]> wrote: > >>>>>>> > >>>>>>> > >>>>>>>>The value returned does not come from the comparator logic , but > >>>>>>>> > >>>>>>>> > >>>>from > >>>> > >>>> > >>>>>>>>a method inside the File object . I won't be using File so I > >>>>>>>> > >>>>>>>> > >>need to > >> > >> > >>>>>>>>know what int value i need to return from compare(Object o , > >>>>>>>> > >>>>>>>> > >>Object > >> > >> > >>>>o2 > >>>> > >>>> > >>>>>>>>) under which cases > >>>>>>>> > >>>>>>>>On 11/29/05, Cosmin Bucur <[EMAIL PROTECTED]> wrote: > >>>>>>>> > >>>>>>>> > >>>>>>>>>I wanted to know what values the Tacos tree is expecting for > >>>>>>>>> > >>>>>>>>> > >>what > >> > >> > >>>>cases > >>>> > >>>> > >>>>>>>>>Maybe it's just me having holes in my basic java knowledge > >>>>>>>>> > >>>>>>>>> > >>then , > >> > >> > >>>>and > >>>> > >>>> > >>>>>>>>>in this case working with the Comparator interface is a > >>>>>>>>> > >>>>>>>>> > >>>>prerequisite > >>>> > >>>> > >>>>>>>>>of beeing able to manipulate tacos:Tree ? > >>>>>>>>> > >>>>>>>>>On 11/29/05, Jesse Kuhnert < [EMAIL PROTECTED] > wrote: > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>>The Comparator interface is a java construct. Lots of the > >>>>>>>>>> > >>>>>>>>>> > >>java > >> > >> > >>>>>>>internals > >>>>>>> > >>>>>>> > >>>>>>>>>>already implement Comparable, like String/numbers/etc.. (I > >>>>>>>>>> > >>>>>>>>>> > >>>>think). > >>>> > >>>> > >>>>>>>>>>Not sure what you want explained here? There are probably > >>>>>>>>>> > >>>>>>>>>> > >>lots > >> > >> > >>>>of > >>>> > >>>> > >>>>>>>tutorials > >>>>>>> > >>>>>>> > >>>>>>>>>>on this on the net. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>On 11/29/05, Cosmin Bucur < [EMAIL PROTECTED]> wrote: > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>I just want to build my own type of PartialTree , that > >>>>>>>>>>> > >>>>>>>>>>> > >>instead > >> > >> > >>>>of > >>>> > >>>> > >>>>>>>>>>>files shows other objects . > >>>>>>>>>>> > >>>>>>>>>>>In fact the scenario is a bit different as the objects > >>>>>>>>>>> > >>>>>>>>>>> > >>shown > >> > >> > >>>>in the > >>>> > >>>> > >>>>>>>>>>>tree are not a single type of object ( allthohugh I might > >>>>>>>>>>> > >>>>>>>>>>> > >>need > >> > >> > >>>>to > >>>> > >>>> > >>>>>>>>>>>write a single type of object enccapsulating > >>>>>>>>>>> > >>>>>>>>>>> > >>diferentiation > >> > >> > >>>>logic > >>>> > >>>> > >>>>>>>... > >>>>>>> > >>>>>>> > >>>>>>>>>>>i don't know , still trying to get how the tree's working > >>>>>>>>>>> > >>>>>>>>>>> > >>) > >> > >> > >>>>>>>>>>>Right now i'm stuck at the FileComparator . My first baby > >>>>>>>>>>> > >>>>>>>>>>> > >>step > >> > >> > >>>>was > >>>> > >>>> > >>>>>>>to > >>>>>>> > >>>>>>> > >>>>>>>>>>>recreate Partial Tree in my app , and get it working . Got > >>>>>>>>>>> > >>>>>>>>>>> > >>>>that . > >>>> > >>>> > >>>>>>>Now > >>>>>>> > >>>>>>> > >>>>>>>>>>>next step is to replace the File objects in the tree with > >>>>>>>>>>> > >>>>>>>>>>> > >>>>something > >>>> > >>>> > >>>>>>>>>>>else that at least gets shown on the new level , and the > >>>>>>>>>>> > >>>>>>>>>>> > >>link > >> > >> > >>>>logic > >>>> > >>>> > >>>>>>>>>>>works ... > >>>>>>>>>>> > >>>>>>>>>>>My question here is . The compare method returns and int . > >>>>>>>>>>> > >>>>>>>>>>> > >>I > >> > >> > >>>>looked > >>>> > >>>> > >>>>>>>at > >>>>>>> > >>>>>>> > >>>>>>>>>>>the javaDocs and it looks like the method used on the file > >>>>>>>>>>> > >>>>>>>>>>> > >>>>could > >>>> > >>>> > >>>>>>>>>>>return a 0 , negativev or positive int . . . > >>>>>>>>>>> > >>>>>>>>>>>What and how would I return stuff here ? ? ?? > >>>>>>>>>>> > >>>>>>>>>>>I am very confused , a simple tree with no links it's easy > >>>>>>>>>>> > >>>>>>>>>>> > >>to > >> > >> > >>>>get , > >>>> > >>>> > >>>>>>>>>>>but when you need something that actually has > >>>>>>>>>>> > >>>>>>>>>>> > >>functionality > >> > >> > >>>>... > >>>> > >>>> > >>>>>>>>>>>Thanks . > >>>>>>>>>>>cosmin > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>------------------------------------------------------- > >>>> > >>>> > >>>>>>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep > >>>>>>>>>>> > >>>>>>>>>>> > >>>>through > >>>> > >>>> > >>>>>>>log > >>>>>>> > >>>>>>> > >>>>>>>>>>files > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>for problems? Stop! Download the new AJAX search engine > >>>>>>>>>>> > >>>>>>>>>>> > >>that > >> > >> > >>>>makes > >>>> > >>>> > >>>>>>>>>>>searching your log files as easy as surfing the web. > >>>>>>>>>>> > >>>>>>>>>>> > >>>>DOWNLOAD > >>>> > >>>> > >>>>>>>SPLUNK! > >>>>>>> > >>>>>>> > >>>>http://ads.osdn.com/?ad_idv37&alloc_id865&opclick > >>>> > >>>> > >>>>_______________________________________________ > >>>> > >>>> > >>>>>>>>>>>Tacos-devel mailing list > >>>>>>>>>>>[email protected] > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>https://lists.sourceforge.net/lists/listinfo/tacos-devel > >> > >> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>------------------------------------------------------- > >>>> > >>>> > >>>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep > >>>>>>>> > >>>>>>>> > >>through > >> > >> > >>>>log > >>>> > >>>> > >>>>>>>files > >>>>>>> > >>>>>>> > >>>>>>>>for problems? Stop! Download the new AJAX search engine that > >>>>>>>> > >>>>>>>> > >>makes > >> > >> > >>>>>>>>searching your log files as easy as surfing the web. DOWNLOAD > >>>>>>>> > >>>>>>>> > >>>>SPLUNK! > >>>> > >>>> > >>http://ads.osdn.com/?ad_idv37&alloc_id865&opclick > >> > >> > >>>>>>>>_______________________________________________ > >>>>>>>>Tacos-devel mailing list > >>>>>>>>[email protected] > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>https://lists.sourceforge.net/lists/listinfo/tacos-devel > >> > >> > >>>>>>> > >>>>>>> > >>>>> > >>>>> > >>>>> > >>------------------------------------------------------- > >> > >> > >>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log > >>>>> > >>>>> > >>>>files > >>>> > >>>> > >>>>>for problems? Stop! Download the new AJAX search engine that makes > >>>>>searching your log files as easy as surfing the web. DOWNLOAD > >>>>> > >>>>> > >>SPLUNK! > >> > >> > >>>>>http://ads.osdn.com/?ad_idv37&alloc_id865&opclick > >>>>>_______________________________________________ > >>>>>Tacos-devel mailing list > >>>>>[email protected] > >>>>> > >>>>> > >>>>> > >>https://lists.sourceforge.net/lists/listinfo/tacos-devel > >> > >> > >>>> > >>>> > >>>------------------------------------------------------- > >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log > >>> > >>> > >>files > >> > >> > >>>for problems? Stop! Download the new AJAX search engine that makes > >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > >>>http://ads.osdn.com/?ad_idv37&alloc_id865&opclick > >>>_______________________________________________ > >>>Tacos-devel mailing list > >>>[email protected] > >>>https://lists.sourceforge.net/lists/listinfo/tacos-devel > >>> > >>> > >>> > >> > >> > > > > > >------------------------------------------------------- > >This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > >for problems? Stop! Download the new AJAX search engine that makes > >searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > >http://ads.osdn.com/?ad_idv37&alloc_id865&op�k > >_______________________________________________ > >Tacos-devel mailing list > >[email protected] > >https://lists.sourceforge.net/lists/listinfo/tacos-devel > > > > > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&opclick > _______________________________________________ > Tacos-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/tacos-devel >
