You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Christian Steinebach <Ch...@marintek.sintef.no> on 2013/01/05 20:24:01 UTC

problem with choices for properties

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;
    }    
}

RE: problem with choices for properties

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
nice one, Adam. I had misunderstood that the problem was with an action
parameter drop down.

Sorry to be brief, sent from my phone
On Jan 7, 2013 12:01 AM, "Christian Steinebach" <
Christian.Steinebach@marintek.sintef.no> wrote:

> Hi Adam,
>
> that's it! :-)
> Thank you very much for helping!
>
>           Christian
>
> ________________________________________
> From: Adam Howard [howard.adam@gmail.com]
> Sent: Sunday, January 06, 2013 11:30 PM
> To: users@isis.apache.org
> Subject: Re: problem with choices for properties
>
> Christian,
>
> I think what you're looking for is a method in your TransportDemands
> factory like:
>
> public List<TransportDemand> choices0NewTransportDemand() {
>     return destinations.allDestinations();
> }
>
> and then choices1... for the second argument.
>
> This is how you tell an action where to get its choices as opposed to the
> choicesPickups method you have in the TransportDemand class which tells an
> "already created" instance where to get its choices.
>
> Hope that helps.
> --
> Adam Howard
>
>
> On Sun, Jan 6, 2013 at 3:57 PM, Dan Haywood <dan@haywood-associates.co.uk
> >wrote:
>
> > 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" <
> > Christian.Steinebach@marintek.sintef.no> 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 [dan@haywood-associates.co.uk]
> > > Sent: Sunday, January 06, 2013 7:02 PM
> > > To: users@isis.apache.org
> > > 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 <da...@haywood-associates.co.uk>
> > 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 <
> > > > Christian.Steinebach@marintek.sintef.no> 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;
> > > >>     }
> > > >> }
> > > >
> > > >
> > > >
> > >
> >
>

RE: problem with choices for properties

Posted by Christian Steinebach <Ch...@marintek.sintef.no>.
Hi Adam, 

that's it! :-) 
Thank you very much for helping!

          Christian

________________________________________
From: Adam Howard [howard.adam@gmail.com]
Sent: Sunday, January 06, 2013 11:30 PM
To: users@isis.apache.org
Subject: Re: problem with choices for properties

Christian,

I think what you're looking for is a method in your TransportDemands
factory like:

public List<TransportDemand> choices0NewTransportDemand() {
    return destinations.allDestinations();
}

and then choices1... for the second argument.

This is how you tell an action where to get its choices as opposed to the
choicesPickups method you have in the TransportDemand class which tells an
"already created" instance where to get its choices.

Hope that helps.
--
Adam Howard


On Sun, Jan 6, 2013 at 3:57 PM, Dan Haywood <da...@haywood-associates.co.uk>wrote:

> 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" <
> Christian.Steinebach@marintek.sintef.no> 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 [dan@haywood-associates.co.uk]
> > Sent: Sunday, January 06, 2013 7:02 PM
> > To: users@isis.apache.org
> > 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 <da...@haywood-associates.co.uk>
> 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 <
> > > Christian.Steinebach@marintek.sintef.no> 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;
> > >>     }
> > >> }
> > >
> > >
> > >
> >
>

Re: problem with choices for properties

Posted by Adam Howard <ho...@gmail.com>.
Christian,

I think what you're looking for is a method in your TransportDemands
factory like:

public List<TransportDemand> choices0NewTransportDemand() {
    return destinations.allDestinations();
}

and then choices1... for the second argument.

This is how you tell an action where to get its choices as opposed to the
choicesPickups method you have in the TransportDemand class which tells an
"already created" instance where to get its choices.

Hope that helps.
--
Adam Howard


On Sun, Jan 6, 2013 at 3:57 PM, Dan Haywood <da...@haywood-associates.co.uk>wrote:

> 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" <
> Christian.Steinebach@marintek.sintef.no> 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 [dan@haywood-associates.co.uk]
> > Sent: Sunday, January 06, 2013 7:02 PM
> > To: users@isis.apache.org
> > 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 <da...@haywood-associates.co.uk>
> 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 <
> > > Christian.Steinebach@marintek.sintef.no> 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;
> > >>     }
> > >> }
> > >
> > >
> > >
> >
>

RE: problem with choices for properties

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
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" <
Christian.Steinebach@marintek.sintef.no> 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 [dan@haywood-associates.co.uk]
> Sent: Sunday, January 06, 2013 7:02 PM
> To: users@isis.apache.org
> 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 <da...@haywood-associates.co.uk> 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 <
> > Christian.Steinebach@marintek.sintef.no> 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;
> >>     }
> >> }
> >
> >
> >
>

RE: problem with choices for properties

Posted by Christian Steinebach <Ch...@marintek.sintef.no>.
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 [dan@haywood-associates.co.uk]
Sent: Sunday, January 06, 2013 7:02 PM
To: users@isis.apache.org
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 <da...@haywood-associates.co.uk> 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 <
> Christian.Steinebach@marintek.sintef.no> 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;
>>     }
>> }
>
>
>

Re: problem with choices for properties

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
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 <da...@haywood-associates.co.uk> 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 <
> Christian.Steinebach@marintek.sintef.no> 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;
>>     }
>> }
>
>
>

RE: problem with choices for properties

Posted by Christian Steinebach <Ch...@marintek.sintef.no>.
Hei Dan!

Thanks for your reply.
I created a repository on github
Everything is based on the ToDo example. 
Two 'important' classes:
TransportDemand.java
Destination.java

TransportDemand has a Destination fro 'pickup' 
and a Destination for 'delivery'. That's all so far. ;-)

https://github.com/chris58/TransportPlanner.git

mvn install
run the wicket viewer


install fixture
select New Transport Demand

list of Destinations is null when neither Bounded or Autocomplete is annotated to Destination class

Both @Autocomplete (when uncommented in Destination.java) and @Bounded work as expected.

Don't know whether that is a bug or I did something wrong. ;-)

        Cheers
             Christian



________________________________________
From: Dan Haywood [dan@haywood-associates.co.uk]
Sent: Sunday, January 06, 2013 11:15 AM
To: users@isis.apache.org
Subject: Re: problem with choices for properties

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 <
Christian.Steinebach@marintek.sintef.no> 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;
>     }
> }

Re: problem with choices for properties

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
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 <
Christian.Steinebach@marintek.sintef.no> 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;
>     }
> }