---------- Forwarded message ----------
From: Naftoli Gugenheim <naftoli...@gmail.com>
Date: Sun, Aug 2, 2009 at 4:12 PM
Subject: Re: New features
To: magnus.alves...@gmail.com


I put an article on the wiki about OneToMany --
http://wiki.github.com/dpp/liftweb/how-to-work-with-one-to-many-relationships
.


On Sun, Aug 2, 2009 at 11:20 AM, Naftoli Gugenheim <naftoli...@gmail.com>wrote:

> Glad to hear. Also see mapper.view.ItemsList (anyone have a better name?),
> which is used by TableEditor. It's a similar idea without relationships.
> Should MappedOne/ManyToMany be based on ItemsList?
> Also should I take Mapped out of those names? After all, they're not
> MappedFields and they don't correspond to a table column.
>
> -------------------------------------
> Magnus Alvestad<magnus.alves...@gmail.com> wrote:
>
> This work that you've done in Mapper fits in very well with something
> I've been planning to do. In a Java project some time ago we
> implemented a 'change engine'. We were loading big pension agreements,
> manipulating them in a web interface and finally saving them back to
> the database. While the user was working on the agreement, we
> generated a list of changes, containing enough information to replay
> or unroll the change. We could use this to implement undo and some
> semi-intelligent merging when two users were trying to commit  changes
> to the same agreement. We also let the user review his changes before
> saving, and we indicated changed fields visually. We were even
> thinking of implementing some kind of macro or replay functionality,
> but never got that far.
>
> I've been trying to implement something similar as a lift component,
> but with the old relationship handling it wasn't practical. With your
> changes it should be. Thanks!
>
> -Magnus
>
> On Jul 27, 9:57 pm, Naftoli Gugenheim <naftoli...@gmail.com> wrote:
> > I committed some code last night, which can help building mapper-based
> view snippets, with G-d's help. It includes the following classes:
> > (1-2) net.liftweb.mapper.OneToMany, ManyToMany: Gives a more
> object-oriented approach to managing related entites. You can manage the
> many side of a 1-n and n-n as a mutable collection of children, and the
> parent of a child can be set directly, instead of via its id. And the
> children are not saved to the database when you add them until you call save
> on it or its parent, nor deleted when you remove tem until you call
> delete_!, which is very helpful when you need to keep track of adds/removes
> through multiple requests. For example, if you are displaying a list and you
> can click delete, but it shouldn't be permanently deleted until you click
> save.
> > There is a new package, ...mapper.view, which contains a number of
> utilities for mapper-based views:
> > (3-4) ModelView and ModelSnippet provide a number of building blocks for
> views that are too complex to CRUDify. Inherit ModelSnippet (which extends
> StatefulSnippet) and wrap your entities in ModelView (view is used in the
> sense of a wrapper).
> > (5) Util provides some more building blocks that just be imported,
> without needing a ModelSnippet context.
> > (6-7) Paginator makes it easy to create paginated, user sortable
> listings. You can use PaginatedSnippet instead of ModelSnippet to help.
> > (8-10) ItemsList lets you manage a list of entities with pending
> additions and deletions. It's used by TableEditor, which is a very easy to
> use and customizable snippet to edit tables directly. It's useful for
> editing short lists, e.g., a lookup table like cities. Don't forget to
> register the table in Boot.
> > (11) Then there's the experimental FormProcessor, if you need your form
> to be processed in one block instead of separate closures, e.g., to surround
> with try.
> > (12) Also experimental is sitemap.XmlMenu which lets you write menus in
> xml.
> > (13) I may add CaseEnum, which lets you write case classes that
> automatically double as an Enumeration.
> > Questions, comments, suggestions, and constructive criticism are more
> than welcome!
> > Thanks.
>

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

Reply via email to