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]