Ah. You need to instantiate instances using container.newTransientInstance(ClassName.class).
Cheers, Dan Sorry to be brief, sent from my phone On Jan 6, 2013 9:48 PM, "Christian Steinebach" < [email protected]> wrote: > Hi Dan! > > Thank you very much again. It seems if you can make > it to the point where you can 'Edit' an instance, the necessary services > are injected > and you will get a drop down list. > The injections 'setDomainObjectContainer' and 'setToDoItems' etc. > are called when you edit an existing object but not when you try to > allocate a new one. > That would mean, only if you make a property @Optional the > choiceProperty() method will > be called (but only when editing the instance afterwards). > Maybe I'm completely on the wrong track here...? > Anyway, thanks to your suggestion it now works as expected with the > autoComplete annotation, so my problem > is solved in a way. :-) > > So long > Christian > > ________________________________________ > From: Dan Haywood [[email protected]] > Sent: Sunday, January 06, 2013 7:02 PM > To: [email protected] > Subject: Re: problem with choices for properties > > Hi Christian, > > Just coming back to you on this... > > I added a new property to the quickstart archetype's ToDoItem [1], and it > seems to be working ok [2], [3], [4]. > > The only thing that might be a bit odd is the rendering of "(null)" when no > reference is set... perhaps that should simply be blank. Otherwise, seems > ok... > > Dan > > > [1] http://danhaywood.com/?attachment_id=1067 > [2] http://danhaywood.com/?attachment_id=1068 > [3] http://danhaywood.com/?attachment_id=1069 > [4] http://danhaywood.com/?attachment_id=1070 > > > > On 6 January 2013 10:15, Dan Haywood <[email protected]> wrote: > > > Hi Christian, > > Welcome to the list, and thanks for trying out Isis. > > > > From a quick skim over your code, it doesn't look like there's anything > > wrong, so you might have uncovered an issue with the Wicket viewer. > > > > I do know that the autocomplete functionality works [1], [2], and this > may > > be a better UI experience anyway... so try that out too. > > > > I'll take a look when I get a chance, but if you could also create a very > > simple example test case on github, that'd be really helpful. > > > > Cheers > > Dan > > > > [1] http://isis.apache.org/core/guides/isis-applib.html#d5e779 > > [2] http://isis.apache.org/core/guides/isis-applib.html#d5e2277 > > > > > > > > On 5 January 2013 19:24, Christian Steinebach < > > [email protected]> wrote: > > > >> Hei everybody! > >> > >> I'm trying to learn isis and DDD, using the wicket viewer. > >> I have a class TransportDemand which has as a property a pickup > >> destination and a delivery destination. > >> > >> The Destination is again defined as a class. > >> The TransportDemands 'factory and repository' has an action > >> newTransportDemand(); > >> > >> In order to give the user a choice for the pickup/delivery destinations > I > >> created a method > >> choicesPickup() in the class TransportDemand > >> > >> But, in the UI there are no choices presented when selecting 'New > >> Transport Demand'. Only 'null' is written. > >> > >> When removing choicesPickup() and declaring the class Destination as > >> @Bounded, the list of destinations is shown. > >> > >> What have I done wrong? Some code fragments below. > >> > >> Thank your for any help > >> Christian > >> > >> > >> > >> > >> > >> ---- TransportDemand.java > >> public class TransportDemand extends AbstractDomainObject implements > >> Comparable<TransportDemand> { > >> > >> private Destination pickup; > >> public Destination getPickup() { > >> return pickup; > >> } > >> public List<Destination> choicesPickup(){ > >> return destinations.allDestinations(); > >> } > >> ..... > >> private Destinations destinations; > >> public void setDestinations(final Destinations destinations) { > >> this.destinations = destinations; > >> } > >> } > >> > >> ---- TransportDemands.java > >> public class TransportDemands extends AbstractFactoryAndRepository{ > >> ... > >> public TransportDemand newTransportDemand( > >> @Named("Pickup") Destination pickup, > >> @Named("Delivery") Destination delivery > >> ) > >> { > >> final TransportDemand transportDemand = > >> newTransientInstance(TransportDemand.class); > >> transportDemand.setPickup(pickup); > >> transportDemand.setDelivery(delivery); > >> transportDemand.setOwnedBy(currentUserName()); > >> persist(transportDemand); > >> return transportDemand; > >> } > >> > >> public List<TransportDemand> allTransportDemands(){ > >> final String currentUser = currentUserName(); > >> final List<TransportDemand> items = > >> allMatches(TransportDemand.class, > >> TransportDemand.thoseOwnedBy(currentUser)); > >> Collections.sort(items); > >> return items; > >> } > >> > >> > >> ---- Destinations.java > >> public class Destinations extends AbstractFactoryAndRepository{ > >> .... > >> public List<Destination> allDestinations() { > >> final List<Destination> items = allInstances(Destination.class); > >> Collections.sort(items); > >> return items; > >> } > >> } > > > > > > >
