Lucas Pereira wrote on Jun 10, 2008 21:05:
I had this same problem...
The problem was solved when I updated the version of jsf-impl.jar e jsf-api.jar.
Now I am using this version:
1.2_08-b06-FCS
jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\jsf-libs
It looks like a rendering problem... the isSelected method was not being called.
I hope this helps...
Lucas Pereira
I tried doing your way but I was not successful in that procedure.
I am using two action classes both with Event Scope. I am sending you the code of the classes please take a look at it and see if u can save the problem
LocationFactory.java
This is the class in which I have DataModelSelection
@Name("locationFactory")
@Scope(ScopeType.EVENT)
public class LocationFactory {
@In(create = true) SalesPersonActionBean salesPersonAction;
@In(create = true) LocationService locationService;
@In(create = true, required = false) CustomerActionFactory customerActionFactory;
@DataModel
private List<Locations> lstLocations;
@DataModelSelection("lstLocations")
@Out(required = false, scope=ScopeType.SESSION)
Locations location;
UIDatascroller locationDatascroller;
@SuppressWarnings("unchecked")
@Factory(value = "lstLocations")
public void listLocations() {
int locationsPageFirstIndex;
List listLocationSubSetRecords;
Long locationCount;
java.util.Vector locationsVector = new Vector();
locationCount = locationService
.getLocationRowCount(customerActionFactory.getCustomerWrapper()
.getCustomers().getCustomerNumber());
locationsVector.setSize(locationCount.intValue());
// This statement fetches the current pages first row index
locationsPageFirstIndex = (this.getLocationDatascroller().getPage() *
this.getLocationDatascroller().getDataTable().getRows()) -
this.getLocationDatascroller().getDataTable().getRows();
listLocationSubSetRecords = locationService.getLocations(
salesPersonAction.getLocationOrderField(), salesPersonAction
.isAscendingOrder(), locationsPageFirstIndex,
customerActionFactory.getCustomerWrapper().getCustomers()
.getCustomerNumber());
for (int index = 0; index < listLocationSubSetRecords.size(); index++) {
locationsVector.set(locationsPageFirstIndex + index,
listLocationSubSetRecords.get(index));
}
lstLocations = locationsVector;
}
public void nullLocationList(){
this.lstLocations = null;
}
public List<Locations> getLstLocations() {
return lstLocations;
}
public void setLstLocations(List<Locations> lstLocations) {
this.lstLocations = lstLocations;
}
public UIDatascroller getLocationDatascroller() {
return locationDatascroller;
}
public void setLocationDatascroller(UIDatascroller locationDatascroller) {
this.locationDatascroller = locationDatascroller;
}
public Locations getLocation() {
return location;
}
public void setLocation(Locations location) {
this.location = location;
}
}
LocationPrinterFactory.java
@Name("locationPrinterFactory")
@Scope(ScopeType.EVENT)
public class LocationPrinterFactory {
@In(create = true)LocationPrinterService locationPrinterService;
@In(create = true, required = false)LocationFactory locationFactory;
@DataModel private List<Locationprinters> lstLocationPrinters;
UIDatascroller locationPrinterDatascroller;
@SuppressWarnings("unchecked")
@Factory("lstLocationPrinters")
public void listLocationPrinters() {
Long locationPrinterCount;
Vector locationPrintersVector = new Vector();
int locationPrinterCurrentPageIndex;
int locationPrintersPageFirstIndex;
List listLocationPrintersSubSetRecords;
*System.out.println("this.this.locationFactory.getLocation().getLocationName(): " + this.locationFactory.getLocation().getLocationName());
System.out.println("this.locationFactory.getLocation.getLocationNumber: " + this.locationFactory.getLocation().getLocationNumber());*
locationPrinterCount = locationPrinterService
.getlocationPrinterRowCount(this.locationFactory.getLocation().getLocationNumber());
locationPrintersVector.setSize(locationPrinterCount.intValue());
// This statement fetches the current pages first row index
locationPrintersPageFirstIndex = (this.locationPrinterDatascroller.getPage() *
this.locationPrinterDatascroller.getDataTable().getRows()) -
this.locationPrinterDatascroller.getDataTable().getRows();
listLocationPrintersSubSetRecords = locationPrinterService
.getLocationPrinter(locationPrintersPageFirstIndex,
this.locationFactory.getLocation().getLocationNumber());
for (int index = 0; index < listLocationPrintersSubSetRecords.size(); index++) {
locationPrintersVector.set(locationPrintersPageFirstIndex + index,
listLocationPrintersSubSetRecords.get(index));
}
lstLocationPrinters = locationPrintersVector;
}
public List<Locationprinters> getLstLocationPrinters() {
return lstLocationPrinters;
}
public void setLstLocationPrinters(List<Locationprinters> lstLocationPrinters) {
this.lstLocationPrinters = lstLocationPrinters;
}
public UIDatascroller getLocationPrinterDatascroller() {
return locationPrinterDatascroller;
}
public void setLocationPrinterDatascroller(
UIDatascroller locationPrinterDatascroller) {
this.locationPrinterDatascroller = locationPrinterDatascroller;
}
public void nullLocationPrinter(){
this.lstLocationPrinters = null;
}
}
I am trying to access the DataModelSelection in LocationPrinterFactory class but it always print me the very first value.