src/main/java/de/unixwork/im/ConversationFrame.java

changeset 1
42d0d099492b
parent 0
f3095cda599e
child 3
25a32e2dfde5
equal deleted inserted replaced
0:f3095cda599e 1:42d0d099492b
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()) {
133 messageInput.setText(""); 131 messageInput.setText("");
134 } 132 }
135 } 133 }
136 } 134 }
137 135
138 // Interface for top-right button callback
139 public interface TopRightButtonListener {
140 void onTopRightButtonClicked();
141 }
142
143 } 136 }

mercurial