From 20c499a57bde4bc465675da5a1fb92c8b96a216c Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 14 Mar 2012 15:02:36 +0000 Subject: [PATCH] Adding filtering by minimum count of owned cards. --- .../gempukku/lotro/server/MerchantResource.java | 16 ++++++++++++---- .../src/main/webapp/js/communication.js | 3 ++- .../src/main/webapp/js/merchantUi.js | 3 ++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/MerchantResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/MerchantResource.java index bddd3d1c5..b61f661d1 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/MerchantResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/MerchantResource.java @@ -63,6 +63,7 @@ public class MerchantResource extends AbstractResource { public Document getCollection( @QueryParam("participantId") String participantId, @QueryParam("filter") String filter, + @QueryParam("ownedMin") int ownedMin, @QueryParam("start") int start, @QueryParam("count") int count, @Context HttpServletRequest request, @@ -72,12 +73,19 @@ public class MerchantResource extends AbstractResource { CardCollection collection = _collectionsManager.getPlayerCollection(resourceOwner, "permanent"); Set cardItems = new HashSet(); - cardItems.addAll(collection.getAllItems()); - Set items = _merchantService.getSellableItems(); - for (CardItem item : items) { - if (collection.getItemCount(item.getBlueprintId()) == 0) + final List allItems = collection.getAllItems(); + for (CardCollection.Item item : allItems) { + if (item.getCount() >= ownedMin) cardItems.add(item); } + + if (ownedMin <= 0) { + Set items = _merchantService.getSellableItems(); + for (CardItem item : items) { + if (collection.getItemCount(item.getBlueprintId()) == 0) + cardItems.add(item); + } + } List filteredResult = _sortAndFilterCards.process(filter, cardItems, _library, _rarities); List pageToDisplay = new ArrayList(); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js index c2ac14b81..83ecb57ae 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js @@ -164,7 +164,7 @@ var GempLotrCommunication = Class.extend({ dataType: "xml" }); }, - getMerchant: function(filter, start, count, callback) { + getMerchant: function(filter, ownedMin, start, count, callback) { $.ajax({ type: "GET", url: this.url + "/merchant", @@ -172,6 +172,7 @@ var GempLotrCommunication = Class.extend({ data: { participantId: getUrlParam("participantId"), filter: filter, + ownedMin: ownedMin, start: start, count: count}, success: this.deliveryCheck(callback), diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/merchantUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/merchantUi.js index 1e8b5a082..bcfabf7e8 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/merchantUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/merchantUi.js @@ -13,6 +13,7 @@ var GempLotrMerchantUI = Class.extend({ questionDialog: null, currencyCount: null, + ownedMin: 0, init: function(cardListElem, cardFilterElem) { var that = this; @@ -21,7 +22,7 @@ var GempLotrMerchantUI = Class.extend({ this.cardFilter = new CardFilter(cardFilterElem, function(filter, start, count, callback) { - that.comm.getMerchant(filter, start, count, callback); + that.comm.getMerchant(filter, that.ownedMin, start, count, callback); }, function(rootElem) { that.clearList(rootElem);