Hi Farrukh,

Thanks for your reply.  I moved the AjaxObserveField inside the
AjaxUpdateContainer, but I'm still getting the same behavior where values
that haven't just been set are set to null instead of maintaining their
previous values.  Any other ideas?

I can hack a solution where I just won't do anything in the setter if the
value is being set to null, but the issue there is if the user deletes all
the text in an input field, then the result list will not get updated to
display all the values.

Thanks again for any help,

Joe Kramer

CyberApps, Inc.

On Sat, May 29, 2010 at 9:35 AM, Farrukh Ijaz <
[email protected]> wrote:

> Try move the FormValuesObserveField component inside the ResultsContainer
> and test it.
>
> <webobject name = "ResultsContainer">
> <webobject name = "FormValuesObserveField">
>
> <div class="formInput">First Name: <webobject name = "FirstNameFilterText"
> /></div>
> <div class="formInput">Last Name: <webobject name = "LastNameFilterText"
> /></div>
>
> </webobject>
> ... (list of results)
> </webobject>
>
>
> On 2010-05-29, at 7:30 PM, Joe Kramer wrote:
>
> Hi everyone,
>
> Sorry to be a bother, but I was wondering if anyone had any ideas for me on
> this issue.  If it would help, I could attach a small example app that
> demonstrates this behavior.
>
>  Thanks for any help,
>
> Joe Kramer
>
> CyberApps, Inc.
>
> On Thu, May 27, 2010 at 8:00 AM, Joe Kramer <[email protected]> wrote:
>
>> Hi all,
>>
>> I am trying to create a component that displays a list of people and then
>> lets the user filter this list based on a few criteria (first name, last
>> name, etc.).  I haven't been using ajax until very recently, so I'm sorry if
>> this is an easy newbie question.  The setup I have is I am observing
>> multiple fields (first name input, last name input) with the same
>> AjaxObserveField component and the AjaxObserveField updates an
>> AjaxUpdateContainer (a repetition with the qualified result list).  When I
>> type something in just the last name input, everything works as expected.
>>  Same with just the first name input.  But if I've typed something in the
>> last name input and then I type something in the first name input, the
>> variable storing the last name in the component gets set to null (via a
>> setter method) and, as a consequence, the results are only qualified using
>> the first name input.  I have no idea why the value is getting set to null
>> and I'm hoping someone can shed some light on what's going on and how to fix
>> this issue.  I'm using Webobjects 5.4.3 and a version of Project WOnder that
>> is about a month old.  Here's the relevant stuff from the component:
>>
>> <webobject name = "FormValuesObserveField">
>>
>> <div class="formInput">First Name: <webobject name =
>> "FirstNameFilterText"/></div>
>> <div class="formInput">Last Name: <webobject name = "LastNameFilterText"
>> /></div>
>>
>> </webobject>
>>
>> <webobject name = "ResultsContainer">
>> ... (list of results)
>> </webobject>
>>
>>
>> FormValuesObserveField : AjaxObserveField {
>>   observeFieldFrequency = "0.5";
>>   observeDelay = "0.5";
>>   updateContainerID = "results";
>> }
>>
>> FirstNameFilterText : WOTextField {
>>   value = firstNameFilter;
>>   id = "firstNameFilter";
>> }
>>
>> LastNameFilterText : WOTextField {
>>   value = lastNameFilter;
>>   id = "lastNameFilter";
>> }
>>
>>  ResultsContainer : AjaxUpdateContainer {
>>   id = "results";
>> }
>>
>>
>> In the java file I have:
>>
>>  private String _firstNameFilter;
>>
>> private String _lastNameFilter;
>>
>> private NSArray _filteredArray;
>>
>> public String firstNameFilter() {
>>   return _firstNameFilter;
>> }
>>
>>
>> public void setFirstNameFilter(String value) {
>>   _firstNameFilter = value;
>>   _filteredArray = null;
>> }
>>
>>
>> public String lastNameFilter() {
>>   return _lastNameFilter;
>> }
>>
>>
>> public void setLastNameFilter(String value) {
>>   _lastNameFilter = value;
>>   _filteredArray = null;
>> }
>>
>>  public NSArray allClientsAfterFilter() {
>>   if (_filteredArray == null) {
>>     EOQualifier lastNameQual = null;
>>     if (_lastNameFilter != null) {
>>       lastNameQual = ERXQ.likeInsensitive("personInfo.lastName",
>> _lastNameFilter + "*");
>>     } else {
>>       lastNameQual = ERXQ.likeInsensitive("personInfo.lastName", "*");
>>     }
>>     EOQualifier firstNameQual = null;
>>     if (_firstNameFilter != null) {
>>       firstNameQual = ERXQ.likeInsensitive("personInfo.firstName",
>> _firstNameFilter + "*");
>>     } else {
>>       firstNameQual = ERXQ.likeInsensitive("personInfo.firstName", "*");
>>     }
>>
>>
>>
>>     EOQualifier qual = ERXQ.and(lastNameQual, firstNameQual);
>>     _filteredArray =
>> EOSortOrdering.sortedArrayUsingKeyOrderArray(EOQualifier.filteredArrayWithQualifier(allClients(),
>> qual), null);
>>   }
>>   return _filteredArray;
>> }
>>
>> Thanks for any help on this.
>>
>> Regards,
>>
>> Joe Kramer
>>
>> CyberApps, Inc.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
> _______________________________________________
> 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/farrukh.ijaz%40fuegodigitalmedia.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