Interesting ideas here...
And CellLink is really a tacos:AjaxDirectLink (with a go parameter), which
works correctly even with javascript disabled...


Mind Bridge wrote:

> Hi,
>
> Since values can be stored on the client (in URLs or hidden fields) T4
> allows some rather nifty things to be implemented. I had been planning
> to create a library of components that provide some of the features
> for many months now, but unfortunately I simple lack the time to
> concentrate on the development.
>
> Some of the topics discussed in this forum are related to what I would
> like to do, so I will describe my suggestions here in the hope that
> they may be useful.
>
>
> * Local links
>
> Currently it is not natural to create complex components that consist
> of several screens. For example, one should be able to easily create a
> component that provides CRUD functionality for editing the contents of
> the list:
>
> <span jwcid="@Manage" source="ognl: objects"
> createType="org.mb.manage.Example"/>
>
> The idea is that the Manage component should have several screens:
>    - list elements
>    - create new element
>    - edit element
>    - confirm delete
> Trails provides a similar ability (plus storing the data into a
> database), but its implementation (not its use) has to jump through
> hoops to achieve it -- it is certainly possible, but not
> straight-forward.
>
> One simple reason that links in Tapestry operate on the level of the
> page, but there are no standard link components that operate on the
> level of a section of the page. If it is possible to use this ability
> (which I termed in my work "Cell"), one could implement Manage like this:
>
> <span jwcid="@Cell">
>  <span jwcid="[EMAIL PROTECTED]:Table" source="ognl:source"
> columns="name:toString(), !edit">
>      ...
>      <span jwcid="[EMAIL PROTECTED]">
>          <span jwcid="@CellLink" go="editValue"
>              link:valueParam="ognl:
> components.table.tableValue">Edit</span>
>      </span>
>  </span>
> </span>
>
> There are several things to note in this example:
> - CellLink is similar to a DirectLink, but it only operates on the
> Cell in which it is placed (or on another Cell which can be passed as
> a parameter). Everything else outside the Cell remains the same --
> there are no page changes.
> - If CellLink has a listener (like a DirectLink), then the listener
> will be invoked and it can change the component displayed in the
> selected Cell. In this case, however, the 'go' parameter is used
> instead which is analogous to the listener returning a given value.
> Basically the 'go' parameter in here says to go to the 'editValue'
> component (or Block).
> - The "link:valueParam" essentially says that the current table value
> must be passed to the valueParam parameter of the component. In this
> case this allows the editValue component to be rendered correctly with
> the provided table value. The combination of "go" and "link:<param>"
> allow the user to perform functions that would otherwise require code
> to complete. (Note that "link:<param>" requires the value to be stored
> using client-side property)
>
> There are a number of other items that I want to mention in relation
> to Cell, such as the CellCall and the CellReturn components, page flow
> (and no, the current solutions are fundamentally limited I believe),
> page parameters, etc, but I will write about them later.
>
> A part of this functionality is strongly related to Ajax and is
> already implemented in Tacos. This approach must be able to operate
> correctly w/o JavaScript as well, however. So Ajax is not the core,
> but simply a way to help the operation.
>
> Since I do not have the ability to work on the ideas at the moment,
> please feel free to implement the above if the ideas seem reasonable
> and useful to you...
>
> Best regards,
> - mb
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to