ERXDisplayGroup setQualifier behaviour

Daniele Corti <[email protected]>
Newsgroups gmane.comp.web.webobjects.wonder-disc
Message-ID <CAJh8f29aUjmEHGBM_w2SPL5ttNPxYbkjkc64vpEKrj8kwQ_Stw@mail.gmail.com>
Hi everyone,
my app is doing something of strange, and I don't understand what it's
wrong with my code.

I've some Entities that I've to display in a table, so I use the
ERXDisplayGroup class.

Here an example:

public ERXDisplayGroup<Collaborator> displayGroup() {

    // IF Null instantiate it
    if(_displayGroup == null){
          _displayGroup = new ERXDisplayGroup<Collaborator>();

          EOArrayDataSource dataSource = new
EOArrayDataSource(EOClassDescription.classDescriptionForEntityName(Collaborator.ENTITY_NAME),
editingContext());

          //Check user is logged in
          if(session().hasUserLogged()){
               //Check if user has chose the company
               if(session().hasChoosedCompany()){

 dataSource.setArray(Collaborator.fetchCollaboratorsForCompany(editingContext(),
session().company()));
               }
         }
          _displayGroup.setDataSource(dataSource);
          _displayGroup.setCurrentBatchIndex(1);

 _displayGroup.setNumberOfObjectsPerBatch(NUMBER_OF_OBJECTS_PER_BATCH);
          _displayGroup.fetch();
    }
    return _displayGroup;
}

this method is called as binding in the loop component:
<wo:loop list = "$displayGroup.displayedObjects" item = "$object">

and the object binding is simply a variable of the component.
private Collaborator object;
//With public getter and setter

on each row I've a link that call:

public WOActionResults selectObj() {
      this.parent().takeValueForKey(object, "selectedCollaborator");
      return performParentAction("selectCollaborator");
}

Ok, I'm able to filter the list using the setQualifier method of the
DisplayGroup:

public void setQualifier(EOQualifier qualifier){
    displayGroup().setQualifier(qualifier);
    displayGroup().fetch();
}

public EOQualifier qualifier() {
    return null;
}

I call the list component passing the qualifier binding in the parent
componet:

<wo:CollaboratorsList qualifier = "$qualifier"></wo:CollaboratorsList>

When I pass a qualifier the page show the filtered list correctly.

The problem is: when I click on the link with action = "$selectObj" of the,
for example, 2nd object of filtered list, the object variable in the class
does not contain the instance related to the selected row, but the instance
in the second position of the full list of objects in the displayGroup.

Example:

a table with:

-------------------------------------------------------------------
| link | Mario Rossi | The Address 1 | His City |
-------------------------------------------------------------------
| link | John Smith | The Address 2 |      City2 |
-------------------------------------------------------------------
| link | Francis Cabret | The Address| His City |
-------------------------------------------------------------------
....
-------------------------------------------------------------------

I filter the list for name LIKE "*John Smit*" and get only one row.

-------------------------------------------------------------------
| link | John Smith | The Address 2 |      City2 |
-------------------------------------------------------------------

but when I click on the link, in the action selectObj(), the object
variable contains the instance for Mario Rossi.

That's strange for me...

I thought this should have work, but, evidently, is not so!

Which is the correct way to use the ERXDisplayGroup.setQualifier method?

Thanks in advance!
-- 
Daniele Corti
--
I DON'T DoubleClick

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d

_______________________________________________
Wonder-disc mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wonder-disc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.