My problem has nothing to with the storage of rows in the database. Things work fine after a database refresh (the Strandz framework takes care of that).

I just want to insert at a particular point in the detail list. If this can be achieved then the user can navigate around the DO graph and come back to the DO he inserted - and it will still be in the place where he put it. That's all I want!

Anyway the solution for ROP would seem to be the same as for server DOs. I have written this extra method in the client version of Worker:

   /**
    * Copied from super and altered to allow adding at a particular point
    */
   public void addToRosterSlots(RosterSlot object, int index)
   {
       if(objectContext != null) {
           objectContext.prepareForAccess(this, "rosterSlots");
       }

       this.rosterSlots.add( index, object);
   }

The only changes I am making in these extra methods is that I am using add(index, object) rather than add(object). Wouldn't it be a good idea for the generated methods to have the extra int argument?

- Chris

Scott Anderson wrote:
If you put a new entry in the middle of the list, it's still going to
boil down to a vanilla INSERT. Since DB tables are FIFO, your row will
jump to the end of the list the after a refresh.

If order is important to your application, you'll have to come up with a
way that the database will respect. That could mean, among other things,
sorting on a field, or using relationships to daisy-chain the records
like a linked list.



--
Seaweed Software Pty Ltd,
http://www.strandz.org

Reply via email to