This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git
commit 7d2e106e6b8b2361299ca327b167206e1ae277e0 Author: Dan Haywood <[email protected]> AuthorDate: Mon May 27 00:02:49 2024 +0100 adds HomePageViewModel_bookVisit convenience action removes comments --- .../mixins/HomePageViewModel_bookVisit.java | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/webapp/src/main/java/domainapp/webapp/application/services/homepage/mixins/HomePageViewModel_bookVisit.java b/webapp/src/main/java/domainapp/webapp/application/services/homepage/mixins/HomePageViewModel_bookVisit.java new file mode 100644 index 0000000..1fa3fda --- /dev/null +++ b/webapp/src/main/java/domainapp/webapp/application/services/homepage/mixins/HomePageViewModel_bookVisit.java @@ -0,0 +1,69 @@ +package domainapp.webapp.application.services.homepage.mixins; + +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import javax.inject.Inject; + +import org.apache.causeway.applib.annotation.Action; +import org.apache.causeway.applib.annotation.ActionLayout; +import org.apache.causeway.applib.annotation.MemberSupport; +import org.apache.causeway.applib.services.factory.FactoryService; +import org.apache.causeway.applib.services.wrapper.WrapperFactory; + +import lombok.RequiredArgsConstructor; + +import domainapp.modules.petowner.dom.pet.Pet; +import domainapp.modules.petowner.dom.petowner.PetOwner; +import domainapp.modules.petowner.dom.petowner.PetOwnerRepository; +import domainapp.modules.visit.contributions.PetOwner_bookVisit; +import domainapp.modules.visit.dom.visit.VisitRepository; +import domainapp.webapp.application.services.homepage.HomePageViewModel; + +@Action +@ActionLayout(associateWith = "futureVisits") +@RequiredArgsConstructor +public class HomePageViewModel_bookVisit { + + final HomePageViewModel homePageViewModel; + + @MemberSupport + public Object act( + PetOwner petOwner, Pet pet, LocalDateTime visitAt, + boolean showVisit) { + wrapperFactory.wrapMixin(PetOwner_bookVisit.class, petOwner).act(pet, visitAt); + if (showVisit) { + return visitRepository.findByPetAndVisitAt(pet, visitAt); + } + return homePageViewModel; + } + @MemberSupport + public List<PetOwner> autoComplete0Act(final String lastName) { + return petOwnerRepository.findByNameContaining(lastName); + } + @MemberSupport + public Set<Pet> choices1Act(PetOwner petOwner) { + if(petOwner == null) { + return Collections.emptySet(); + } + return petOwner.getPets(); + } + @MemberSupport + public LocalDateTime default2Act(PetOwner petOwner, Pet pet) { + if(petOwner == null || pet == null) { + return null; + } + return factoryService.mixin(PetOwner_bookVisit.class, petOwner).default1Act(); + } + @MemberSupport + public String validate2Act(PetOwner petOwner, Pet pet, LocalDateTime visitAt) { + return factoryService.mixin(PetOwner_bookVisit.class, petOwner).validate1Act(visitAt); + } + + @Inject VisitRepository visitRepository; + @Inject PetOwnerRepository petOwnerRepository; + @Inject WrapperFactory wrapperFactory; + @Inject FactoryService factoryService; +}
