| 13 |
13 |
| 14 private String xid; |
14 private String xid; |
| 15 private JTextArea messageHistory; |
15 private JTextArea messageHistory; |
| 16 private JTextArea messageInput; |
16 private JTextArea messageInput; |
| 17 private JButton sendButton; |
17 private JButton sendButton; |
| 18 private JButton topRightButton; |
18 private JButton secureButton; |
| 19 private MessageSendListener messageSendListener; |
19 private MessageSendListener messageSendListener; |
| 20 private TopRightButtonListener topRightButtonListener; |
20 |
| 21 |
21 boolean isSecure = false; |
| |
22 |
| 22 public ConversationFrame(String xid) { |
23 public ConversationFrame(String xid) { |
| 23 this.xid = xid; |
24 this.xid = xid; |
| 24 |
25 |
| 25 setTitle(xid); |
26 setTitle(xid); |
| 26 setSize(500, 400); |
27 setSize(500, 400); |
| 27 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); |
28 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); |
| 28 setLayout(new BorderLayout(5, 5)); |
29 setLayout(new BorderLayout(5, 5)); |
| 29 |
30 |
| 30 // Top panel with top-right button |
31 // Top panel with top-right button |
| 31 JPanel topPanel = new JPanel(new BorderLayout()); |
32 JPanel topPanel = new JPanel(new BorderLayout()); |
| 32 topRightButton = new JButton("Insecure"); |
33 secureButton = new JButton("Insecure"); |
| 33 topPanel.add(topRightButton, BorderLayout.EAST); |
34 topPanel.add(secureButton, BorderLayout.EAST); |
| 34 add(topPanel, BorderLayout.NORTH); |
35 add(topPanel, BorderLayout.NORTH); |
| 35 |
36 |
| 36 // Split pane |
37 // Split pane |
| 37 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); |
38 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); |
| 38 splitPane.setResizeWeight(0.8); |
39 splitPane.setResizeWeight(0.8); |
| 75 public void actionPerformed(ActionEvent e) { |
76 public void actionPerformed(ActionEvent e) { |
| 76 triggerMessageSend(); |
77 triggerMessageSend(); |
| 77 } |
78 } |
| 78 }); |
79 }); |
| 79 |
80 |
| 80 topRightButton.addActionListener(new ActionListener() { |
81 secureButton.addActionListener(new ActionListener() { |
| 81 @Override |
82 @Override |
| 82 public void actionPerformed(ActionEvent e) { |
83 public void actionPerformed(ActionEvent e) { |
| 83 if (topRightButtonListener != null) { |
84 if(isSecure) { |
| 84 topRightButtonListener.onTopRightButtonClicked(); |
85 |
| |
86 } else { |
| |
87 App.getInstance().getXmpp().startOTR(xid); |
| 85 } |
88 } |
| 86 } |
89 } |
| 87 }); |
90 }); |
| 88 |
91 |
| 89 // message handler |
92 // message handler |
| 117 // Method to set the message send listener |
120 // Method to set the message send listener |
| 118 public void setMessageSendListener(MessageSendListener listener) { |
121 public void setMessageSendListener(MessageSendListener listener) { |
| 119 this.messageSendListener = listener; |
122 this.messageSendListener = listener; |
| 120 } |
123 } |
| 121 |
124 |
| 122 // Method to set the top-right button listener |
|
| 123 public void setTopRightButtonListener(TopRightButtonListener listener) { |
|
| 124 this.topRightButtonListener = listener; |
|
| 125 } |
|
| 126 |
|
| 127 // Trigger the message send callback |
125 // Trigger the message send callback |
| 128 private void triggerMessageSend() { |
126 private void triggerMessageSend() { |
| 129 if (messageSendListener != null) { |
127 if (messageSendListener != null) { |
| 130 String message = messageInput.getText().trim(); |
128 String message = messageInput.getText().trim(); |
| 131 if (!message.isEmpty()) { |
129 if (!message.isEmpty()) { |