Преглед на файлове

Using HandlingEventRepository for tracking view.

peter_backlund преди 17 години
родител
ревизия
85ae33b72f

+ 15
- 4
dddsample/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingController.java Целия файл

@@ -8,10 +8,13 @@ import org.springframework.web.servlet.support.RequestContextUtils;
8 8
 import se.citerus.dddsample.domain.model.cargo.Cargo;
9 9
 import se.citerus.dddsample.domain.model.cargo.CargoRepository;
10 10
 import se.citerus.dddsample.domain.model.cargo.TrackingId;
11
+import se.citerus.dddsample.domain.model.handling.HandlingEvent;
12
+import se.citerus.dddsample.domain.model.handling.HandlingEventRepository;
11 13
 
12 14
 import javax.servlet.http.HttpServletRequest;
13 15
 import javax.servlet.http.HttpServletResponse;
14 16
 import java.util.HashMap;
17
+import java.util.List;
15 18
 import java.util.Locale;
16 19
 import java.util.Map;
17 20
 
@@ -33,6 +36,7 @@ import java.util.Map;
33 36
 public final class CargoTrackingController extends SimpleFormController {
34 37
 
35 38
   private CargoRepository cargoRepository;
39
+  private HandlingEventRepository handlingEventRepository;
36 40
 
37 41
   public CargoTrackingController() {
38 42
     setCommandClass(TrackCommand.class);
@@ -44,14 +48,16 @@ public final class CargoTrackingController extends SimpleFormController {
44 48
 
45 49
     final TrackCommand trackCommand = (TrackCommand) command;
46 50
     final String trackingIdString = trackCommand.getTrackingId();
47
-    
48
-    final Cargo cargo = cargoRepository.find(new TrackingId(trackingIdString));
49 51
 
50
-    final Map<String, CargoTrackingViewAdapter> model = new HashMap();
52
+    final TrackingId trackingId = new TrackingId(trackingIdString);
53
+    final Cargo cargo = cargoRepository.find(trackingId);
54
+
55
+    final Map<String, CargoTrackingViewAdapter> model = new HashMap<String, CargoTrackingViewAdapter>();
51 56
     if (cargo != null) {
52 57
       final MessageSource messageSource = getApplicationContext();
53 58
       final Locale locale = RequestContextUtils.getLocale(request);
54
-      model.put("cargo", new CargoTrackingViewAdapter(cargo, messageSource, locale));
59
+      final List<HandlingEvent> handlingEvents = handlingEventRepository.findEventsForCargo(trackingId);
60
+      model.put("cargo", new CargoTrackingViewAdapter(cargo, messageSource, locale, handlingEvents));
55 61
     } else {
56 62
       errors.rejectValue("trackingId", "cargo.unknown_id", new Object[]{trackCommand.getTrackingId()}, "Unknown tracking id");
57 63
     }
@@ -61,4 +67,9 @@ public final class CargoTrackingController extends SimpleFormController {
61 67
   public void setCargoRepository(CargoRepository cargoRepository) {
62 68
     this.cargoRepository = cargoRepository;
63 69
   }
70
+
71
+  public void setHandlingEventRepository(HandlingEventRepository handlingEventRepository) {
72
+    this.handlingEventRepository = handlingEventRepository;
73
+  }
74
+
64 75
 }

+ 2
- 2
dddsample/src/main/java/se/citerus/dddsample/interfaces/tracking/CargoTrackingViewAdapter.java Целия файл

@@ -29,13 +29,13 @@ public final class CargoTrackingViewAdapter {
29 29
    * @param cargo
30 30
    * @param messageSource
31 31
    * @param locale
32
+   * @param handlingEvents
32 33
    */
33
-  public CargoTrackingViewAdapter(Cargo cargo, MessageSource messageSource, Locale locale) {
34
+  public CargoTrackingViewAdapter(Cargo cargo, MessageSource messageSource, Locale locale, List<HandlingEvent> handlingEvents) {
34 35
     this.messageSource = messageSource;
35 36
     this.locale = locale;
36 37
     this.cargo = cargo;
37 38
 
38
-    final List<HandlingEvent> handlingEvents = cargo.delivery().history();
39 39
     this.events = new ArrayList<HandlingEventViewAdapter>(handlingEvents.size());
40 40
     for (HandlingEvent handlingEvent : handlingEvents) {
41 41
       events.add(new HandlingEventViewAdapter(handlingEvent));

+ 0
- 29
dddsample/src/main/webapp/WEB-INF/dispatch-servlet.xml Целия файл

@@ -1,29 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8"?>
2
-<beans xmlns="http://www.springframework.org/schema/beans"
3
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
5
-
6
-  <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
7
-    <property name="interceptors">
8
-      <list>
9
-        <ref bean="openSessionInViewInterceptor"/>
10
-      </list>
11
-    </property>
12
-  </bean>
13
-
14
-  <bean name="/cargo/track.html" class="se.citerus.dddsample.interfaces.tracking.CargoTrackingController">
15
-    <property name="sessionForm" value="true"/>
16
-    <property name="commandName" value="trackCommand"/>
17
-    <property name="formView" value="cargo/track"/>
18
-    <property name="successView" value="start"/>
19
-    <property name="cargoRepository" ref="cargoRepository"/>
20
-    <property name="validator" ref="trackCommandValidator"/>
21
-  </bean>
22
-
23
-  <bean id="trackCommandValidator" class="se.citerus.dddsample.interfaces.tracking.TrackCommandValidator"/>
24
-
25
-  <bean name="/admin/*" class="se.citerus.dddsample.interfaces.booking.web.CargoAdminController">
26
-    <property name="bookingServiceFacade" ref="bookingServiceFacade"/>
27
-  </bean>
28
-
29
-</beans>

+ 2
- 1
dddsample/src/main/webapp/WEB-INF/tracking-servlet.xml Целия файл

@@ -16,8 +16,9 @@
16 16
     <property name="commandName" value="trackCommand"/>
17 17
     <property name="formView" value="track"/>
18 18
     <property name="successView" value="start"/>
19
-    <property name="cargoRepository" ref="cargoRepository"/>
20 19
     <property name="validator" ref="trackCommandValidator"/>
20
+    <property name="cargoRepository" ref="cargoRepository"/>
21
+    <property name="handlingEventRepository" ref="handlingEventRepository"/>
21 22
   </bean>
22 23
 
23 24
   <bean id="trackCommandValidator" class="se.citerus.dddsample.interfaces.tracking.TrackCommandValidator"/>