implement vendor filter edit dialog
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user