mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-24 06:19:23 -04:00
Rename DisputeDirectMessage to DisputeCommunicationMessage
This commit is contained in:
parent
89201de40e
commit
2a72912005
6 changed files with 97 additions and 95 deletions
|
@ -18,7 +18,7 @@
|
||||||
package io.bitsquare.arbitration;
|
package io.bitsquare.arbitration;
|
||||||
|
|
||||||
import io.bitsquare.app.Version;
|
import io.bitsquare.app.Version;
|
||||||
import io.bitsquare.arbitration.messages.DisputeDirectMessage;
|
import io.bitsquare.arbitration.messages.DisputeCommunicationMessage;
|
||||||
import io.bitsquare.common.crypto.PubKeyRing;
|
import io.bitsquare.common.crypto.PubKeyRing;
|
||||||
import io.bitsquare.storage.Storage;
|
import io.bitsquare.storage.Storage;
|
||||||
import io.bitsquare.trade.Contract;
|
import io.bitsquare.trade.Contract;
|
||||||
|
@ -71,14 +71,14 @@ public class Dispute implements Serializable {
|
||||||
private final PubKeyRing arbitratorPubKeyRing;
|
private final PubKeyRing arbitratorPubKeyRing;
|
||||||
private final boolean isSupportTicket;
|
private final boolean isSupportTicket;
|
||||||
|
|
||||||
private final List<DisputeDirectMessage> disputeDirectMessages = new ArrayList<>();
|
private final List<DisputeCommunicationMessage> disputeCommunicationMessages = new ArrayList<>();
|
||||||
|
|
||||||
private boolean isClosed;
|
private boolean isClosed;
|
||||||
private DisputeResult disputeResult;
|
private DisputeResult disputeResult;
|
||||||
private Transaction disputePayoutTx;
|
private Transaction disputePayoutTx;
|
||||||
|
|
||||||
transient private Storage<DisputeList<Dispute>> storage;
|
transient private Storage<DisputeList<Dispute>> storage;
|
||||||
transient private ObservableList<DisputeDirectMessage> disputeDirectMessagesAsObservableList = FXCollections.observableArrayList(disputeDirectMessages);
|
transient private ObservableList<DisputeCommunicationMessage> disputeCommunicationMessagesAsObservableList = FXCollections.observableArrayList(disputeCommunicationMessages);
|
||||||
transient private BooleanProperty isClosedProperty = new SimpleBooleanProperty(isClosed);
|
transient private BooleanProperty isClosedProperty = new SimpleBooleanProperty(isClosed);
|
||||||
transient private ObjectProperty<DisputeResult> disputeResultProperty = new SimpleObjectProperty<>(disputeResult);
|
transient private ObjectProperty<DisputeResult> disputeResultProperty = new SimpleObjectProperty<>(disputeResult);
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ public class Dispute implements Serializable {
|
||||||
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
|
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
|
||||||
try {
|
try {
|
||||||
in.defaultReadObject();
|
in.defaultReadObject();
|
||||||
disputeDirectMessagesAsObservableList = FXCollections.observableArrayList(disputeDirectMessages);
|
disputeCommunicationMessagesAsObservableList = FXCollections.observableArrayList(disputeCommunicationMessages);
|
||||||
disputeResultProperty = new SimpleObjectProperty<>(disputeResult);
|
disputeResultProperty = new SimpleObjectProperty<>(disputeResult);
|
||||||
isClosedProperty = new SimpleBooleanProperty(isClosed);
|
isClosedProperty = new SimpleBooleanProperty(isClosed);
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
|
@ -139,10 +139,10 @@ public class Dispute implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDisputeMessage(DisputeDirectMessage disputeDirectMessage) {
|
public void addDisputeMessage(DisputeCommunicationMessage disputeCommunicationMessage) {
|
||||||
if (!disputeDirectMessages.contains(disputeDirectMessage)) {
|
if (!disputeCommunicationMessages.contains(disputeCommunicationMessage)) {
|
||||||
disputeDirectMessages.add(disputeDirectMessage);
|
disputeCommunicationMessages.add(disputeCommunicationMessage);
|
||||||
disputeDirectMessagesAsObservableList.add(disputeDirectMessage);
|
disputeCommunicationMessagesAsObservableList.add(disputeCommunicationMessage);
|
||||||
storage.queueUpForSave();
|
storage.queueUpForSave();
|
||||||
} else {
|
} else {
|
||||||
log.error("disputeDirectMessage already exists");
|
log.error("disputeDirectMessage already exists");
|
||||||
|
@ -248,8 +248,8 @@ public class Dispute implements Serializable {
|
||||||
return takerContractSignature;
|
return takerContractSignature;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableList<DisputeDirectMessage> getDisputeDirectMessagesAsObservableList() {
|
public ObservableList<DisputeCommunicationMessage> getDisputeCommunicationMessagesAsObservableList() {
|
||||||
return disputeDirectMessagesAsObservableList;
|
return disputeCommunicationMessagesAsObservableList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isClosed() {
|
public boolean isClosed() {
|
||||||
|
@ -315,7 +315,7 @@ public class Dispute implements Serializable {
|
||||||
return false;
|
return false;
|
||||||
if (arbitratorPubKeyRing != null ? !arbitratorPubKeyRing.equals(dispute.arbitratorPubKeyRing) : dispute.arbitratorPubKeyRing != null)
|
if (arbitratorPubKeyRing != null ? !arbitratorPubKeyRing.equals(dispute.arbitratorPubKeyRing) : dispute.arbitratorPubKeyRing != null)
|
||||||
return false;
|
return false;
|
||||||
if (disputeDirectMessages != null ? !disputeDirectMessages.equals(dispute.disputeDirectMessages) : dispute.disputeDirectMessages != null)
|
if (disputeCommunicationMessages != null ? !disputeCommunicationMessages.equals(dispute.disputeCommunicationMessages) : dispute.disputeCommunicationMessages != null)
|
||||||
return false;
|
return false;
|
||||||
return !(disputeResult != null ? !disputeResult.equals(dispute.disputeResult) : dispute.disputeResult != null);
|
return !(disputeResult != null ? !disputeResult.equals(dispute.disputeResult) : dispute.disputeResult != null);
|
||||||
|
|
||||||
|
@ -341,7 +341,7 @@ public class Dispute implements Serializable {
|
||||||
result = 31 * result + (takerContractSignature != null ? takerContractSignature.hashCode() : 0);
|
result = 31 * result + (takerContractSignature != null ? takerContractSignature.hashCode() : 0);
|
||||||
result = 31 * result + (arbitratorPubKeyRing != null ? arbitratorPubKeyRing.hashCode() : 0);
|
result = 31 * result + (arbitratorPubKeyRing != null ? arbitratorPubKeyRing.hashCode() : 0);
|
||||||
result = 31 * result + (isSupportTicket ? 1 : 0);
|
result = 31 * result + (isSupportTicket ? 1 : 0);
|
||||||
result = 31 * result + (disputeDirectMessages != null ? disputeDirectMessages.hashCode() : 0);
|
result = 31 * result + (disputeCommunicationMessages != null ? disputeCommunicationMessages.hashCode() : 0);
|
||||||
result = 31 * result + (isClosed ? 1 : 0);
|
result = 31 * result + (isClosed ? 1 : 0);
|
||||||
result = 31 * result + (disputeResult != null ? disputeResult.hashCode() : 0);
|
result = 31 * result + (disputeResult != null ? disputeResult.hashCode() : 0);
|
||||||
return result;
|
return result;
|
||||||
|
@ -361,8 +361,8 @@ public class Dispute implements Serializable {
|
||||||
", buyerContractSignature='" + offererContractSignature + '\'' +
|
", buyerContractSignature='" + offererContractSignature + '\'' +
|
||||||
", sellerContractSignature='" + takerContractSignature + '\'' +
|
", sellerContractSignature='" + takerContractSignature + '\'' +
|
||||||
", arbitratorPubKeyRing=" + arbitratorPubKeyRing +
|
", arbitratorPubKeyRing=" + arbitratorPubKeyRing +
|
||||||
", disputeDirectMessages=" + disputeDirectMessages +
|
", disputeDirectMessages=" + disputeCommunicationMessages +
|
||||||
", disputeDirectMessagesAsObservableList=" + disputeDirectMessagesAsObservableList +
|
", disputeDirectMessagesAsObservableList=" + disputeCommunicationMessagesAsObservableList +
|
||||||
", isClosed=" + isClosed +
|
", isClosed=" + isClosed +
|
||||||
", disputeResult=" + disputeResult +
|
", disputeResult=" + disputeResult +
|
||||||
", disputeResultProperty=" + disputeResultProperty +
|
", disputeResultProperty=" + disputeResultProperty +
|
||||||
|
|
|
@ -160,8 +160,8 @@ public class DisputeManager {
|
||||||
onOpenNewDisputeMessage((OpenNewDisputeMessage) message);
|
onOpenNewDisputeMessage((OpenNewDisputeMessage) message);
|
||||||
else if (message instanceof PeerOpenedDisputeMessage)
|
else if (message instanceof PeerOpenedDisputeMessage)
|
||||||
onPeerOpenedDisputeMessage((PeerOpenedDisputeMessage) message);
|
onPeerOpenedDisputeMessage((PeerOpenedDisputeMessage) message);
|
||||||
else if (message instanceof DisputeDirectMessage)
|
else if (message instanceof DisputeCommunicationMessage)
|
||||||
onDisputeDirectMessage((DisputeDirectMessage) message);
|
onDisputeDirectMessage((DisputeCommunicationMessage) message);
|
||||||
else if (message instanceof DisputeResultMessage)
|
else if (message instanceof DisputeResultMessage)
|
||||||
onDisputeResultMessage((DisputeResultMessage) message);
|
onDisputeResultMessage((DisputeResultMessage) message);
|
||||||
else if (message instanceof PeerPublishedPayoutTxMessage)
|
else if (message instanceof PeerPublishedPayoutTxMessage)
|
||||||
|
@ -172,15 +172,15 @@ public class DisputeManager {
|
||||||
|
|
||||||
public void sendOpenNewDisputeMessage(Dispute dispute) {
|
public void sendOpenNewDisputeMessage(Dispute dispute) {
|
||||||
if (!disputes.contains(dispute)) {
|
if (!disputes.contains(dispute)) {
|
||||||
DisputeDirectMessage disputeDirectMessage = new DisputeDirectMessage(dispute.getTradeId(),
|
DisputeCommunicationMessage disputeCommunicationMessage = new DisputeCommunicationMessage(dispute.getTradeId(),
|
||||||
keyRing.getPubKeyRing().hashCode(),
|
keyRing.getPubKeyRing().hashCode(),
|
||||||
true,
|
true,
|
||||||
"System message: " + (dispute.isSupportTicket() ?
|
"System message: " + (dispute.isSupportTicket() ?
|
||||||
"You opened a request for support."
|
"You opened a request for support."
|
||||||
: "You opened a request for a dispute.\n\n" + disputeInfo),
|
: "You opened a request for a dispute.\n\n" + disputeInfo),
|
||||||
p2PService.getAddress());
|
p2PService.getAddress());
|
||||||
disputeDirectMessage.setIsSystemMessage(true);
|
disputeCommunicationMessage.setIsSystemMessage(true);
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
disputes.add(dispute);
|
disputes.add(dispute);
|
||||||
disputesObservableList.add(dispute);
|
disputesObservableList.add(dispute);
|
||||||
|
|
||||||
|
@ -190,12 +190,12 @@ public class DisputeManager {
|
||||||
new SendMailboxMessageListener() {
|
new SendMailboxMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onArrived() {
|
public void onArrived() {
|
||||||
disputeDirectMessage.setArrived(true);
|
disputeCommunicationMessage.setArrived(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStoredInMailbox() {
|
public void onStoredInMailbox() {
|
||||||
disputeDirectMessage.setStoredInMailbox(true);
|
disputeCommunicationMessage.setStoredInMailbox(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -234,15 +234,15 @@ public class DisputeManager {
|
||||||
disputeFromOpener.getArbitratorPubKeyRing(),
|
disputeFromOpener.getArbitratorPubKeyRing(),
|
||||||
disputeFromOpener.isSupportTicket()
|
disputeFromOpener.isSupportTicket()
|
||||||
);
|
);
|
||||||
DisputeDirectMessage disputeDirectMessage = new DisputeDirectMessage(dispute.getTradeId(),
|
DisputeCommunicationMessage disputeCommunicationMessage = new DisputeCommunicationMessage(dispute.getTradeId(),
|
||||||
keyRing.getPubKeyRing().hashCode(),
|
keyRing.getPubKeyRing().hashCode(),
|
||||||
true,
|
true,
|
||||||
"System message: " + (dispute.isSupportTicket() ?
|
"System message: " + (dispute.isSupportTicket() ?
|
||||||
"Your trading peer has requested support due technical problems. Please wait for further instructions."
|
"Your trading peer has requested support due technical problems. Please wait for further instructions."
|
||||||
: "Your trading peer has requested a dispute.\n\n" + disputeInfo),
|
: "Your trading peer has requested a dispute.\n\n" + disputeInfo),
|
||||||
p2PService.getAddress());
|
p2PService.getAddress());
|
||||||
disputeDirectMessage.setIsSystemMessage(true);
|
disputeCommunicationMessage.setIsSystemMessage(true);
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
disputes.add(dispute);
|
disputes.add(dispute);
|
||||||
disputesObservableList.add(dispute);
|
disputesObservableList.add(dispute);
|
||||||
|
|
||||||
|
@ -257,12 +257,12 @@ public class DisputeManager {
|
||||||
new SendMailboxMessageListener() {
|
new SendMailboxMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onArrived() {
|
public void onArrived() {
|
||||||
disputeDirectMessage.setArrived(true);
|
disputeCommunicationMessage.setArrived(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStoredInMailbox() {
|
public void onStoredInMailbox() {
|
||||||
disputeDirectMessage.setStoredInMailbox(true);
|
disputeCommunicationMessage.setStoredInMailbox(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -274,22 +274,22 @@ public class DisputeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// traders send msg to the arbitrator or arbitrator to 1 trader (trader to trader is not allowed)
|
// traders send msg to the arbitrator or arbitrator to 1 trader (trader to trader is not allowed)
|
||||||
public DisputeDirectMessage sendDisputeDirectMessage(Dispute dispute, String text, ArrayList<DisputeDirectMessage.Attachment> attachments) {
|
public DisputeCommunicationMessage sendDisputeDirectMessage(Dispute dispute, String text, ArrayList<DisputeCommunicationMessage.Attachment> attachments) {
|
||||||
DisputeDirectMessage disputeDirectMessage = new DisputeDirectMessage(dispute.getTradeId(),
|
DisputeCommunicationMessage disputeCommunicationMessage = new DisputeCommunicationMessage(dispute.getTradeId(),
|
||||||
dispute.getTraderPubKeyRing().hashCode(),
|
dispute.getTraderPubKeyRing().hashCode(),
|
||||||
isTrader(dispute),
|
isTrader(dispute),
|
||||||
text,
|
text,
|
||||||
p2PService.getAddress());
|
p2PService.getAddress());
|
||||||
disputeDirectMessage.addAllAttachments(attachments);
|
disputeCommunicationMessage.addAllAttachments(attachments);
|
||||||
PubKeyRing receiverPubKeyRing = null;
|
PubKeyRing receiverPubKeyRing = null;
|
||||||
NodeAddress peerNodeAddress = null;
|
NodeAddress peerNodeAddress = null;
|
||||||
if (isTrader(dispute)) {
|
if (isTrader(dispute)) {
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
receiverPubKeyRing = dispute.getArbitratorPubKeyRing();
|
receiverPubKeyRing = dispute.getArbitratorPubKeyRing();
|
||||||
peerNodeAddress = dispute.getContract().arbitratorNodeAddress;
|
peerNodeAddress = dispute.getContract().arbitratorNodeAddress;
|
||||||
} else if (isArbitrator(dispute)) {
|
} else if (isArbitrator(dispute)) {
|
||||||
if (!disputeDirectMessage.isSystemMessage())
|
if (!disputeCommunicationMessage.isSystemMessage())
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
receiverPubKeyRing = dispute.getTraderPubKeyRing();
|
receiverPubKeyRing = dispute.getTraderPubKeyRing();
|
||||||
Contract contract = dispute.getContract();
|
Contract contract = dispute.getContract();
|
||||||
if (contract.getBuyerPubKeyRing().equals(receiverPubKeyRing))
|
if (contract.getBuyerPubKeyRing().equals(receiverPubKeyRing))
|
||||||
|
@ -303,16 +303,16 @@ public class DisputeManager {
|
||||||
log.trace("sendDisputeDirectMessage to peerAddress " + peerNodeAddress);
|
log.trace("sendDisputeDirectMessage to peerAddress " + peerNodeAddress);
|
||||||
p2PService.sendEncryptedMailboxMessage(peerNodeAddress,
|
p2PService.sendEncryptedMailboxMessage(peerNodeAddress,
|
||||||
receiverPubKeyRing,
|
receiverPubKeyRing,
|
||||||
disputeDirectMessage,
|
disputeCommunicationMessage,
|
||||||
new SendMailboxMessageListener() {
|
new SendMailboxMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onArrived() {
|
public void onArrived() {
|
||||||
disputeDirectMessage.setArrived(true);
|
disputeCommunicationMessage.setArrived(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStoredInMailbox() {
|
public void onStoredInMailbox() {
|
||||||
disputeDirectMessage.setStoredInMailbox(true);
|
disputeCommunicationMessage.setStoredInMailbox(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -323,18 +323,18 @@ public class DisputeManager {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return disputeDirectMessage;
|
return disputeCommunicationMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
// arbitrator send result to trader
|
// arbitrator send result to trader
|
||||||
public void sendDisputeResultMessage(DisputeResult disputeResult, Dispute dispute, String text) {
|
public void sendDisputeResultMessage(DisputeResult disputeResult, Dispute dispute, String text) {
|
||||||
DisputeDirectMessage disputeDirectMessage = new DisputeDirectMessage(dispute.getTradeId(),
|
DisputeCommunicationMessage disputeCommunicationMessage = new DisputeCommunicationMessage(dispute.getTradeId(),
|
||||||
dispute.getTraderPubKeyRing().hashCode(),
|
dispute.getTraderPubKeyRing().hashCode(),
|
||||||
false,
|
false,
|
||||||
text,
|
text,
|
||||||
p2PService.getAddress());
|
p2PService.getAddress());
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
disputeResult.setDisputeDirectMessage(disputeDirectMessage);
|
disputeResult.setDisputeCommunicationMessage(disputeCommunicationMessage);
|
||||||
|
|
||||||
NodeAddress peerNodeAddress;
|
NodeAddress peerNodeAddress;
|
||||||
Contract contract = dispute.getContract();
|
Contract contract = dispute.getContract();
|
||||||
|
@ -348,12 +348,12 @@ public class DisputeManager {
|
||||||
new SendMailboxMessageListener() {
|
new SendMailboxMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onArrived() {
|
public void onArrived() {
|
||||||
disputeDirectMessage.setArrived(true);
|
disputeCommunicationMessage.setArrived(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStoredInMailbox() {
|
public void onStoredInMailbox() {
|
||||||
disputeDirectMessage.setStoredInMailbox(true);
|
disputeCommunicationMessage.setStoredInMailbox(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -434,17 +434,17 @@ public class DisputeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// a trader can receive a msg from the arbitrator or the arbitrator form a trader. Trader to trader is not allowed.
|
// a trader can receive a msg from the arbitrator or the arbitrator form a trader. Trader to trader is not allowed.
|
||||||
private void onDisputeDirectMessage(DisputeDirectMessage disputeDirectMessage) {
|
private void onDisputeDirectMessage(DisputeCommunicationMessage disputeCommunicationMessage) {
|
||||||
Log.traceCall("disputeDirectMessage " + disputeDirectMessage);
|
Log.traceCall("disputeDirectMessage " + disputeCommunicationMessage);
|
||||||
Optional<Dispute> disputeOptional = findDispute(disputeDirectMessage.getTradeId(), disputeDirectMessage.getTraderId());
|
Optional<Dispute> disputeOptional = findDispute(disputeCommunicationMessage.getTradeId(), disputeCommunicationMessage.getTraderId());
|
||||||
if (disputeOptional.isPresent()) {
|
if (disputeOptional.isPresent()) {
|
||||||
Dispute dispute = disputeOptional.get();
|
Dispute dispute = disputeOptional.get();
|
||||||
if (!dispute.getDisputeDirectMessagesAsObservableList().contains(disputeDirectMessage))
|
if (!dispute.getDisputeCommunicationMessagesAsObservableList().contains(disputeCommunicationMessage))
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
else
|
else
|
||||||
log.warn("We got a dispute mail msg what we have already stored. TradeId = " + disputeDirectMessage.getTradeId());
|
log.warn("We got a dispute mail msg what we have already stored. TradeId = " + disputeCommunicationMessage.getTradeId());
|
||||||
} else {
|
} else {
|
||||||
log.warn("We got a dispute mail msg but we don't have a matching dispute. TradeId = " + disputeDirectMessage.getTradeId());
|
log.warn("We got a dispute mail msg but we don't have a matching dispute. TradeId = " + disputeCommunicationMessage.getTradeId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -456,11 +456,11 @@ public class DisputeManager {
|
||||||
if (disputeOptional.isPresent()) {
|
if (disputeOptional.isPresent()) {
|
||||||
Dispute dispute = disputeOptional.get();
|
Dispute dispute = disputeOptional.get();
|
||||||
|
|
||||||
DisputeDirectMessage disputeDirectMessage = disputeResult.getDisputeDirectMessage();
|
DisputeCommunicationMessage disputeCommunicationMessage = disputeResult.getDisputeCommunicationMessage();
|
||||||
if (!dispute.getDisputeDirectMessagesAsObservableList().contains(disputeDirectMessage))
|
if (!dispute.getDisputeCommunicationMessagesAsObservableList().contains(disputeCommunicationMessage))
|
||||||
dispute.addDisputeMessage(disputeDirectMessage);
|
dispute.addDisputeMessage(disputeCommunicationMessage);
|
||||||
else
|
else
|
||||||
log.warn("We got a dispute mail msg what we have already stored. TradeId = " + disputeDirectMessage.getTradeId());
|
log.warn("We got a dispute mail msg what we have already stored. TradeId = " + disputeCommunicationMessage.getTradeId());
|
||||||
|
|
||||||
dispute.setIsClosed(true);
|
dispute.setIsClosed(true);
|
||||||
if (tradeManager.getTradeById(dispute.getTradeId()).isPresent())
|
if (tradeManager.getTradeById(dispute.getTradeId()).isPresent())
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
package io.bitsquare.arbitration;
|
package io.bitsquare.arbitration;
|
||||||
|
|
||||||
import io.bitsquare.app.Version;
|
import io.bitsquare.app.Version;
|
||||||
import io.bitsquare.arbitration.messages.DisputeDirectMessage;
|
import io.bitsquare.arbitration.messages.DisputeCommunicationMessage;
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.*;
|
||||||
import org.bitcoinj.core.Coin;
|
import org.bitcoinj.core.Coin;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -55,7 +55,7 @@ public class DisputeResult implements Serializable {
|
||||||
private boolean idVerification;
|
private boolean idVerification;
|
||||||
private boolean screenCast;
|
private boolean screenCast;
|
||||||
private String summaryNotes;
|
private String summaryNotes;
|
||||||
private DisputeDirectMessage disputeDirectMessage;
|
private DisputeCommunicationMessage disputeCommunicationMessage;
|
||||||
private byte[] arbitratorSignature;
|
private byte[] arbitratorSignature;
|
||||||
private long buyerPayoutAmount;
|
private long buyerPayoutAmount;
|
||||||
private long sellerPayoutAmount;
|
private long sellerPayoutAmount;
|
||||||
|
@ -142,12 +142,12 @@ public class DisputeResult implements Serializable {
|
||||||
return summaryNotesProperty;
|
return summaryNotesProperty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDisputeDirectMessage(DisputeDirectMessage disputeDirectMessage) {
|
public void setDisputeCommunicationMessage(DisputeCommunicationMessage disputeCommunicationMessage) {
|
||||||
this.disputeDirectMessage = disputeDirectMessage;
|
this.disputeCommunicationMessage = disputeCommunicationMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DisputeDirectMessage getDisputeDirectMessage() {
|
public DisputeCommunicationMessage getDisputeCommunicationMessage() {
|
||||||
return disputeDirectMessage;
|
return disputeCommunicationMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setArbitratorSignature(byte[] arbitratorSignature) {
|
public void setArbitratorSignature(byte[] arbitratorSignature) {
|
||||||
|
@ -232,7 +232,7 @@ public class DisputeResult implements Serializable {
|
||||||
if (tradeId != null ? !tradeId.equals(that.tradeId) : that.tradeId != null) return false;
|
if (tradeId != null ? !tradeId.equals(that.tradeId) : that.tradeId != null) return false;
|
||||||
if (feePaymentPolicy != that.feePaymentPolicy) return false;
|
if (feePaymentPolicy != that.feePaymentPolicy) return false;
|
||||||
if (summaryNotes != null ? !summaryNotes.equals(that.summaryNotes) : that.summaryNotes != null) return false;
|
if (summaryNotes != null ? !summaryNotes.equals(that.summaryNotes) : that.summaryNotes != null) return false;
|
||||||
if (disputeDirectMessage != null ? !disputeDirectMessage.equals(that.disputeDirectMessage) : that.disputeDirectMessage != null)
|
if (disputeCommunicationMessage != null ? !disputeCommunicationMessage.equals(that.disputeCommunicationMessage) : that.disputeCommunicationMessage != null)
|
||||||
return false;
|
return false;
|
||||||
if (!Arrays.equals(arbitratorSignature, that.arbitratorSignature)) return false;
|
if (!Arrays.equals(arbitratorSignature, that.arbitratorSignature)) return false;
|
||||||
if (arbitratorAddressAsString != null ? !arbitratorAddressAsString.equals(that.arbitratorAddressAsString) : that.arbitratorAddressAsString != null)
|
if (arbitratorAddressAsString != null ? !arbitratorAddressAsString.equals(that.arbitratorAddressAsString) : that.arbitratorAddressAsString != null)
|
||||||
|
@ -251,7 +251,7 @@ public class DisputeResult implements Serializable {
|
||||||
result = 31 * result + (idVerification ? 1 : 0);
|
result = 31 * result + (idVerification ? 1 : 0);
|
||||||
result = 31 * result + (screenCast ? 1 : 0);
|
result = 31 * result + (screenCast ? 1 : 0);
|
||||||
result = 31 * result + (summaryNotes != null ? summaryNotes.hashCode() : 0);
|
result = 31 * result + (summaryNotes != null ? summaryNotes.hashCode() : 0);
|
||||||
result = 31 * result + (disputeDirectMessage != null ? disputeDirectMessage.hashCode() : 0);
|
result = 31 * result + (disputeCommunicationMessage != null ? disputeCommunicationMessage.hashCode() : 0);
|
||||||
result = 31 * result + (arbitratorSignature != null ? Arrays.hashCode(arbitratorSignature) : 0);
|
result = 31 * result + (arbitratorSignature != null ? Arrays.hashCode(arbitratorSignature) : 0);
|
||||||
result = 31 * result + (int) (buyerPayoutAmount ^ (buyerPayoutAmount >>> 32));
|
result = 31 * result + (int) (buyerPayoutAmount ^ (buyerPayoutAmount >>> 32));
|
||||||
result = 31 * result + (int) (sellerPayoutAmount ^ (sellerPayoutAmount >>> 32));
|
result = 31 * result + (int) (sellerPayoutAmount ^ (sellerPayoutAmount >>> 32));
|
||||||
|
|
|
@ -32,10 +32,10 @@ import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class DisputeDirectMessage extends DisputeMessage {
|
public final class DisputeCommunicationMessage extends DisputeMessage {
|
||||||
// That object is sent over the wire, so we need to take care of version compatibility.
|
// That object is sent over the wire, so we need to take care of version compatibility.
|
||||||
private static final long serialVersionUID = Version.P2P_NETWORK_VERSION;
|
private static final long serialVersionUID = Version.P2P_NETWORK_VERSION;
|
||||||
private static final Logger log = LoggerFactory.getLogger(DisputeDirectMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(DisputeCommunicationMessage.class);
|
||||||
|
|
||||||
private final long date;
|
private final long date;
|
||||||
private final String tradeId;
|
private final String tradeId;
|
||||||
|
@ -52,7 +52,7 @@ public final class DisputeDirectMessage extends DisputeMessage {
|
||||||
transient private BooleanProperty arrivedProperty = new SimpleBooleanProperty();
|
transient private BooleanProperty arrivedProperty = new SimpleBooleanProperty();
|
||||||
transient private BooleanProperty storedInMailboxProperty = new SimpleBooleanProperty();
|
transient private BooleanProperty storedInMailboxProperty = new SimpleBooleanProperty();
|
||||||
|
|
||||||
public DisputeDirectMessage(String tradeId, int traderId, boolean senderIsTrader, String message, NodeAddress myNodeAddress) {
|
public DisputeCommunicationMessage(String tradeId, int traderId, boolean senderIsTrader, String message, NodeAddress myNodeAddress) {
|
||||||
this.tradeId = tradeId;
|
this.tradeId = tradeId;
|
||||||
this.traderId = traderId;
|
this.traderId = traderId;
|
||||||
this.senderIsTrader = senderIsTrader;
|
this.senderIsTrader = senderIsTrader;
|
||||||
|
@ -137,9 +137,9 @@ public final class DisputeDirectMessage extends DisputeMessage {
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
if (!(o instanceof DisputeDirectMessage)) return false;
|
if (!(o instanceof DisputeCommunicationMessage)) return false;
|
||||||
|
|
||||||
DisputeDirectMessage that = (DisputeDirectMessage) o;
|
DisputeCommunicationMessage that = (DisputeCommunicationMessage) o;
|
||||||
|
|
||||||
if (date != that.date) return false;
|
if (date != that.date) return false;
|
||||||
if (traderId != that.traderId) return false;
|
if (traderId != that.traderId) return false;
|
|
@ -29,6 +29,8 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
|
|
||||||
|
// TODO check if it should not implement MailboxMessage as well?
|
||||||
public final class PublishDepositTxRequest extends TradeMessage {
|
public final class PublishDepositTxRequest extends TradeMessage {
|
||||||
// That object is sent over the wire, so we need to take care of version compatibility.
|
// That object is sent over the wire, so we need to take care of version compatibility.
|
||||||
private static final long serialVersionUID = Version.P2P_NETWORK_VERSION;
|
private static final long serialVersionUID = Version.P2P_NETWORK_VERSION;
|
||||||
|
|
|
@ -22,7 +22,7 @@ import de.jensd.fx.fontawesome.AwesomeDude;
|
||||||
import de.jensd.fx.fontawesome.AwesomeIcon;
|
import de.jensd.fx.fontawesome.AwesomeIcon;
|
||||||
import io.bitsquare.arbitration.Dispute;
|
import io.bitsquare.arbitration.Dispute;
|
||||||
import io.bitsquare.arbitration.DisputeManager;
|
import io.bitsquare.arbitration.DisputeManager;
|
||||||
import io.bitsquare.arbitration.messages.DisputeDirectMessage;
|
import io.bitsquare.arbitration.messages.DisputeCommunicationMessage;
|
||||||
import io.bitsquare.common.UserThread;
|
import io.bitsquare.common.UserThread;
|
||||||
import io.bitsquare.common.crypto.KeyRing;
|
import io.bitsquare.common.crypto.KeyRing;
|
||||||
import io.bitsquare.gui.common.view.ActivatableView;
|
import io.bitsquare.gui.common.view.ActivatableView;
|
||||||
|
@ -83,12 +83,12 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
private final ContractPopup contractPopup;
|
private final ContractPopup contractPopup;
|
||||||
private final TradeDetailsPopup tradeDetailsPopup;
|
private final TradeDetailsPopup tradeDetailsPopup;
|
||||||
|
|
||||||
private final List<DisputeDirectMessage.Attachment> tempAttachments = new ArrayList<>();
|
private final List<DisputeCommunicationMessage.Attachment> tempAttachments = new ArrayList<>();
|
||||||
|
|
||||||
private TableView<Dispute> disputesTable;
|
private TableView<Dispute> disputesTable;
|
||||||
private Dispute selectedDispute;
|
private Dispute selectedDispute;
|
||||||
private ChangeListener<Dispute> disputeChangeListener;
|
private ChangeListener<Dispute> disputeChangeListener;
|
||||||
private ListView<DisputeDirectMessage> messageListView;
|
private ListView<DisputeCommunicationMessage> messageListView;
|
||||||
private TextArea inputTextArea;
|
private TextArea inputTextArea;
|
||||||
private AnchorPane messagesAnchorPane;
|
private AnchorPane messagesAnchorPane;
|
||||||
private VBox messagesInputBox;
|
private VBox messagesInputBox;
|
||||||
|
@ -97,8 +97,8 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
private ChangeListener<Boolean> arrivedPropertyListener;
|
private ChangeListener<Boolean> arrivedPropertyListener;
|
||||||
private ChangeListener<Boolean> storedInMailboxPropertyListener;
|
private ChangeListener<Boolean> storedInMailboxPropertyListener;
|
||||||
@Nullable
|
@Nullable
|
||||||
private DisputeDirectMessage disputeDirectMessage;
|
private DisputeCommunicationMessage disputeCommunicationMessage;
|
||||||
private ListChangeListener<DisputeDirectMessage> disputeDirectMessageListListener;
|
private ListChangeListener<DisputeCommunicationMessage> disputeDirectMessageListListener;
|
||||||
private ChangeListener<String> inputTextAreaListener;
|
private ChangeListener<String> inputTextAreaListener;
|
||||||
private ChangeListener<Boolean> selectedDisputeClosedPropertyListener;
|
private ChangeListener<Boolean> selectedDisputeClosedPropertyListener;
|
||||||
|
|
||||||
|
@ -169,16 +169,16 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
protected void deactivate() {
|
protected void deactivate() {
|
||||||
disputesTable.getSelectionModel().selectedItemProperty().removeListener(disputeChangeListener);
|
disputesTable.getSelectionModel().selectedItemProperty().removeListener(disputeChangeListener);
|
||||||
|
|
||||||
if (disputeDirectMessage != null) {
|
if (disputeCommunicationMessage != null) {
|
||||||
disputeDirectMessage.arrivedProperty().removeListener(arrivedPropertyListener);
|
disputeCommunicationMessage.arrivedProperty().removeListener(arrivedPropertyListener);
|
||||||
disputeDirectMessage.storedInMailboxProperty().removeListener(storedInMailboxPropertyListener);
|
disputeCommunicationMessage.storedInMailboxProperty().removeListener(storedInMailboxPropertyListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedDispute != null) {
|
if (selectedDispute != null) {
|
||||||
selectedDispute.isClosedProperty().removeListener(selectedDisputeClosedPropertyListener);
|
selectedDispute.isClosedProperty().removeListener(selectedDisputeClosedPropertyListener);
|
||||||
ObservableList<DisputeDirectMessage> disputeDirectMessages = selectedDispute.getDisputeDirectMessagesAsObservableList();
|
ObservableList<DisputeCommunicationMessage> disputeCommunicationMessages = selectedDispute.getDisputeCommunicationMessagesAsObservableList();
|
||||||
if (disputeDirectMessages != null) {
|
if (disputeCommunicationMessages != null) {
|
||||||
disputeDirectMessages.removeListener(disputeDirectMessageListListener);
|
disputeCommunicationMessages.removeListener(disputeDirectMessageListListener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,12 +201,12 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSendMessage(String inputText, Dispute dispute) {
|
private void onSendMessage(String inputText, Dispute dispute) {
|
||||||
if (disputeDirectMessage != null) {
|
if (disputeCommunicationMessage != null) {
|
||||||
disputeDirectMessage.arrivedProperty().removeListener(arrivedPropertyListener);
|
disputeCommunicationMessage.arrivedProperty().removeListener(arrivedPropertyListener);
|
||||||
disputeDirectMessage.storedInMailboxProperty().removeListener(storedInMailboxPropertyListener);
|
disputeCommunicationMessage.storedInMailboxProperty().removeListener(storedInMailboxPropertyListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
disputeDirectMessage = disputeManager.sendDisputeDirectMessage(dispute, inputText, new ArrayList<>(tempAttachments));
|
disputeCommunicationMessage = disputeManager.sendDisputeDirectMessage(dispute, inputText, new ArrayList<>(tempAttachments));
|
||||||
tempAttachments.clear();
|
tempAttachments.clear();
|
||||||
scrollToBottom();
|
scrollToBottom();
|
||||||
|
|
||||||
|
@ -228,8 +228,8 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
hideSendMsgInfo(timer);
|
hideSendMsgInfo(timer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (disputeDirectMessage.arrivedProperty() != null)
|
if (disputeCommunicationMessage.arrivedProperty() != null)
|
||||||
disputeDirectMessage.arrivedProperty().addListener(arrivedPropertyListener);
|
disputeCommunicationMessage.arrivedProperty().addListener(arrivedPropertyListener);
|
||||||
storedInMailboxPropertyListener = (observable, oldValue, newValue) -> {
|
storedInMailboxPropertyListener = (observable, oldValue, newValue) -> {
|
||||||
if (newValue) {
|
if (newValue) {
|
||||||
sendMsgInfoLabel.setVisible(true);
|
sendMsgInfoLabel.setVisible(true);
|
||||||
|
@ -238,7 +238,7 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
hideSendMsgInfo(timer);
|
hideSendMsgInfo(timer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
disputeDirectMessage.storedInMailboxProperty().addListener(storedInMailboxPropertyListener);
|
disputeCommunicationMessage.storedInMailboxProperty().addListener(storedInMailboxPropertyListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideSendMsgInfo(Timer timer) {
|
private void hideSendMsgInfo(Timer timer) {
|
||||||
|
@ -273,7 +273,7 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
try (InputStream inputStream = url.openStream()) {
|
try (InputStream inputStream = url.openStream()) {
|
||||||
byte[] filesAsBytes = ByteStreams.toByteArray(inputStream);
|
byte[] filesAsBytes = ByteStreams.toByteArray(inputStream);
|
||||||
if (filesAsBytes.length <= Connection.getMaxMsgSize()) {
|
if (filesAsBytes.length <= Connection.getMaxMsgSize()) {
|
||||||
tempAttachments.add(new DisputeDirectMessage.Attachment(result.getName(), filesAsBytes));
|
tempAttachments.add(new DisputeCommunicationMessage.Attachment(result.getName(), filesAsBytes));
|
||||||
inputTextArea.setText(inputTextArea.getText() + "\n[Attachment " + result.getName() + "]");
|
inputTextArea.setText(inputTextArea.getText() + "\n[Attachment " + result.getName() + "]");
|
||||||
} else {
|
} else {
|
||||||
new Popup().warning("The max. allowed file size is " + maxSizeInKB + " kB.").show();
|
new Popup().warning("The max. allowed file size is " + maxSizeInKB + " kB.").show();
|
||||||
|
@ -292,7 +292,7 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onOpenAttachment(DisputeDirectMessage.Attachment attachment) {
|
private void onOpenAttachment(DisputeCommunicationMessage.Attachment attachment) {
|
||||||
FileChooser fileChooser = new FileChooser();
|
FileChooser fileChooser = new FileChooser();
|
||||||
fileChooser.setTitle("Save file to disk");
|
fileChooser.setTitle("Save file to disk");
|
||||||
fileChooser.setInitialFileName(attachment.getFileName());
|
fileChooser.setInitialFileName(attachment.getFileName());
|
||||||
|
@ -312,9 +312,9 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
private void onSelectDispute(Dispute dispute) {
|
private void onSelectDispute(Dispute dispute) {
|
||||||
if (selectedDispute != null) {
|
if (selectedDispute != null) {
|
||||||
selectedDispute.isClosedProperty().removeListener(selectedDisputeClosedPropertyListener);
|
selectedDispute.isClosedProperty().removeListener(selectedDisputeClosedPropertyListener);
|
||||||
ObservableList<DisputeDirectMessage> disputeDirectMessages = selectedDispute.getDisputeDirectMessagesAsObservableList();
|
ObservableList<DisputeCommunicationMessage> disputeCommunicationMessages = selectedDispute.getDisputeCommunicationMessagesAsObservableList();
|
||||||
if (disputeDirectMessages != null) {
|
if (disputeCommunicationMessages != null) {
|
||||||
disputeDirectMessages.removeListener(disputeDirectMessageListListener);
|
disputeCommunicationMessages.removeListener(disputeDirectMessageListListener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,11 +336,11 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
AnchorPane.setBottomAnchor(tableGroupHeadline, 0d);
|
AnchorPane.setBottomAnchor(tableGroupHeadline, 0d);
|
||||||
AnchorPane.setLeftAnchor(tableGroupHeadline, 0d);
|
AnchorPane.setLeftAnchor(tableGroupHeadline, 0d);
|
||||||
|
|
||||||
ObservableList<DisputeDirectMessage> disputeDirectMessages = selectedDispute.getDisputeDirectMessagesAsObservableList();
|
ObservableList<DisputeCommunicationMessage> disputeCommunicationMessages = selectedDispute.getDisputeCommunicationMessagesAsObservableList();
|
||||||
SortedList<DisputeDirectMessage> sortedList = new SortedList<>(disputeDirectMessages);
|
SortedList<DisputeCommunicationMessage> sortedList = new SortedList<>(disputeCommunicationMessages);
|
||||||
sortedList.setComparator((o1, o2) -> o1.getDate().compareTo(o2.getDate()));
|
sortedList.setComparator((o1, o2) -> o1.getDate().compareTo(o2.getDate()));
|
||||||
disputeDirectMessageListListener = c -> scrollToBottom();
|
disputeDirectMessageListListener = c -> scrollToBottom();
|
||||||
disputeDirectMessages.addListener(disputeDirectMessageListListener);
|
disputeCommunicationMessages.addListener(disputeDirectMessageListListener);
|
||||||
messageListView = new ListView<>(sortedList);
|
messageListView = new ListView<>(sortedList);
|
||||||
messageListView.setId("message-list-view");
|
messageListView.setId("message-list-view");
|
||||||
messageListView.prefWidthProperty().bind(root.widthProperty());
|
messageListView.prefWidthProperty().bind(root.widthProperty());
|
||||||
|
@ -418,10 +418,10 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
messagesAnchorPane.getChildren().addAll(tableGroupHeadline, messageListView);
|
messagesAnchorPane.getChildren().addAll(tableGroupHeadline, messageListView);
|
||||||
}
|
}
|
||||||
|
|
||||||
messageListView.setCellFactory(new Callback<ListView<DisputeDirectMessage>, ListCell<DisputeDirectMessage>>() {
|
messageListView.setCellFactory(new Callback<ListView<DisputeCommunicationMessage>, ListCell<DisputeCommunicationMessage>>() {
|
||||||
@Override
|
@Override
|
||||||
public ListCell<DisputeDirectMessage> call(ListView<DisputeDirectMessage> list) {
|
public ListCell<DisputeCommunicationMessage> call(ListView<DisputeCommunicationMessage> list) {
|
||||||
return new ListCell<DisputeDirectMessage>() {
|
return new ListCell<DisputeCommunicationMessage>() {
|
||||||
public ChangeListener<Number> sendMsgProgressIndicatorListener;
|
public ChangeListener<Number> sendMsgProgressIndicatorListener;
|
||||||
final Pane bg = new Pane();
|
final Pane bg = new Pane();
|
||||||
final ImageView arrow = new ImageView();
|
final ImageView arrow = new ImageView();
|
||||||
|
@ -446,7 +446,7 @@ public class TraderDisputeView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateItem(final DisputeDirectMessage item, boolean empty) {
|
public void updateItem(final DisputeCommunicationMessage item, boolean empty) {
|
||||||
super.updateItem(item, empty);
|
super.updateItem(item, empty);
|
||||||
|
|
||||||
if (item != null && !empty) {
|
if (item != null && !empty) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue