From 2781809c095c8cf53c60a524499a9a74649ab506 Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Thu, 7 May 2009 20:39:59 +0000 Subject: [PATCH] appointments --- .../petclinic/appointments/Appointment.java | 37 ++++++++++ .../appointments/AppointmentBook.java | 13 ++++ .../appointments/AppointmentForm.java | 67 +++++++++++++++++++ .../petclinic/appointments/Appointments.java | 15 +++++ .../appointments/AppointmentsController.java | 30 ++++++++- .../appointments/StubAppointmentBook.java | 23 +++++++ .../samples/petclinic/owners/Owner.java | 13 ++-- .../petclinic/owners/OwnersController.java | 1 - .../WEB-INF/appointments/addNewForm.jsp | 31 +++++++++ .../webapp/WEB-INF/appointments/content.jsp | 11 +++ .../src/main/webapp/WEB-INF/tiles.xml | 24 ++++++- 11 files changed, 252 insertions(+), 13 deletions(-) create mode 100644 org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java create mode 100644 org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java create mode 100644 org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java create mode 100644 org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java create mode 100644 org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java create mode 100644 org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp create mode 100644 org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java new file mode 100644 index 000000000..d193117e0 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java @@ -0,0 +1,37 @@ +package org.springframework.samples.petclinic.appointments; + +import java.util.Date; + +public class Appointment { + + private String owner; + + private String ownerPhone; + + private String pet; + + private String notes; + + private Date dateTime; + + public String getOwner() { + return owner; + } + + public String getOwnerPhone() { + return ownerPhone; + } + + public String getPet() { + return pet; + } + + public Date getDateTime() { + return dateTime; + } + + public String getNotes() { + return notes; + } + +} diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java new file mode 100644 index 000000000..55ebd488b --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java @@ -0,0 +1,13 @@ +package org.springframework.samples.petclinic.appointments; + +import java.util.Date; + +public interface AppointmentBook { + + Appointments getAppointmentsForToday(); + + Appointments getAppointmentsForDay(Date day); + + Long createAppointment(AppointmentForm form); + +} \ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java new file mode 100644 index 000000000..d3d7abaaf --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java @@ -0,0 +1,67 @@ +package org.springframework.samples.petclinic.appointments; + +import java.util.Date; + +public class AppointmentForm { + + private Long doctor; + + private Long owner; + + private String pet; + + private Date date; + + private Date time; + + private String notes; + + public Long getDoctor() { + return doctor; + } + + public void setDoctor(Long doctor) { + this.doctor = doctor; + } + + public Long getOwner() { + return owner; + } + + public void setOwner(Long owner) { + this.owner = owner; + } + + public String getPet() { + return pet; + } + + public void setPet(String pet) { + this.pet = pet; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + +} \ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java new file mode 100644 index 000000000..f2aa85e68 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java @@ -0,0 +1,15 @@ +package org.springframework.samples.petclinic.appointments; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class Appointments { + + private Map> vetAppointments = new LinkedHashMap>(); + + public Map> getAllByVet() { + return vetAppointments; + } + +} diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java index c8abc0ab8..e3c786017 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java @@ -1,6 +1,10 @@ package org.springframework.samples.petclinic.appointments; +import java.util.Date; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -8,9 +12,31 @@ import org.springframework.web.bind.annotation.RequestMethod; @RequestMapping("/appointments") public class AppointmentsController { + private AppointmentBook appointmentBook; + + @Autowired + public AppointmentsController(AppointmentBook appointmentBook) { + this.appointmentBook = appointmentBook; + } + @RequestMapping(method = RequestMethod.GET) - public void get() { - + public Appointments get() { + return appointmentBook.getAppointmentsForToday(); + } + + @RequestMapping(value="/{day}", method = RequestMethod.GET) + public Appointments getForDay(@PathVariable Date day) { + return appointmentBook.getAppointmentsForDay(day); + } + + @RequestMapping(value="/new", method = RequestMethod.GET) + public AppointmentForm getNewForm() { + return new AppointmentForm(); } + @RequestMapping(method = RequestMethod.POST) + public String post(AppointmentForm form) { + appointmentBook.createAppointment(form); + return "redirect:/appointments"; + } } diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java new file mode 100644 index 000000000..92525a365 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java @@ -0,0 +1,23 @@ +package org.springframework.samples.petclinic.appointments; + +import java.util.Date; + +import org.springframework.stereotype.Repository; + +@Repository +public class StubAppointmentBook implements AppointmentBook { + + public Appointments getAppointmentsForDay(Date day) { + return new Appointments(); + } + + public Appointments getAppointmentsForToday() { + return new Appointments(); + } + + public Long createAppointment(AppointmentForm form) { + return 1L; + } + + +} diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java index 934accd06..9841482b5 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java @@ -12,7 +12,7 @@ public class Owner { private String city; - private String telephone; + private String phone; public Owner() { @@ -58,13 +58,12 @@ public class Owner { this.city = city; } - public String getTelephone() { - return telephone; + public String getPhone() { + return phone; } - public void setTelephone(String telephone) { - this.telephone = telephone; + public void setPhone(String phone) { + this.phone = phone; } - -} +} \ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java index f41e89571..f24cd0745 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java @@ -37,7 +37,6 @@ public class OwnersController { @RequestMapping(method = RequestMethod.POST) public String post(Owner owner) { Long ownerId = repository.saveOwner(owner); - // TODO simplify this since /owners is the current resource already? return "redirect:/owners/" + ownerId; } diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp new file mode 100644 index 000000000..997640df0 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp @@ -0,0 +1,31 @@ +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +

Add New Appointment

+ + + + Doctor + + + + Owner + + + + Pet + + + + Date + + + + Time + + + + Notes + + + + \ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp new file mode 100644 index 000000000..b171fb5ad --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp @@ -0,0 +1,11 @@ +<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> + + +
+ +
\ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml index 87229ac06..e87543e73 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml @@ -17,13 +17,30 @@ + + - + + + + + + + + + + + + + + + + @@ -36,7 +53,7 @@ - + @@ -54,7 +71,7 @@ - + @@ -64,4 +81,5 @@ + \ No newline at end of file