From d9047ec1b2cf80f76fee5b9d293b7ad16745a4c7 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 24 Mar 2015 21:41:09 +0100 Subject: [PATCH] Fix observable lists --- .../p2p/tomp2p/TomP2PAddressService.java | 6 ++++-- .../trade/{TradesList.java => TradeList.java} | 15 +++++++++------ .../java/io/bitsquare/trade/TradeManager.java | 8 ++++---- 3 files changed, 17 insertions(+), 12 deletions(-) rename core/src/main/java/io/bitsquare/trade/{TradesList.java => TradeList.java} (79%) diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PAddressService.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PAddressService.java index 03ec7ee212..301cf04e14 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PAddressService.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PAddressService.java @@ -79,8 +79,10 @@ public class TomP2PAddressService extends TomP2PDHTService implements AddressSer @Override public void shutDown() { - timerForIPCheck.cancel(); - timerForStoreAddress.cancel(); + if (timerForIPCheck != null) + timerForIPCheck.cancel(); + if (timerForStoreAddress != null) + timerForStoreAddress.cancel(); removeAddress(); super.shutDown(); } diff --git a/core/src/main/java/io/bitsquare/trade/TradesList.java b/core/src/main/java/io/bitsquare/trade/TradeList.java similarity index 79% rename from core/src/main/java/io/bitsquare/trade/TradesList.java rename to core/src/main/java/io/bitsquare/trade/TradeList.java index 1b92fba667..2a6c02ea1c 100644 --- a/core/src/main/java/io/bitsquare/trade/TradesList.java +++ b/core/src/main/java/io/bitsquare/trade/TradeList.java @@ -31,20 +31,20 @@ import javafx.collections.ObservableList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TradesList extends ArrayList implements Serializable { +public class TradeList extends ArrayList implements Serializable { private static final long serialVersionUID = 1L; - private static final Logger log = LoggerFactory.getLogger(TradesList.class); + transient private static final Logger log = LoggerFactory.getLogger(TradeList.class); - transient final private Storage storage; + transient final private Storage storage; transient private ObservableList observableList; @Inject - public TradesList(Storage storage) { + public TradeList(Storage storage) { this.storage = storage; - TradesList persisted = storage.initAndGetPersisted(this); + TradeList persisted = storage.initAndGetPersisted(this); if (persisted != null) { - addAll(persisted); + this.addAll(persisted); observableList = FXCollections.observableArrayList(this); } else { @@ -55,6 +55,7 @@ public class TradesList extends ArrayList implements Serializable { @Override public boolean add(Trade trade) { boolean result = super.add(trade); + observableList.add(trade); storage.save(); return result; } @@ -62,6 +63,7 @@ public class TradesList extends ArrayList implements Serializable { @Override public boolean remove(Object trade) { boolean result = super.remove(trade); + observableList.remove(trade); storage.save(); return result; } @@ -69,4 +71,5 @@ public class TradesList extends ArrayList implements Serializable { public ObservableList getObservableList() { return observableList; } + } diff --git a/core/src/main/java/io/bitsquare/trade/TradeManager.java b/core/src/main/java/io/bitsquare/trade/TradeManager.java index 4e744e9a3d..7e364b43bc 100644 --- a/core/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/core/src/main/java/io/bitsquare/trade/TradeManager.java @@ -84,9 +84,9 @@ public class TradeManager { private final Map offererAsBuyerProtocolMap = new HashMap<>(); private final Map checkOfferAvailabilityProtocolMap = new HashMap<>(); - private final TradesList openOfferTrades; - private final TradesList pendingTrades; - private final TradesList closedTrades; + private final TradeList openOfferTrades; + private final TradeList pendingTrades; + private final TradeList closedTrades; private final Map mailboxMessages = new HashMap<>(); @@ -95,7 +95,7 @@ public class TradeManager { /////////////////////////////////////////////////////////////////////////////////////////// @Inject - public TradeManager(User user, AccountSettings accountSettings, TradesList openOfferTrades, TradesList pendingTrades, TradesList closedTrades, + public TradeManager(User user, AccountSettings accountSettings, TradeList openOfferTrades, TradeList pendingTrades, TradeList closedTrades, MessageService messageService, MailboxService mailboxService, AddressService addressService, BlockChainService blockChainService, WalletService walletService, SignatureService signatureService, EncryptionService encryptionService, OfferBookService offerBookService, @Named("storage.dir") File storageDir) {