mirror of
https://github.com/maxkratz/lectureStudio.git
synced 2024-05-18 20:00:16 +00:00
presenter: fixed edited chat message to slide conversion
This commit is contained in:
parent
af82092ccb
commit
9a31df9413
|
@ -358,13 +358,13 @@ public class SlidesPresenter extends Presenter<SlidesView> {
|
|||
|
||||
PresenterContext presenterContext = (PresenterContext) context;
|
||||
|
||||
if(message.isDeleted()) {
|
||||
if (message.isDeleted()) {
|
||||
onDiscardMessage(message);
|
||||
view.removeMessengerMessage(message.getMessageId());
|
||||
return;
|
||||
}
|
||||
|
||||
if(message.isEdited()) {
|
||||
if (message.isEdited()) {
|
||||
view.setModifiedMessengerMessage(message);
|
||||
MessageUtil.updateOutdatedMessage(presenterContext.getMessengerMessages(), message);
|
||||
MessageUtil.updateOutdatedMessage(presenterContext.getAllReceivedMessengerMessages(), message);
|
||||
|
@ -374,7 +374,7 @@ public class SlidesPresenter extends Presenter<SlidesView> {
|
|||
presenterContext.getMessengerMessages().add(message);
|
||||
presenterContext.getAllReceivedMessengerMessages().add(message);
|
||||
|
||||
if(MessageUtil.isReply(message)) {
|
||||
if (MessageUtil.isReply(message)) {
|
||||
final MessengerMessage messageToReplyTo = MessageUtil.findMessageToReplyTo(
|
||||
((PresenterContext) context).getAllReceivedMessengerMessages(),
|
||||
message);
|
||||
|
@ -384,6 +384,7 @@ public class SlidesPresenter extends Presenter<SlidesView> {
|
|||
view.setMessengerMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onEvent(SpeechRequestMessage message) {
|
||||
requireNonNull(message);
|
||||
|
|
|
@ -37,8 +37,6 @@ import org.lecturestudio.swing.components.MessageView;
|
|||
import org.lecturestudio.swing.components.SpeechRequestView;
|
||||
import org.lecturestudio.swing.util.SwingUtils;
|
||||
import org.lecturestudio.swing.view.SwingView;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessage;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessageAsReply;
|
||||
import org.lecturestudio.web.api.message.MessengerMessage;
|
||||
import org.lecturestudio.web.api.message.SpeechRequestMessage;
|
||||
import org.lecturestudio.web.api.message.util.MessageUtil;
|
||||
|
@ -69,23 +67,11 @@ public class SwingMessengerWindow extends JFrame implements MessengerWindow {
|
|||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
|
||||
MessageView messageView = ViewUtil.createMessageView(MessageView.class, userInfo, message, dict);
|
||||
messageView.setMessage(message.getMessage().getText(), message.getMessageId());
|
||||
messageView.setMessage(message, userInfo);
|
||||
messageView.setOnDiscard(() -> {
|
||||
removeMessageView(messageView);
|
||||
});
|
||||
|
||||
if (message instanceof MessengerDirectMessage) {
|
||||
MessengerDirectMessage directMessage = (MessengerDirectMessage) message;
|
||||
String recipient = directMessage.getRecipientId();
|
||||
|
||||
if (recipient.equals("organisers")) {
|
||||
messageView.setPrivateText(dict.get("text.message.to.organisators"));
|
||||
}
|
||||
else {
|
||||
messageView.setPrivateText(dict.get("text.message.privately"));
|
||||
}
|
||||
}
|
||||
|
||||
messageView.pack();
|
||||
|
||||
messageViewContainer.add(messageView);
|
||||
|
@ -99,8 +85,7 @@ public class SwingMessengerWindow extends JFrame implements MessengerWindow {
|
|||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
|
||||
MessageAsReplyView messageView = ViewUtil.createMessageView(MessageAsReplyView.class, userInfo, message, dict);
|
||||
|
||||
messageView.setMessage(message.getMessage().getText(), message.getMessageId());
|
||||
messageView.setMessage(message, userInfo);
|
||||
|
||||
final String userToReplyTo = MessageUtil.evaluateSenderOfMessageToReplyTo(messageToReplyTo, userInfo, dict);
|
||||
messageView.setUserToReplyTo(userToReplyTo);
|
||||
|
@ -109,17 +94,6 @@ public class SwingMessengerWindow extends JFrame implements MessengerWindow {
|
|||
removeMessageView(messageView);
|
||||
});
|
||||
|
||||
if (message instanceof MessengerDirectMessageAsReply directMessageAsReply) {
|
||||
String recipient = directMessageAsReply.getRecipientId();
|
||||
|
||||
if (recipient.equals("organisers")) {
|
||||
messageView.setPrivateText(dict.get("text.message.to.organisators"));
|
||||
}
|
||||
else {
|
||||
messageView.setPrivateText(dict.get("text.message.privately"));
|
||||
}
|
||||
}
|
||||
|
||||
messageView.pack();
|
||||
|
||||
messageViewContainer.add(messageView);
|
||||
|
@ -132,9 +106,13 @@ public class SwingMessengerWindow extends JFrame implements MessengerWindow {
|
|||
SwingUtils.invoke(() -> {
|
||||
final Optional<MessageView> toModify = findCorrespondingMessageView(modifiedMessage.getMessageId());
|
||||
|
||||
if(toModify.isEmpty()) return;
|
||||
if (toModify.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
toModify.get().setMessage(modifiedMessage.getMessage().getText(), modifiedMessage.getMessageId());
|
||||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
|
||||
toModify.get().setMessage(modifiedMessage, userInfo);
|
||||
toModify.get().setIsEdited();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@ import javax.swing.event.AncestorListener;
|
|||
import javax.swing.plaf.basic.BasicSplitPaneDivider;
|
||||
import javax.swing.plaf.basic.BasicSplitPaneUI;
|
||||
import javax.swing.text.JTextComponent;
|
||||
import javax.swing.text.html.Option;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.DefaultTreeModel;
|
||||
import javax.swing.tree.TreeNode;
|
||||
|
@ -51,7 +50,6 @@ import java.awt.event.ComponentEvent;
|
|||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Enumeration;
|
||||
|
@ -116,8 +114,6 @@ import org.lecturestudio.swing.view.SwingView;
|
|||
import org.lecturestudio.swing.view.ViewPostConstruct;
|
||||
import org.lecturestudio.web.api.event.PeerStateEvent;
|
||||
import org.lecturestudio.web.api.event.RemoteVideoFrameEvent;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessage;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessageAsReply;
|
||||
import org.lecturestudio.web.api.message.MessengerMessage;
|
||||
import org.lecturestudio.web.api.message.SpeechBaseMessage;
|
||||
import org.lecturestudio.web.api.message.util.MessageUtil;
|
||||
|
@ -749,41 +745,20 @@ public class SwingSlidesView extends JPanel implements SlidesView {
|
|||
public void setMessengerMessage(MessengerMessage message) {
|
||||
SwingUtils.invoke(() -> {
|
||||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
String myId = userInfo.getUserId();
|
||||
|
||||
MessageView messageView = ViewUtil.createMessageView(MessageView.class, userInfo, message, dict);
|
||||
messageView.setMessage(message.getMessage().getText(), message.getMessageId());
|
||||
messageView.setMessage(message, userInfo);
|
||||
messageView.setOnDiscard(() -> {
|
||||
executeAction(discardMessageAction, message);
|
||||
executeAction(discardMessageAction, messageView.getMessage());
|
||||
|
||||
removeMessageView(messageView);
|
||||
});
|
||||
messageView.setOnCreateSlide(() -> {
|
||||
createMessageSlideAction.execute(message);
|
||||
createMessageSlideAction.execute(messageView.getMessage());
|
||||
|
||||
removeMessageView(messageView);
|
||||
});
|
||||
|
||||
if (message instanceof MessengerDirectMessage directMessage) {
|
||||
String recipientId = directMessage.getRecipientId();
|
||||
boolean byMe = Objects.equals(message.getUserId(), myId);
|
||||
boolean toMe = Objects.equals(recipientId, myId);
|
||||
boolean toOrganisers = Objects.equals(recipientId, "organisers");
|
||||
|
||||
String sender = byMe
|
||||
? dict.get("text.message.me")
|
||||
: String.format("%s %s", message.getFirstName(), message.getFamilyName());
|
||||
|
||||
String recipient = toMe
|
||||
? dict.get("text.message.to.me")
|
||||
: toOrganisers
|
||||
? dict.get("text.message.to.organisators.short")
|
||||
: String.format("%s %s", directMessage.getRecipientFirstName(), directMessage.getRecipientFamilyName());
|
||||
|
||||
messageView.setUserName(MessageFormat.format(dict.get("text.message.recipient"), sender, ""));
|
||||
messageView.setPrivateText(recipient);
|
||||
}
|
||||
|
||||
messageView.pack();
|
||||
|
||||
addMessageView(messageView);
|
||||
|
@ -794,11 +769,9 @@ public class SwingSlidesView extends JPanel implements SlidesView {
|
|||
public void setMessengerMessageAsReply(MessengerMessage message, MessengerMessage messageToReplyTo) {
|
||||
SwingUtils.invoke(() -> {
|
||||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
String myId = userInfo.getUserId();
|
||||
|
||||
MessageAsReplyView messageView = ViewUtil.createMessageView(MessageAsReplyView.class, userInfo, message, dict);
|
||||
|
||||
messageView.setMessage(message.getMessage().getText(), message.getMessageId());
|
||||
messageView.setMessage(message, userInfo);
|
||||
|
||||
final String userToReplyTo = MessageUtil.evaluateSenderOfMessageToReplyTo(messageToReplyTo, userInfo, dict);
|
||||
messageView.setUserToReplyTo(userToReplyTo);
|
||||
|
@ -814,26 +787,6 @@ public class SwingSlidesView extends JPanel implements SlidesView {
|
|||
removeMessageView(messageView);
|
||||
});
|
||||
|
||||
if (message instanceof MessengerDirectMessageAsReply directMessageAsReply) {
|
||||
String recipientId = directMessageAsReply.getRecipientId();
|
||||
boolean byMe = Objects.equals(message.getUserId(), myId);
|
||||
boolean toMe = Objects.equals(recipientId, myId);
|
||||
boolean toOrganisers = Objects.equals(recipientId, "organisers");
|
||||
|
||||
String sender = byMe
|
||||
? dict.get("text.message.me")
|
||||
: String.format("%s %s", message.getFirstName(), message.getFamilyName());
|
||||
|
||||
String recipient = toMe
|
||||
? dict.get("text.message.to.me")
|
||||
: toOrganisers
|
||||
? dict.get("text.message.to.organisators.short")
|
||||
: String.format("%s %s", directMessageAsReply.getRecipientFirstName(), directMessageAsReply.getRecipientFamilyName());
|
||||
|
||||
messageView.setUserName(MessageFormat.format(dict.get("text.message.recipient"), sender, ""));
|
||||
messageView.setPrivateText(recipient);
|
||||
}
|
||||
|
||||
messageView.pack();
|
||||
|
||||
addMessageView(messageView);
|
||||
|
@ -845,9 +798,13 @@ public class SwingSlidesView extends JPanel implements SlidesView {
|
|||
SwingUtils.invoke(() -> {
|
||||
final Optional<MessageView> toModify = findCorrespondingMessageView(modifiedMessage.getMessageId());
|
||||
|
||||
if(toModify.isEmpty()) return;
|
||||
if (toModify.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
toModify.get().setMessage(modifiedMessage.getMessage().getText(), modifiedMessage.getMessageId());
|
||||
UserInfo userInfo = userPrivilegeService.getUserInfo();
|
||||
|
||||
toModify.get().setMessage(modifiedMessage, userInfo);
|
||||
toModify.get().setIsEdited();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -23,6 +23,8 @@ import java.awt.Dimension;
|
|||
import java.awt.Insets;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.Box;
|
||||
|
@ -34,24 +36,80 @@ import org.lecturestudio.core.app.dictionary.Dictionary;
|
|||
import org.lecturestudio.core.view.Action;
|
||||
import org.lecturestudio.swing.AwtResourceLoader;
|
||||
import org.lecturestudio.swing.util.SwingUtils;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessage;
|
||||
import org.lecturestudio.web.api.message.MessengerDirectMessageAsReply;
|
||||
import org.lecturestudio.web.api.message.MessengerMessage;
|
||||
import org.lecturestudio.web.api.model.UserInfo;
|
||||
|
||||
public class MessageView extends MessagePanel {
|
||||
|
||||
private JButton discardButton;
|
||||
private MessengerMessage message;
|
||||
|
||||
protected JTextArea textArea;
|
||||
private JButton discardButton;
|
||||
|
||||
private JButton createSlideButton;
|
||||
|
||||
private String messageId;
|
||||
|
||||
protected JTextArea textArea;
|
||||
|
||||
|
||||
public MessageView(Dictionary dict) {
|
||||
super(dict);
|
||||
}
|
||||
|
||||
public void setMessage(String message, String correspondingMessageId) {
|
||||
textArea.setText(message);
|
||||
this.messageId = correspondingMessageId;
|
||||
public MessengerMessage getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(MessengerMessage message, UserInfo userInfo) {
|
||||
this.message = message;
|
||||
|
||||
textArea.setText(message.getMessage().getText());
|
||||
messageId = message.getMessageId();
|
||||
|
||||
if (message instanceof MessengerDirectMessage directMessage) {
|
||||
String myId = userInfo.getUserId();
|
||||
String recipientId = directMessage.getRecipientId();
|
||||
|
||||
boolean byMe = Objects.equals(message.getUserId(), myId);
|
||||
boolean toMe = Objects.equals(recipientId, myId);
|
||||
boolean toOrganisers = Objects.equals(recipientId, "organisers");
|
||||
|
||||
String sender = byMe
|
||||
? dict.get("text.message.me")
|
||||
: String.format("%s %s", message.getFirstName(), message.getFamilyName());
|
||||
|
||||
String recipient = toMe
|
||||
? dict.get("text.message.to.me")
|
||||
: toOrganisers
|
||||
? dict.get("text.message.to.organisators.short")
|
||||
: String.format("%s %s", directMessage.getRecipientFirstName(), directMessage.getRecipientFamilyName());
|
||||
|
||||
setUserName(MessageFormat.format(dict.get("text.message.recipient"), sender, ""));
|
||||
setPrivateText(recipient);
|
||||
}
|
||||
if (message instanceof MessengerDirectMessageAsReply directMessageAsReply) {
|
||||
String myId = userInfo.getUserId();
|
||||
String recipientId = directMessageAsReply.getRecipientId();
|
||||
|
||||
boolean byMe = Objects.equals(message.getUserId(), myId);
|
||||
boolean toMe = Objects.equals(recipientId, myId);
|
||||
boolean toOrganisers = Objects.equals(recipientId, "organisers");
|
||||
|
||||
String sender = byMe
|
||||
? dict.get("text.message.me")
|
||||
: String.format("%s %s", message.getFirstName(), message.getFamilyName());
|
||||
|
||||
String recipient = toMe
|
||||
? dict.get("text.message.to.me")
|
||||
: toOrganisers
|
||||
? dict.get("text.message.to.organisators.short")
|
||||
: String.format("%s %s", directMessageAsReply.getRecipientFirstName(), directMessageAsReply.getRecipientFamilyName());
|
||||
|
||||
setUserName(MessageFormat.format(dict.get("text.message.recipient"), sender, ""));
|
||||
setPrivateText(recipient);
|
||||
}
|
||||
}
|
||||
|
||||
public void setPrivateText(String text) {
|
||||
|
|
|
@ -57,12 +57,12 @@ public class MessageUtil {
|
|||
}
|
||||
|
||||
public static void updateOutdatedMessage(final List<MessengerMessage> messages, final MessengerMessage newMessage) {
|
||||
for(MessengerMessage message : messages) {
|
||||
if(message.getMessageId().equals(newMessage.getMessageId())) {
|
||||
messages.remove(message);
|
||||
messages.add(newMessage);
|
||||
}
|
||||
}
|
||||
for (MessengerMessage message : messages) {
|
||||
if (message.getMessageId().equals(newMessage.getMessageId())) {
|
||||
messages.remove(message);
|
||||
messages.add(newMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean sentByMe(final UserMessage message, final UserInfo userInfo) {
|
||||
|
|
Loading…
Reference in a new issue