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

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

Reply via email to