Your method calling this query page should actually be:

  public WOComponent queryBillboarAction() {
    return D2W.factory().pageForConfigurationNamed("QueryBillboard", session());
  }

pageConfiguration = "QueryBillboard" => entity = "Grid" 
[com.webobjects.directtoweb.EntityAssignment], 

task is in the configurationName

On 2013-09-26, at 2:45 PM, David Holt <programming...@mac.com> wrote:

> Yes! You're coming to the crux of D2W power. Congratulations :-)
> 
> All you need to do is set some rules for task and entity of the custom 
> configuration you need. Typed into Mail:
> 
> pageConfiguration = "RowsAndRowsOfMyAwesomeBillboards" => task = 'list' 
> [com.webobjects.directtoweb.Assignment]
> pageConfiguration = "RowsAndRowsOfMyAwesomeBillboards" => entity  "Grid" 
> [com.webobjects.directtoweb.EntityAssignment], 
> 
> 
>   public WOComponent queryBillboardAction() {
>     QueryPageInterface qpi = (QueryPageInterface) 
> D2W.factory().queryPageForEntityNamed("Grid", session());
>     return (WOComponent) qpi; 
>   }
> 
> pageConfiguration = 'QueryBillboard' => navigationState = 'Tab2' 
> [com.webobjects.directtoweb.Assignment]
> pageConfiguration = "RowsAndRowsOfMyAwesomeBillboards" => navigationState = 
> 'Tab2' [com.webobjects.directtoweb.Assignment]
> 
> rule to return the custom page configuration:
> 
> pageConfiguration = "QueryBillboard" => listConfigurationName =   
> "RowsAndRowsOfMyAwesomeBillboards" [com.webobjects.directtoweb.Assignment], 
> 
> you can return the list in the same page like so:
> 
> pageConfiguration = "QueryBillboard" => showListInSamePage = "true" 
> [com.webobjects.directtoweb.BooleanAssignment]
> 
> and don't forget the rule to set your query delegate to the QueryBillboard 
> page.
> 
> Of course you could be more reasonable and call your custom page 
> configuration something like "ListBillboardGrid" and your task and entity 
> should be picked up by the default assignment rules (since both "list" and 
> "grid" are contained in the pageConfiguration name) but I exaggerated for 
> effect.
> 
> 
> On 2013-09-26, at 2:24 PM, Theodore Petrosky <tedp...@yahoo.com> wrote:
> 
>> 
>> On Sep 26, 2013, at 5:07 PM, David Holt <programming...@mac.com> wrote:
>> 
>>> Hi Ted,
>>> 
>>> well Grid is the entity, but you only want to display those grids that are 
>>> billboards?
>>> 
>>> "Pages.ListGrid" = "List Billboards"
>>> "Nav.ListGrid" = "List Billboards"
>>> 
>>>>>>>> ((D2WComponent) qpi).d2wContext().takeValueForKey("ListBillboard", 
>>>>>>>> "navigationState");
>>>>>>>> ((D2WComponent) qpi).d2wContext().takeValueForKey("QueryBillboard", 
>>>>>>>> "pageConfiguration");
>>> 
>>> I'm not sure these two rules make any sense (at least this is not how I do 
>>> it). You probably should be setting navigation state in the rules. And if 
>>> you want to use a custom pageConfiguration for your list page then you need 
>>> to set it in your query page rules (either inline or as your 
>>> listConfigurationName).
>>> 
>>> If you actually NEED a ListGrid page as well as Billboard, you'll have to 
>>> create a custom pageConfiguration for Billboards and assign the usual task 
>>> and entity to it.
>> 
>> and this is my issue. I NEED both the ListGrid and ListBillboard where the 
>> underlying entity is Grid. (Tab1 is the ListGrid tab, Tab2 is the 
>> ListBillboard tab) Are you suggesting here that I can do this with a custom 
>> pageConfiguration? Is there some example of this that I can examine? Keep in 
>> mind I have no problem when I enter the ListBillboard tab. My problem is 
>> when I click the query button on a Query Billboard. the resultant page is a 
>> ListGrid page that I want to call a List Billboard page.
>> 
>> Ted
>> 
>>> On 2013-09-26, at 12:21 PM, Theodore Petrosky <tedp...@yahoo.com> wrote:
>>> 
>>>> yes, I use the Localizable.strings. I don't see how this would help?  I 
>>>> thought I wanted to change the context pageConfiguration.
>>>> 
>>>> What did I miss?
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Sep 26, 2013, at 12:12 PM, David Holt <programming...@mac.com> wrote:
>>>> 
>>>>> Are you using Localizable.strings?
>>>>> 
>>>>> 
>>>>> On 2013-09-26, at 7:24 AM, Theodore Petrosky <tedp...@yahoo.com> wrote:
>>>>> 
>>>>>> 
>>>>>> On Sep 26, 2013, at 4:41 AM, Fabian Peters <lists.fab...@e-lumo.com> 
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi Ted,
>>>>>>> 
>>>>>>> Am 26.09.2013 um 01:51 schrieb Theodore Petrosky:
>>>>>>> 
>>>>>>>> yea sometimes the original answer to a post was over my head and I 
>>>>>>>> didn't understand something, so I gave up.
>>>>>>>> 
>>>>>>>> I have your solution working beautifully. I hope this helps me to 
>>>>>>>> understand the delegates more.
>>>>>>>> 
>>>>>>>> but here is an issue.
>>>>>>>> 
>>>>>>>> here is the method that returns the QueryPage:
>>>>>>>> 
>>>>>>>> public WOComponent queryBillboardAction() {
>>>>>>>> QueryPageInterface qpi = (QueryPageInterface) 
>>>>>>>> D2W.factory().queryPageForEntityNamed("Grid", session());
>>>>>>>> 
>>>>>>>> ((D2WComponent) qpi).d2wContext().takeValueForKey("ListBillboard", 
>>>>>>>> "navigationState");
>>>>>>>> ((D2WComponent) qpi).d2wContext().takeValueForKey("QueryBillboard", 
>>>>>>>> "pageConfiguration");
>>>>>>>> 
>>>>>>>> return (WOComponent) qpi;
>>>>>>>> 
>>>>>>>> }
>>>>>>>> 
>>>>>>>> of course this is a 'subselect' of the entity 'Grid'. so the page that 
>>>>>>>> returns is a ListGrid page.
>>>>>>>> 
>>>>>>>> How can I control this? It needs to be a ListBillboard page.
>>>>>>> 
>>>>>>> If your query page should return a list of billboards, then I guess the 
>>>>>>> query page should be one for billboards. If a billboard has some 
>>>>>>> relation to grid, you can still query for grid attributes by specifying 
>>>>>>> key-paths from billboard. Something like "billboard.grids.id".
>>>>>> 
>>>>>> it's the other way around. I have an entity 'Grid'. this entity has a 
>>>>>> boolean attribute isBillboard. I have created a tab that gives a listing 
>>>>>> of a subset of Grid where isBillboard is true.
>>>>>> In the action method that returns the ListGrid page, I set the 
>>>>>> navigationState:
>>>>>> 
>>>>>>>>>>> ((D2WComponent) lpi).d2wContext().takeValueForKey("ListBillboard", 
>>>>>>>>>>> "navigationState");
>>>>>> 
>>>>>> I have a search button that I set the delegate to return Grid entities 
>>>>>> where isBillboard is true.
>>>>>> 
>>>>>> Unfortunately, when you do a query, the returning page is a 'ListGrid' 
>>>>>> page (As the entity is Grid). I am looking for a way such that when this 
>>>>>> ListGrid page is returned, I can set the navigationState to 
>>>>>> 'ListBillboard'.
>>>>>> 
>>>>>> I could make this easy on myself and create a view on the backend called 
>>>>>> Billboard. (CREATE VIEW billboard AS SELECT * FROM t_grid WHERE 
>>>>>> isbillboard = true). I could even set up some rules and triggers on the 
>>>>>> backend that would make it updatable. Then I could just treat it as a 
>>>>>> separate entity and be done.
>>>>>> 
>>>>>> But I thought I would just stay on the WO side of things.
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> Fabian
>>>>>>> 
>>>>>>>> Thank you for your patience.  When I first read your solution over a 
>>>>>>>> year ago I felt it was too complex as I didn't have the knowledge to 
>>>>>>>> understand it. Funny what another year looking at this stuff can do.
>>>>>>>> 
>>>>>>>> Ted
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Sep 25, 2013, at 4:26 PM, David Holt <programming...@mac.com> wrote:
>>>>>>>> 
>>>>>>>>> Nothing like a little deja vu, including the original poster.
>>>>>>>>> 
>>>>>>>>> :-)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 2013-09-25, at 12:40 PM, Johnny Miller <jlmil...@kahalawai.com> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Like this?
>>>>>>>>>> 
>>>>>>>>>> http://lists.apple.com/archives/webobjects-dev/2012/Apr/msg00260.html
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Sep 25, 2013, at 9:23 AM, Theodore Petrosky <tedp...@yahoo.com> 
>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> I have an entity 'Grid' that has an attribute 'isBillboard'. I 
>>>>>>>>>>> created the list billboard tab with:
>>>>>>>>>>> 
>>>>>>>>>>> public WOComponent listBillboardAction() {
>>>>>>>>>>> 
>>>>>>>>>>> EOEditingContext ec = ERXEC.newEditingContext();
>>>>>>>>>>> ListPageInterface lpi = (ListPageInterface) 
>>>>>>>>>>> D2W.factory().pageForConfigurationNamed("ListGrid", session());
>>>>>>>>>>> 
>>>>>>>>>>> EODatabaseDataSource ds = new EODatabaseDataSource(ec, "Grid");
>>>>>>>>>>> 
>>>>>>>>>>> ERXFetchSpecification<Grid> fs =  new 
>>>>>>>>>>> ERXFetchSpecification<Grid>(Grid.ENTITY_NAME, 
>>>>>>>>>>> Grid.IS_COMPLETE.eq(false).and(Grid.IS_BILLBOARD.eq(true)), null);
>>>>>>>>>>> 
>>>>>>>>>>> ds.setFetchSpecification(fs);
>>>>>>>>>>> 
>>>>>>>>>>> lpi.setDataSource(ds);
>>>>>>>>>>> 
>>>>>>>>>>> ((D2WComponent) lpi).d2wContext().takeValueForKey("ListBillboard", 
>>>>>>>>>>> "navigationState");
>>>>>>>>>>> 
>>>>>>>>>>> return (D2WPage) lpi;
>>>>>>>>>>> }
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> How can I apply the same limit to a Query page? I don't want to put 
>>>>>>>>>>> a control on the page to select 'isBillboard', i want isBillboard 
>>>>>>>>>>> to be true
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> public WOComponent queryBillboardAction() {
>>>>>>>>>>> QueryPageInterface qpi = (QueryPageInterface) 
>>>>>>>>>>> D2W.factory().queryPageForEntityNamed("Grid", session());
>>>>>>>>>>> 
>>>>>>>>>>> ((D2WComponent) qpi).d2wContext().takeValueForKey("ListBillboard", 
>>>>>>>>>>> "navigationState");
>>>>>>>>>>> 
>>>>>>>>>>> return (WOComponent) qpi;
>>>>>>>>>>> 
>>>>>>>>>>> }
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/jlmiller%40kahalawai.com
>>>>>>>>>>> 
>>>>>>>>>>> This email sent to jlmil...@kahalawai.com
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
>>>>>>>>>> 
>>>>>>>>>> This email sent to programming...@mac.com
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com
>>>>>>>> 
>>>>>>>> This email sent to lists.fab...@e-lumo.com
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/tedpet5%40yahoo.com
>>>>>>> 
>>>>>>> This email sent to tedp...@yahoo.com
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
>>>>>> 
>>>>>> This email sent to programming...@mac.com
>>>>> 
>>>> 
>>> 
>> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
> 
> This email sent to programming...@mac.com

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to