Actually, let me have a second go at answering this...
I think you probably just want a dependent choices...
public CustomerOrder addCustomerOrderPayment(
CustomerOrder customerOrder,
CustomerSubscription customerSubscription )
{
...
}
public List autoComplete0AddCustomerOrderPayment(String search) {
// return list of customers
}
public List choices1AddCustomerOrderPayment(CustomerOrder customerOrder) {
// return list of subscriptions for the customer
(customerOrder.getCustomer(), presumably).
}
I can't remember whether its autocomplete or choices that doesn't support
dependencies like this; one does, one doesn't. Try it out and see.
Thx
Dan
On 26 November 2015 at 16:47, Dan Haywood <[email protected]>
wrote:
> Hmm, it's a good question.
>
> Ultimately what goes in the autoComplete is up to you... it takes a string
> but that doesn't have to map to any particular property.
>
> As a little experiment, I just tweaked the todoapp's ToDoItem#autoComplete
> for adding dependencies. Normally this searches on the description, but I
> could change it to also allow the string to match all item in a given
> category:
>
> @Programmatic // not part of metamodel
> public List<ToDoItem> autoComplete(final String description) {
>
> final SortedSet<ToDoItem> items = Sets.newTreeSet();
> items.addAll(toDoItemRepository
> .findByAtPathAndDescriptionContains(currentUsersAtPath(),
> description));
>
> // this is the new bit
> try {
> final Category category =
> Category.valueOf(description.toUpperCase());
> items.addAll(toDoItemRepository
> .findByAtPathAndCategory(currentUsersAtPath(),
> category));
> } catch(Exception ex) {
> }
> // end of the new bit
>
> return Lists.newArrayList(items);
> }
>
> which gives the result as shown in this screenshot [1]
>
> Hopefully that might give some ideas for your use case.
>
> Thx
> Dan
>
>
>
> [1] http://imgur.com/6bD7cHv
>
>
>
> On 19 November 2015 at 00:05, Cesar Lugo <[email protected]> wrote:
>
>> Hello,
>>
>>
>>
>> So far, when I have created action methods that prompts for some domain
>> object(s) as parameters, I have used the autoCompleteRepository definition
>> within the @DomainObject annotation, which works great in the Wicket
>> Viewer
>> for finding entities using a string property. I have some cases where the
>> domain object used as a parameter within the action method does not
>> contain
>> string properties, but I need to ask it as a parameter. The user could
>> select it in the Wicket Viewer parameters dialog using a combination of a
>> numeric (Long) customerSubscriptionId field plus a string obtained from
>> another related parent entity (Customer's name), or just by picking it
>> from
>> a list of customerSubscriptionId's .Is there a suggested alternative
>> approach for that?
>>
>>
>>
>> Class: CustomerSubscription, properties:
>>
>> private Long customerSubscriptionId;
>>
>> private Customer customer;
>>
>>
>>
>> Class: Customer, properties:
>>
>> private string customerId;
>>
>> private string name;
>>
>>
>>
>> Action method:
>>
>> public CustomerOrder addCustomerOrderPayment(
>>
>> final @ParameterLayout(named="Customer Order") CustomerOrder
>> customerOrder,
>>
>> final @Parameter(optionality = Optionality.OPTIONAL)
>> @ParameterLayout(named="Customer Subscription")
>>
>> CustomerSubscription customerSubscription
>>
>> )
>>
>> {
>>
>> ...
>>
>> container.persistIfNotAlready(obj);
>>
>> return obj.getCustomerOrder();
>>
>> }
>>
>>
>>
>> I thought of defining a JDO query within customerSubscription that queries
>> customerSubscriptionId and customer.getName and then use the auto complete
>> repository with the combination of both. Any suggestions will be
>> appreciated.
>>
>>
>>
>> Cesar.
>>
>>
>>
>>
>>
>>
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> https://www.avast.com/antivirus
>>
>
>