summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sandbox/travelsample/trip-contribution/src/scatours/trip/TripContents.java1
-rw-r--r--sandbox/travelsample/trip-contribution/src/scatours/trip/TripImpl.java22
-rw-r--r--sandbox/travelsample/ui-contribution/scatours.html2
3 files changed, 23 insertions, 2 deletions
diff --git a/sandbox/travelsample/trip-contribution/src/scatours/trip/TripContents.java b/sandbox/travelsample/trip-contribution/src/scatours/trip/TripContents.java
index 78eb8fdab4..0484dde02e 100644
--- a/sandbox/travelsample/trip-contribution/src/scatours/trip/TripContents.java
+++ b/sandbox/travelsample/trip-contribution/src/scatours/trip/TripContents.java
@@ -30,5 +30,6 @@ import scatours.common.TripItem;
public interface TripContents extends Collection<String, TripItem> {
void addTripItem(String id);
+ void removeTripItem(String id);
double getTotalPrice();
}
diff --git a/sandbox/travelsample/trip-contribution/src/scatours/trip/TripImpl.java b/sandbox/travelsample/trip-contribution/src/scatours/trip/TripImpl.java
index 53e368f8e6..30d87a283e 100644
--- a/sandbox/travelsample/trip-contribution/src/scatours/trip/TripImpl.java
+++ b/sandbox/travelsample/trip-contribution/src/scatours/trip/TripImpl.java
@@ -59,6 +59,8 @@ public class TripImpl implements TripSearch, SearchCallback, TripContents{
@Property
public String quoteCurrencyCode = "USD";
+ private int responsesReceived = 0;
+
private List<TripItem> searchResults = new ArrayList<TripItem>();
private Map<String, TripItem> tripItems = new HashMap<String, TripItem>();
@@ -67,15 +69,22 @@ public class TripImpl implements TripSearch, SearchCallback, TripContents{
public TripItem[] search(TripLeg tripLeg) {
searchResults.clear();
+ responsesReceived = 0;
hotelSearch.searchAsynch(tripLeg);
flightSearch.searchAsynch(tripLeg);
carSearch.searchAsynch(tripLeg);
- // TODO - wait for searches to complete
+ while (responsesReceived < 3){
+ try {
+ this.wait();
+ } catch (InterruptedException ex){
+ // do nothing
+ }
+ }
for (TripItem tripItem : searchResults){
- tripItem.setId(String.valueOf(searchResults.indexOf(tripItem)));
+ tripItem.setId(UUID.randomUUID().toString());
tripItem.setPrice(currencyConverter.convert(tripItem.getCurrency(),
quoteCurrencyCode,
tripItem.getPrice()));
@@ -91,6 +100,12 @@ public class TripImpl implements TripSearch, SearchCallback, TripContents{
for(int i = 0; i < items.length; i++ ){
searchResults.add(items[i]);
}
+
+ responsesReceived++;
+ try {
+ this.notifyAll();
+ } catch (Exception ex) {
+ }
}
// TripContents methods
@@ -102,6 +117,9 @@ public class TripImpl implements TripSearch, SearchCallback, TripContents{
}
}
+ public void removeTripItem(String id){
+ tripItems.remove(id);
+ }
// Not using the DataCollection iface yet as it seems like a
// likely attach vector to be passing complete tripItem records in
diff --git a/sandbox/travelsample/ui-contribution/scatours.html b/sandbox/travelsample/ui-contribution/scatours.html
index 51feeb0815..c699ddb046 100644
--- a/sandbox/travelsample/ui-contribution/scatours.html
+++ b/sandbox/travelsample/ui-contribution/scatours.html
@@ -128,6 +128,8 @@
for (var i=0; i<items.length; i++) {
if (items[i].checked == true) {
tripContents.addTripItem(items[i].value);
+ } else {
+ tripContents.removeTripItem(items[i].value);
}
}