Do you have a WOForm wrapping the text fields?

On May 29, 2010, at 12:56 PM, Joe Kramer wrote:

> 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/rparada%40mac.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