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/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to