I'm trying to create a way for users to add multiple "worm" objects to 
an "apple" object in a many-to-many relationship, so I could access them 
as apple.worms (which returns a Java set, it seems).

The first hassle was trying to find the best interface. I rejected a 
multi-select box because people have a hell of a time with it, 
especially on an edit where if you forget to hold the Control (Command) 
key down while selecting, you could delete the previously selected objects.

I also rejected a two-box solution where you use left and right arrows 
to move from the pool of objects to the attached objects (or back 
again). This also is difficult for some people and a pain to implement.

Instead, I like the idea of a simple single item select menu and an Add 
button using AJAX to add the worm to the apple. To make this simpler, by 
form is multi-page. You create an apple first, then on the next page you 
can add worms (and other m-m things). So the AJAX always has a 
persistent apple to which to add the worms.

Better ideas welcome, but this is sufficient.

The worms then have a Remove button next to them which permits the 
association between them and the apple to be deleted.

(I also plan a pop-up form that allows one to add new worms from within 
the apple form.)

So now I want to populate the drop down menu with the names of those 
worms *not already associated with the apple*. My first attempt was by 
pulling down a set of all the worms (there won't be many) and stuffing 
it in a val. Then I made a list of all the worms associated with the 
apple. Then -- heh, heh -- I cleverly subtracted the latter from the 
former to get the unused worms.

Except that it didn't work, of course. They may be the same worms, but 
the system sees them as two different objects for some reason. Now it's 
getting complicated. Do I have to compare them on the ID?

There must be a better way.

So, has anyone done anything like this using JPA/Hibernate and Lift, or 
am I on my own?

Thanks!

Chas.

P.S. As usual, I need this like yesterday, so I'll continue working on it...

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to