Right...
There wasn't anything wrong with tapestry, I was calling my submit
listener method before the page properties where being set. I made the
following changes to my .page file
original source...
<component id="removeMeters" type="Submit">
<binding name="listener" value="listener:doRemovePermissions"/>
</component>
modified source...
<component id="removeMeters" type="Submit">
<binding name="action" value="listener:doRemovePermissions"/>
</component>
I should have assigned by listener to the action property...
On 28/06/06, Jabbar <[EMAIL PROTECTED]> wrote:
Hello again,
Must be having a bad day, I didn't check the results properly... still
doesn't work... still looking...
On 28/06/06, Jabbar <[EMAIL PROTECTED]> wrote:
> Hello Norbi,
>
> Sorry for the delay, but have been working on other stuff ...
>
> I set the volatile parameter to "true", but didn't make any
> difference. I replaced the @For with a @Foreach and now its working!
>
>
> On 26/06/06, Norbert Sándor <[EMAIL PROTECTED]> wrote:
> > Try setting parameter volatile to "true".
> >
> > Regards,
> > Norbi
> >
> > Jabbar wrote:
> > > Hello all,
> > >
> > > I've got two @For loops inside a @Form tag. Each @For loop is printing
> > > the part of the contents of the MeterCB class, two text fields and one
> > > checkbox. During the rewind process tapestry is not recognizing the
> > > fact that checkboxes in the second @For loop are being selected.
> > >
> > > I've already spent too much time trying to fix this problem :( has any
> > > body fixed this problem or has a work around?
> > >
> > > I've enclosed the source code ...
> > >
> > >
---------------------------------------------------------------------------------------
> > >
> > > permissions.java
> > > package com.technolog.page;
> > >
> > > import java.util.ArrayList;
> > > import java.util.List;
> > > import java.util.Vector;
> > >
> > > import org.apache.tapestry.IRequestCycle;
> > > import org.apache.tapestry.annotations.InjectObject;
> > > import org.apache.tapestry.annotations.InjectPage;
> > > import org.apache.tapestry.annotations.InjectState;
> > > import org.apache.tapestry.annotations.Persist;
> > > import org.apache.tapestry.components.Block;
> > > import org.apache.tapestry.event.PageBeginRenderListener;
> > > import org.apache.tapestry.event.PageEvent;
> > >
> > > import com.technolog.UserASO;
> > > import com.technolog.component.MeterCB;
> > > import com.technolog.dao.SiteListDAO;
> > > import com.technolog.dao.UserDAO;
> > > import com.technolog.db.AUser;
> > > import com.technolog.db.Meter;
> > >
> > > public abstract class Permissions extends SecuredBasePage implements
> > > PageBeginRenderListener{
> > >
> > > @InjectPage("Users")
> > > public abstract Users getUsersPage();
> > >
> > > @InjectObject("spring:siteListDAO")
> > > public abstract SiteListDAO getSiteListDAO();
> > >
> > > @InjectObject("spring:userDAO")
> > > public abstract UserDAO getUserDAO();
> > >
> > > @InjectState("user")
> > > public abstract UserASO getUserASO();
> > >
> > > @Persist
> > > public abstract List<MeterCB> getMetersOwnedByUser();
> > > public abstract void setMetersOwnedByUser(List<MeterCB> list);
> > >
> > > public abstract MeterCB getMeterOwnedByUser();
> > >
> > > public abstract MeterCB getMeterNotOwnedByUser();
> > >
> > > @Persist
> > > public abstract List<MeterCB> getMetersNotOwnedByUser();
> > > public abstract void setMetersNotOwnedByUser(List<MeterCB> list);
> > >
> > > @Persist
> > > public abstract AUser getUser();
> > > public abstract void setUser(AUser user);
> > >
> > > public List<MeterCB> metersToAssign = new ArrayList<MeterCB>(0);
> > > public List<MeterCB> metersToUnAssign = new ArrayList<MeterCB>(0);
> > >
> > > public void doRemovePermissions(IRequestCycle cycle){
> > > if (getMetersOwnedByUser()!=null)
> > > return;
> > > for (MeterCB meter : getMetersOwnedByUser()){
> > > if (meter.getSelected()){
> > >
> > > getUserDAO().deleteMeterFromUser(getUser().getUserId(),
> > > meter.getMeterId());
> > > }
> > > }
> > > }
> > >
> > > public void doAddPermissions(IRequestCycle cycle){
> > > if (getMetersNotOwnedByUser()!=null)
> > > return;
> > > for (MeterCB meter : getMetersNotOwnedByUser()){
> > > if (meter.getSelected()){
> > > getUserDAO().addMeterToUser(getUser().getUserId(),
> > > meter.getMeterId());
> > > }
> > > }
> > > }
> > >
> > > public void doPrevPage(IRequestCycle cycle){
> > > cycle.activate(getUsersPage() );
> > > }
> > >
> > > public boolean containsMeter(List<Meter> meters, long meterId){
> > > for (Meter meter : meters){
> > > if (meter.getMeterId()==meterId){
> > > return true;
> > > }
> > > }
> > > return false;
> > > }
> > >
> > > public List<Meter> getDifference(List<Meter> meters, List<Meter>
> > > meters2){
> > > List<Meter> differenceList = new Vector<Meter>(0);
> > > for (Meter meter : meters){
> > > if (containsMeter(meters2, meter.getMeterId())){
> > >
> > > } else {
> > > differenceList.add(meter);
> > > }
> > > }
> > > return differenceList;
> > > }
> > >
> > > public void pageBeginRender(PageEvent event){
> > >
> > > if (!event.getRequestCycle().isRewinding()){
> > >
> > > List<Meter> notOwnedMetersList =
> > > getSiteListDAO().GetCompleteUserSiteList();
> > > List<Meter> ownedMetersList =
> > > getSiteListDAO().GetUserSiteList(getUser().getUserName());
> > >
> > > //notOwnedMetersList.removeAll(ownedMetersList);
> > > notOwnedMetersList = getDifference(notOwnedMetersList,
> > > ownedMetersList);
> > > List<MeterCB> metersNotOwnedByUser = new Vector<MeterCB>(0);
> > > for (Meter meter: notOwnedMetersList){
> > > metersNotOwnedByUser.add(new MeterCB(meter, false));
> > > }
> > >
> > > setMetersNotOwnedByUser(metersNotOwnedByUser);
> > >
> > >
> > > List<MeterCB> metersOwnedByUser = new Vector<MeterCB>(0);
> > > for (Meter meter: ownedMetersList){
> > > metersOwnedByUser.add(new MeterCB(meter, false));
> > > }
> > >
> > > setMetersOwnedByUser(metersOwnedByUser);
> > > } else {
> > > System.out.println("rewinding...");
> > >
> > > metersToAssign.clear();
> > > metersToUnAssign.clear();
> > > }
> > >
> > > System.out.println("fire");
> > > }
> > >
> > > public Block getMetersOwned(){
> > > return (Block)getComponent("metersOwnedBlock");
> > > }
> > >
> > > public Block getMetersNotOwned(){
> > > return (Block)getComponent("metersNotOwnedBlock");
> > > }
> > >
> > > public void unAssignedSiteListener(IRequestCycle cycle){
> > > if (cycle.isRewinding()){
> > > MeterCB meter = getMeterNotOwnedByUser();
> > > if (!meter.getSelected()) return;
> > > metersToAssign.add(meter);
> > > System.out.println("assigned "+meter.getMeterId());
> > > }
> > >
> > > }
> > >
> > > public void assignedSiteListener(IRequestCycle cycle){
> > > if (cycle.isRewinding()){
> > >
> > > MeterCB meter = getMeterOwnedByUser();
> > > if (!meter.getSelected()) return;
> > > metersToUnAssign.add(meter);
> > > System.out.println("uassigned "+meter.getMeterId());
> > > }
> > >
> > > }
> > >
> > > }
> > >
> > > permissions.page
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <!DOCTYPE page-specification
> > > PUBLIC "-//Apache Software Foundation//Tapestry Specification
> > > 4.0//EN"
> > > "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> > > <page-specification class="com.technolog.page.Permissions">
> > > <component id="form" type="Form"/>
> > >
> > > <component id="border" type="Border"/>
> > >
> > > <component id="showMetersOwned" type="RenderBlock">
> > > <binding name="block" value="metersOwned"/>
> > > </component>
> > >
> > > <component id="showMetersNotOwned" type="RenderBlock">
> > > <binding name="block" value="metersNotOwned"/>
> > > </component>
> > >
> > > <component id="metersOwned" type="For">
> > > <binding name="source" value="metersOwnedByUser"/>
> > > <binding name="value" value="meterOwnedByUser"/>
> > > <binding name="element" value="literal:tr"/>
> > > </component>
> > >
> > > <component id="metersNotOwned" type="For">
> > > <binding name="source" value="metersNotOwnedByUser"/>
> > > <binding name="value" value="meterNotOwnedByUser"/>
> > > <binding name="element" value="literal:tr"/>
> > > </component>
> > >
> > > <component id="metersOwnedBlock" type="Block"/>
> > >
> > > <component id="metersNotOwnedBlock" type="Block"/>
> > >
> > > <component id="prev" type="DirectLink">
> > > <binding name="listener" value="listener:doPrevPage"/>
> > > </component>
> > >
> > > <component id="removeMeters" type="Submit">
> > > <binding name="listener"
> > > value="listener:doRemovePermissions"/>
> > > </component>
> > >
> > > <component id="addMeters" type="Submit">
> > > <binding name="listener"
> > > value="listener:doAddPermissions"/>
> > > </component>
> > >
> > > <component id="mpanMetersNotOwned" type="Insert">
> > > <binding name="value" value="meterNotOwnedByUser.mpan"/>
> > > </component>
> > >
> > > <component id="meterIdMetersNotOwned" type="Insert">
> > > <binding name="value"
> > > value="meterNotOwnedByUser.meterId"/>
> > > </component>
> > >
> > > <component id="mpanMetersOwned" type="Insert">
> > > <binding name="value" value="meterOwnedByUser.mpan"/>
> > > </component>
> > >
> > > <component id="meterIdMetersOwned" type="Insert">
> > > <binding name="value" value="meterOwnedByUser.meterId"/>
> > > </component>
> > >
> > > <component id="selectedMetersNotOwned" type="Checkbox">
> > > <binding name="value"
> > > value="meterNotOwnedByUser.selected"/>
> > > </component>
> > >
> > > <component id="selectedMetersOwned" type="Checkbox">
> > > <binding name="value"
> > > value="meterOwnedByUser.selected"/>
> > > </component>
> > >
> > > <component id ="unAssignedSitesListener"
> > > type="InvokeListener">
> > > <binding name="listener"
> > > value="listener:unAssignedSiteListener"/>
> > > </component>
> > >
> > > <component id="assignedSitesListener"
> > > type="InvokeListener">
> > > <binding name="listener"
> > > value="listener:assignedSiteListener"/>
> > > </component>
> > >
> > > </page-specification>
> > >
> > >
> > >
---------------------------------------------------------------------------------------------------------------------
> > >
> > > permissions.html
> > > <html>
> > > <head >
> > > <title>title</title>
> > > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> > >
> > > <body>
> > >
> > > <span jwcid="$content$">
> > > <span jwcid="border">
> > > <form jwcid="form">
> > > <table>
> > > <tr valign="top"><td><span jwcid="showMetersNotOwned"/></td><td
> > > align="center"><input jwcid="addMeters" type="submit" value="Add
> > > Meter"/><br/><br/><input jwcid="removeMeters" type="submit"
> > > value="Remove Meter"/></td><td><span
> > > jwcid="showMetersOwned"/></td></tr>
> > > </table>
> > > </form>
> > >
> > > <a jwcid="prev" href="">Prev</a>
> > >
> > > <span jwcid="metersNotOwnedBlock">
> > > <b>Meters not assigned</b><br/>
> > > <table>
> > > <tr jwcid="metersNotOwned" >
> > > <td><span jwcid="mpanMetersNotOwned"/></td>
> > > <td><span jwcid="meterIdMetersNotOwned"/></td>
> > > <td><input jwcid="selectedMetersNotOwned" type="checkbox"/></td>
> > > <span jwcid="unAssignedSitesListener"/>
> > > </tr>
> > > </table>
> > > </span>
> > >
> > > <span jwcid="metersOwnedBlock">
> > > <b>Meters already assigned</b><br/>
> > > <table>
> > > <tr jwcid="metersOwned">
> > > <td><span jwcid="mpanMetersOwned"/></td>
> > > <td><span jwcid="meterIdMetersOwned"/></td>
> > > <td><input jwcid="selectedMetersOwned" type="checkbox"/></td>
> > > <span jwcid="assignedSitesListener"/>
> > > </tr>
> > > </table>
> > > </span>
> > >
> > > </span>
> > > </span>
> > > </body>
> > > </html>
> > >
> > >
----------------------------------------------------------------------------------------------------------------------
> > >
> > > meterCB.java
> > > package com.technolog.component;
> > >
> > > import java.io.Serializable;
> > >
> > > import com.technolog.db.Meter;
> > >
> > > public class MeterCB extends Meter implements Serializable{
> > >
> > > /**
> > > *
> > > */
> > > private static final long serialVersionUID = -3502445516008868262L;
> > > private Boolean selected = false;
> > >
> > > /**
> > > *
> > > * @param meterId
> > > * @param mpan
> > > * @param meterName
> > > * @param demoMeter
> > > * @param readerType
> > > * @param industry
> > > * @param tamper
> > > * @param selected
> > > */
> > > public MeterCB(long meterId, long mpan, String meterName, byte
> > > demoMeter, short readerType, short industry, Boolean tamper, Boolean
> > > selected) {
> > > super(meterId, mpan, meterName, demoMeter, readerType,
> > > industry, tamper);
> > > this.selected = selected;
> > > }
> > > /**
> > > *
> > > * @param meter
> > > */
> > > public MeterCB(Meter meter){
> > > super(meter.getMeterId(), meter.getMpan(), meter.getMeterName(),
> > > meter.getDemoMeter(), meter.getReaderType(), meter.getIndustry(),
> > > meter.getTamper());
> > > selected = false;
> > > }
> > > /**
> > > *
> > > * @param meter
> > > * @param selected
> > > */
> > > public MeterCB(Meter meter, Boolean selected){
> > > super(meter.getMeterId(), meter.getMpan(), meter.getMeterName(),
> > > meter.getDemoMeter(), meter.getReaderType(), meter.getIndustry(),
> > > meter.getTamper());
> > > this.selected = selected;
> > > }
> > >
> > > public Boolean getSelected() {
> > > return selected;
> > > }
> > >
> > > public void setSelected(Boolean selected) {
> > > this.selected = selected;
> > > }
> > >
> > >
> > >
> > > }
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Thanks
>
> A Jabbar Azam
>
--
Thanks
A Jabbar Azam
--
Thanks
A Jabbar Azam
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]