Archived
0

implement vendor filter edit dialog

This commit is contained in:
Mo
2016-01-06 14:47:28 +03:00
parent 47d6284d83
commit da689e1d3a
10 changed files with 358 additions and 11 deletions

View File

@@ -2,7 +2,6 @@ package ru.trader.core;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.trader.analysis.FilteredVendor;
import java.util.*;
@@ -84,23 +83,43 @@ public class MarketFilter {
return excludes;
}
private String getVendorKey(Vendor vendor){
public static String getVendorKey(Vendor vendor){
return vendor == null ? null : vendor.getFullName();
}
public VendorFilter getDefaultVendorFilter() {
return defaultVendorFilter;
}
public Map<String, VendorFilter> getVendorFilters() {
return customFilteredVendors;
}
public void addFilter(Vendor vendor, VendorFilter vendorFilter){
customFilteredVendors.put(getVendorKey(vendor), vendorFilter);
}
public void addFilter(String key, VendorFilter vendorFilter){
customFilteredVendors.put(key, vendorFilter);
}
public void removeFilter(Vendor vendor){
customFilteredVendors.remove(getVendorKey(vendor));
}
public void removeFilter(String key){
customFilteredVendors.remove(key);
}
public VendorFilter getFilter(Vendor vendor){
VendorFilter filter = customFilteredVendors.get(getVendorKey(vendor));
return filter != null ? filter : defaultVendorFilter;
}
public void clearVendorFilters(){
customFilteredVendors.clear();
}
public boolean isFiltered(Place place){
return center != null && center.getDistance(place) > radius;
}

View File

@@ -11,6 +11,8 @@ public class VendorFilter {
private boolean disable;
private boolean skipIllegal;
private boolean dontBuy;
private boolean dontSell;
private final Collection<Item> buyExcludes;
private final Collection<Item> sellExcludes;
@@ -36,6 +38,22 @@ public class VendorFilter {
this.skipIllegal = skipIllegal;
}
public boolean isDontBuy() {
return dontBuy;
}
public void dontBuy(boolean dontBuy){
this.dontBuy = dontBuy;
}
public boolean isDontSell() {
return dontSell;
}
public void dontSell(boolean dontSell) {
this.dontSell = dontSell;
}
public void addBuyExclude(Item item){
buyExcludes.add(item);
}
@@ -72,8 +90,8 @@ public class VendorFilter {
if (disable) return false;
if (skipIllegal && offer.isIllegal()) return true;
switch (offer.getType()) {
case SELL: return sellExcludes.contains(offer.getItem());
case BUY: return buyExcludes.contains(offer.getItem());
case SELL: return dontSell || sellExcludes.contains(offer.getItem());
case BUY: return dontBuy || buyExcludes.contains(offer.getItem());
}
return false;
}
@@ -82,8 +100,8 @@ public class VendorFilter {
if (disable) return false;
if (skipIllegal && (item.isIllegal(vendor))) return true;
switch (offerType) {
case SELL: return sellExcludes.contains(item);
case BUY: return buyExcludes.contains(item);
case SELL: return dontSell || sellExcludes.contains(item);
case BUY: return dontBuy || buyExcludes.contains(item);
}
return false;
}