Thanks Ken.

Knowing the problem I found the next solution, if I put a dummy variable with any value and I bound this variable to a WOHiddenField, then always is a value set on the form.


On Oct 21, 2005, at 11:13 AM, Ken Anderson wrote:

This is because the phase that moves that data into your fields is being optimized out because there were no values set on the form.  Annoying, right?

The simple solution is to wipe out your array before takeValuesFromRequest() so that, if the form is empty, you actually have what you expected.  If the form has checks, they will be reset.  I can't remember how I did this last time, but I probably overrode appendToResponse() and blanked the checked array after calling super.  I don't think overriding takeValuesFromRequest will work because I don't think it ever gets called...  If I can find the code, I'll reply again!

Ken

On Oct 21, 2005, at 11:46 AM, Marcos Trejo Munguia wrote:

Hi list

I'm having a problem with a reusable component, this component shows a list of items and you can select from 1 to n of them with a checkbox next to each item. Here is the code:

  //Array with the selected items, this is initiallited by the parent component
  protected NSMutableArray receptionsSelected;
  //Item for WORepetion(Items to select)
  protected POReceptionDetail receptionItem;
  //Cancell callback
  protected String cancelCallback;
  //Submit callback
  protected String submitCallback;

The next methods are bound to the checked binding of the checkboxes

  protected boolean checked() {
  return receptionsSelected.containsObject(receptionDetailItem);
  }
 
  protected void setChecked(boolean isItChecked) {
  boolean wasItChecked = checked();
  if(isItChecked && !wasItChecked) {
  receptionsSelected.addObject(receptionItem);
  }
  else if(!isItChecked && wasItChecked) {
  receptionsSelected.removeObject(receptionItem);
  }
  }
 
I have this method to select all Items:

  protected void selectAll() {
  Enumeration i = po.poReceptionsOpen().objectEnumerator();
  while (i.hasMoreElements()) {
  POReceptionDetail iterator = (POReceptionDetail) i.nextElement();
  if (!receptionsSelected.containsObject(iterator)) {
  receptionsSelected.addObject(iterator);
  }
  }
  }
 
Callback methods, this are bound to the action binding of a WOActiveImage respectively:

  protected void cancel() {
  performParentAction(cancelCallback);
  }
 
  protected void submit() {
  performParentAction(submitCallback);
  }

Here is the submit parent action:

  public void submitSelection() {
  if (receptionsSelected.count() == 0) {
  errMsg = "There are no receptions selected";
  }
  else {
  stepController = 3;
  }
  }

Here comes the odd thing, if I select all items with selectAll and then I deselect all and click submit, the selection doesn't disappear, but if I change the WOActiveImage of submit to a WOSubmitButton everything works fine.

Please somebody give me a clue, what I'm doing wrong? _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/lists%40anderhome.com

This email sent to [EMAIL PROTECTED]
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to