Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. public static class FilterViewModel {
  2.         Filter filter;
  3.  
  4.  
  5.         public ObservableBoolean isCashgameEnabled = new ObservableBoolean();
  6.         public ObservableBoolean cashGameTexasIncluded = new ObservableBoolean();
  7.         public ObservableBoolean cashGameOmahaIncluded = new ObservableBoolean();
  8.         public ObservableInt blindsMin = new ObservableInt();
  9.         public ObservableInt blindsMax = new ObservableInt();
  10.  
  11.         public ObservableBoolean isTournamentEnabled = new ObservableBoolean();
  12.         public ObservableBoolean tournamentTexasIncluded = new ObservableBoolean();
  13.         public ObservableBoolean tournamentOmahaIncluded = new ObservableBoolean();
  14.         public ObservableInt buyInMin = new ObservableInt();
  15.         public ObservableInt buyInMax = new ObservableInt();
  16.  
  17.  
  18.         public FilterViewModel(Filter filter) {
  19.             this.filter = filter;
  20.             bindBooleanFieldAndObservable(isCashgameEnabled, filter.isCashgameEnabled, filter::setCashgameEnabled);
  21.             bindBooleanFieldAndObservable(isTournamentEnabled, filter.isTournamentEnabled, filter::setTournamentEnabled);
  22.  
  23.             wrapListInBoolean(cashGameTexasIncluded, filter.cashgameGameTypesList, "texas_holdem");
  24.             wrapListInBoolean(cashGameOmahaIncluded, filter.cashgameGameTypesList, "omaha");
  25.             wrapListInBoolean(tournamentTexasIncluded, filter.tournamentGameTypesList, "texas_holdem");
  26.             wrapListInBoolean(tournamentOmahaIncluded, filter.tournamentGameTypesList, "omaha");
  27.  
  28.             bindIntFieldAndObservable(blindsMin, filter.blindsMin, filter::setBlindsMin);
  29.             bindIntFieldAndObservable(blindsMax, filter.blindsMax, filter::setBlindsMax);
  30.             bindIntFieldAndObservable(buyInMin, filter.buyInMin, filter::setBuyInMin);
  31.             bindIntFieldAndObservable(buyInMax, filter.buyInMax, filter::setBuyInMax);
  32.         }
  33.  
  34.         public void bindBooleanFieldAndObservable(ObservableBoolean observableBoolean, boolean value, Consumer<Boolean> setCallback) {
  35.             observableBoolean.set(value);
  36.             booleanCallback(observableBoolean, setCallback);
  37.         }
  38.  
  39.         public void bindIntFieldAndObservable(ObservableInt observableInt, int value, Consumer<Integer> setCallback) {
  40.             observableInt.set(value);
  41.             intCallback(observableInt, setCallback);
  42.         }
  43.  
  44.         public void booleanCallback(ObservableBoolean observableBoolean, Consumer<Boolean> callback) {
  45.             observableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
  46.                 @Override
  47.                 public void onPropertyChanged(Observable sender, int propertyId) {
  48.                     callback.accept(observableBoolean.get());
  49.                 }
  50.             });
  51.         }
  52.  
  53.         public void intCallback(ObservableInt observableBoolean, Consumer<Integer> callback) {
  54.             observableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
  55.                 @Override
  56.                 public void onPropertyChanged(Observable sender, int propertyId) {
  57.                     callback.accept(observableBoolean.get());
  58.                 }
  59.             });
  60.         }
  61.  
  62.         public void wrapListInBoolean(ObservableBoolean observable, List<String> list, String what) {
  63.             bindBooleanFieldAndObservable(observable, list.contains(what),
  64.                     changedBool -> {
  65.                         if (changedBool) list.add(what);
  66.                         else list.remove(what);
  67.                     });
  68.         }
  69.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement