Move Direction enum to Offer

This commit is contained in:
Manfred Karrer 2015-03-25 10:07:18 +01:00
parent af5949540d
commit 7750ae6e00
16 changed files with 36 additions and 67 deletions

View file

@ -19,7 +19,6 @@ package io.bitsquare.gui.main.portfolio.closed;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel; import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
@ -64,7 +63,7 @@ class ClosedTradesDataModel implements Activatable, DataModel {
return list; return list;
} }
public Direction getDirection(Offer offer) { public Offer.Direction getDirection(Offer offer) {
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ? return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
offer.getDirection() : offer.getMirroredDirection(); offer.getDirection() : offer.getMirroredDirection();
} }

View file

@ -21,7 +21,6 @@ import io.bitsquare.common.handlers.ErrorMessageHandler;
import io.bitsquare.common.handlers.ResultHandler; import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel; import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
@ -75,7 +74,7 @@ class OffersDataModel implements Activatable, DataModel {
return list; return list;
} }
public Direction getDirection(Offer offer) { public Offer.Direction getDirection(Offer offer) {
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ? return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
offer.getDirection() : offer.getMirroredDirection(); offer.getDirection() : offer.getMirroredDirection();
} }

View file

@ -22,7 +22,6 @@ import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel; import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
@ -233,7 +232,7 @@ class PendingTradesDataModel implements Activatable, DataModel {
return selectedItem.getTrade().getOffer().getCurrency().getCurrencyCode(); return selectedItem.getTrade().getOffer().getCurrency().getCurrencyCode();
} }
public Direction getDirection(Offer offer) { public Offer.Direction getDirection(Offer offer) {
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ? return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
offer.getDirection() : offer.getMirroredDirection(); offer.getDirection() : offer.getMirroredDirection();
} }

View file

@ -27,7 +27,6 @@ import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.trade.createoffer.CreateOfferView; import io.bitsquare.gui.main.trade.createoffer.CreateOfferView;
import io.bitsquare.gui.main.trade.offerbook.OfferBookView; import io.bitsquare.gui.main.trade.offerbook.OfferBookView;
import io.bitsquare.gui.main.trade.takeoffer.TakeOfferView; import io.bitsquare.gui.main.trade.takeoffer.TakeOfferView;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
@ -54,12 +53,12 @@ public abstract class TradeView extends ActivatableView<TabPane, Void> {
private final ViewLoader viewLoader; private final ViewLoader viewLoader;
private final Navigation navigation; private final Navigation navigation;
private final Direction direction; private final Offer.Direction direction;
protected TradeView(ViewLoader viewLoader, Navigation navigation) { protected TradeView(ViewLoader viewLoader, Navigation navigation) {
this.viewLoader = viewLoader; this.viewLoader = viewLoader;
this.navigation = navigation; this.navigation = navigation;
this.direction = (this instanceof BuyView) ? Direction.BUY : Direction.SELL; this.direction = (this instanceof BuyView) ? Offer.Direction.BUY : Offer.Direction.SELL;
} }
@Override @Override
@ -120,7 +119,7 @@ public abstract class TradeView extends ActivatableView<TabPane, Void> {
if (viewClass == OfferBookView.class && offerBookView == null) { if (viewClass == OfferBookView.class && offerBookView == null) {
view = viewLoader.load(viewClass); view = viewLoader.load(viewClass);
// Offerbook must not be cached by ViewLoader as we use 2 instances for sell and buy screens. // Offerbook must not be cached by ViewLoader as we use 2 instances for sell and buy screens.
final Tab tab = new Tab(direction == Direction.BUY ? "Buy Bitcoin" : "Sell Bitcoin"); final Tab tab = new Tab(direction == Offer.Direction.BUY ? "Buy Bitcoin" : "Sell Bitcoin");
tab.setClosable(false); tab.setClosable(false);
tab.setContent(view.getRoot()); tab.setContent(view.getRoot());
tabPane.getTabs().add(tab); tabPane.getTabs().add(tab);

View file

@ -27,7 +27,7 @@ import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.AccountSettings; import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.Preferences; import io.bitsquare.user.Preferences;
@ -75,7 +75,7 @@ class CreateOfferDataModel implements Activatable, DataModel {
private final String offerId; private final String offerId;
@Nullable private Direction direction = null; @Nullable private Offer.Direction direction = null;
private AddressEntry addressEntry; private AddressEntry addressEntry;
final StringProperty requestPlaceOfferErrorMessage = new SimpleStringProperty(); final StringProperty requestPlaceOfferErrorMessage = new SimpleStringProperty();
@ -231,12 +231,12 @@ class CreateOfferDataModel implements Activatable, DataModel {
@Nullable @Nullable
Direction getDirection() { Offer.Direction getDirection() {
return direction; return direction;
} }
@SuppressWarnings("NullableProblems") @SuppressWarnings("NullableProblems")
void setDirection(Direction direction) { void setDirection(Offer.Direction direction) {
// direction can not be changed once it is initially set // direction can not be changed once it is initially set
checkNotNull(direction); checkNotNull(direction);
this.direction = direction; this.direction = direction;

View file

@ -38,7 +38,7 @@ import io.bitsquare.gui.main.portfolio.pending.PendingTradesView;
import io.bitsquare.gui.main.trade.TradeView; import io.bitsquare.gui.main.trade.TradeView;
import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.Fiat; import org.bitcoinj.utils.Fiat;
@ -126,10 +126,10 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
} }
public void initWithData(Direction direction, Coin amount, Fiat price) { public void initWithData(Offer.Direction direction, Coin amount, Fiat price) {
model.initWithData(direction, amount, price); model.initWithData(direction, amount, price);
if (direction == Direction.BUY) if (direction == Offer.Direction.BUY)
imageView.setId("image-buy-large"); imageView.setId("image-buy-large");
else else
imageView.setId("image-sell-large"); imageView.setId("image-sell-large");

View file

@ -25,7 +25,7 @@ import io.bitsquare.gui.util.validation.BtcValidator;
import io.bitsquare.gui.util.validation.FiatValidator; import io.bitsquare.gui.util.validation.FiatValidator;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Address; import org.bitcoinj.core.Address;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
@ -112,9 +112,9 @@ class CreateOfferViewModel extends ActivatableWithDataModel<CreateOfferDataModel
} }
// setOfferBookFilter is a one time call // setOfferBookFilter is a one time call
void initWithData(Direction direction, Coin amount, Fiat price) { void initWithData(Offer.Direction direction, Coin amount, Fiat price) {
dataModel.setDirection(direction); dataModel.setDirection(direction);
directionLabel.set(dataModel.getDirection() == Direction.BUY ? BSResources.get("shared.buy") : BSResources.get directionLabel.set(dataModel.getDirection() == Offer.Direction.BUY ? BSResources.get("shared.buy") : BSResources.get
("shared.sell")); ("shared.sell"));
// apply only if valid // apply only if valid

View file

@ -25,7 +25,6 @@ import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBook; import io.bitsquare.offer.OfferBook;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
@ -75,7 +74,7 @@ class OfferBookDataModel implements Activatable, DataModel {
final StringProperty fiatCode = new SimpleStringProperty(); final StringProperty fiatCode = new SimpleStringProperty();
final StringProperty btcCode = new SimpleStringProperty(); final StringProperty btcCode = new SimpleStringProperty();
final ObjectProperty<Country> bankAccountCountry = new SimpleObjectProperty<>(); final ObjectProperty<Country> bankAccountCountry = new SimpleObjectProperty<>();
private Direction direction; private Offer.Direction direction;
@Inject @Inject
@ -184,7 +183,7 @@ class OfferBookDataModel implements Activatable, DataModel {
} }
void setDirection(Direction direction) { void setDirection(Offer.Direction direction) {
this.direction = direction; this.direction = direction;
} }
@ -240,7 +239,7 @@ class OfferBookDataModel implements Activatable, DataModel {
return volumeAsFiat; return volumeAsFiat;
} }
Direction getDirection() { Offer.Direction getDirection() {
return direction; return direction;
} }
@ -268,7 +267,7 @@ class OfferBookDataModel implements Activatable, DataModel {
boolean priceResult = true; boolean priceResult = true;
if (priceAsFiat.get() != null && priceAsFiat.get().isPositive()) { if (priceAsFiat.get() != null && priceAsFiat.get().isPositive()) {
if (offer.getDirection() == Direction.SELL) if (offer.getDirection() == Offer.Direction.SELL)
priceResult = priceAsFiat.get().compareTo(offer.getPrice()) >= 0; priceResult = priceAsFiat.get().compareTo(offer.getPrice()) >= 0;
else else
priceResult = priceAsFiat.get().compareTo(offer.getPrice()) <= 0; priceResult = priceAsFiat.get().compareTo(offer.getPrice()) <= 0;

View file

@ -33,7 +33,6 @@ import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.gui.util.validation.OptionalBtcValidator; import io.bitsquare.gui.util.validation.OptionalBtcValidator;
import io.bitsquare.gui.util.validation.OptionalFiatValidator; import io.bitsquare.gui.util.validation.OptionalFiatValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import java.util.ArrayList; import java.util.ArrayList;
@ -141,7 +140,7 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
SortedList<OfferBookListItem> offerList = model.getOfferList(); SortedList<OfferBookListItem> offerList = model.getOfferList();
table.setItems(offerList); table.setItems(offerList);
offerList.comparatorProperty().bind(table.comparatorProperty()); offerList.comparatorProperty().bind(table.comparatorProperty());
priceColumn.setSortType((model.getDirection() == Direction.BUY) ? priceColumn.setSortType((model.getDirection() == Offer.Direction.BUY) ?
TableColumn.SortType.ASCENDING : TableColumn.SortType.DESCENDING); TableColumn.SortType.ASCENDING : TableColumn.SortType.DESCENDING);
table.sort(); table.sort();
@ -160,7 +159,7 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
createOfferButton.setDisable(false); createOfferButton.setDisable(false);
} }
public void setDirection(Direction direction) { public void setDirection(Offer.Direction direction) {
model.setDirection(direction); model.setDirection(direction);
} }
@ -224,7 +223,7 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
private void takeOffer(Offer offer) { private void takeOffer(Offer offer) {
if (model.isRegistered()) { if (model.isRegistered()) {
if (offer.getDirection() == Direction.BUY) { if (offer.getDirection() == Offer.Direction.BUY) {
offerActionHandler.takeOffer(model.getAmountAsCoin(), model.getPriceAsCoin(), offer); offerActionHandler.takeOffer(model.getAmountAsCoin(), model.getPriceAsCoin(), offer);
} }
else { else {
@ -474,7 +473,7 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
button.setOnAction(event -> model.cancelOpenOffer(item.getOffer())); button.setOnAction(event -> model.cancelOpenOffer(item.getOffer()));
} }
else { else {
if (offer.getDirection() == Direction.SELL) if (offer.getDirection() == Offer.Direction.SELL)
iconView.setId("image-buy"); iconView.setId("image-buy");
else else
iconView.setId("image-sell"); iconView.setId("image-sell");

View file

@ -25,7 +25,6 @@ import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.gui.util.validation.OptionalBtcValidator; import io.bitsquare.gui.util.validation.OptionalBtcValidator;
import io.bitsquare.gui.util.validation.OptionalFiatValidator; import io.bitsquare.gui.util.validation.OptionalFiatValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
@ -120,7 +119,7 @@ class OfferBookViewModel extends ActivatableWithDataModel<OfferBookDataModel> im
} }
void setDirection(Direction direction) { void setDirection(Offer.Direction direction) {
dataModel.setDirection(direction); dataModel.setDirection(direction);
} }
@ -159,7 +158,7 @@ class OfferBookViewModel extends ActivatableWithDataModel<OfferBookDataModel> im
return formatter.formatDirection(offer.getMirroredDirection()); return formatter.formatDirection(offer.getMirroredDirection());
} }
Direction getDirection() { Offer.Direction getDirection() {
return dataModel.getDirection(); return dataModel.getDirection();
} }

View file

@ -36,7 +36,6 @@ import io.bitsquare.gui.main.portfolio.pending.PendingTradesView;
import io.bitsquare.gui.main.trade.TradeView; import io.bitsquare.gui.main.trade.TradeView;
import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
@ -119,10 +118,10 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
model.errorMessage.removeListener(errorMessageChangeListener); model.errorMessage.removeListener(errorMessageChangeListener);
} }
public void initWithData(Direction direction, Coin amount, Offer offer) { public void initWithData(Offer.Direction direction, Coin amount, Offer offer) {
model.initWithData(direction, amount, offer); model.initWithData(direction, amount, offer);
if (direction == Direction.BUY) if (direction == Offer.Direction.BUY)
imageView.setId("image-buy-large"); imageView.setId("image-buy-large");
else else
imageView.setId("image-sell-large"); imageView.setId("image-sell-large");

View file

@ -24,7 +24,6 @@ import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.gui.util.validation.BtcValidator; import io.bitsquare.gui.util.validation.BtcValidator;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import org.bitcoinj.core.Address; import org.bitcoinj.core.Address;
@ -115,10 +114,10 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
} }
// setOfferBookFilter is a one time call // setOfferBookFilter is a one time call
void initWithData(Direction direction, Coin amount, Offer offer) { void initWithData(Offer.Direction direction, Coin amount, Offer offer) {
dataModel.initWithData(amount, offer); dataModel.initWithData(amount, offer);
directionLabel = direction == Direction.BUY ? directionLabel = direction == Offer.Direction.BUY ?
BSResources.get("shared.buy") : BSResources.get("shared.sell"); BSResources.get("shared.buy") : BSResources.get("shared.sell");
fiatCode = offer.getCurrency().getCurrencyCode(); fiatCode = offer.getCurrency().getCurrencyCode();

View file

@ -21,7 +21,6 @@ import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.user.User; import io.bitsquare.user.User;
@ -288,12 +287,12 @@ public class BSFormatter {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public String formatDirection(Direction direction) { public String formatDirection(Offer.Direction direction) {
return formatDirection(direction, true); return formatDirection(direction, true);
} }
public String formatDirection(Direction direction, boolean allUpperCase) { public String formatDirection(Offer.Direction direction, boolean allUpperCase) {
String result = (direction == Direction.BUY) ? "Buy" : "Sell"; String result = (direction == Offer.Direction.BUY) ? "Buy" : "Sell";
if (allUpperCase) { if (allUpperCase) {
result = result.toUpperCase(); result = result.toUpperCase();
} }

View file

@ -1,22 +0,0 @@
/*
* This file is part of Bitsquare.
*
* Bitsquare is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.offer;
public enum Direction {
BUY, SELL
}

View file

@ -47,6 +47,8 @@ public class Offer implements Serializable {
private static final long serialVersionUID = -971164804305475826L; private static final long serialVersionUID = -971164804305475826L;
private transient static final Logger log = LoggerFactory.getLogger(Offer.class); private transient static final Logger log = LoggerFactory.getLogger(Offer.class);
public enum Direction {BUY, SELL}
public enum State { public enum State {
UNKNOWN, UNKNOWN,
AVAILABLE, AVAILABLE,

View file

@ -24,7 +24,6 @@ import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.crypto.EncryptionService; import io.bitsquare.crypto.EncryptionService;
import io.bitsquare.crypto.SignatureService; import io.bitsquare.crypto.SignatureService;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBookService; import io.bitsquare.offer.OfferBookService;
import io.bitsquare.p2p.AddressService; import io.bitsquare.p2p.AddressService;
@ -156,7 +155,7 @@ public class TradeManager {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public void placeOffer(String id, public void placeOffer(String id,
Direction direction, Offer.Direction direction,
Fiat price, Fiat price,
Coin amount, Coin amount,
Coin minAmount, Coin minAmount,