Added disabling of postButton while String.isBlank() returns true
This commit is contained in:
parent
f08a7a6f5e
commit
376c026b2a
@ -4,9 +4,7 @@ import java.awt.*;
|
||||
import java.awt.datatransfer.StringSelection;
|
||||
import java.awt.event.*;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -118,39 +116,44 @@ public class ChatWindow extends JFrame {
|
||||
gbl_contentPane.columnWidths = new int[] { 1, 1, 1 };
|
||||
gbl_contentPane.rowHeights = new int[] { 1, 1, 1, 1 };
|
||||
gbl_contentPane.columnWeights = new double[] { 0.03, 1.0, 0.1 };
|
||||
gbl_contentPane.rowWeights = new double[] { 0.03, 0.001, 1.0, 0.005 };
|
||||
gbl_contentPane.rowWeights = new double[] { 0.03, 0.001, 1.0, 0.001 };
|
||||
contentPane.setLayout(gbl_contentPane);
|
||||
|
||||
// ContextMenu
|
||||
Map<String, ActionListener> commands = new HashMap<>() {
|
||||
|
||||
private static final long serialVersionUID = -2755235774946990126L;
|
||||
|
||||
{
|
||||
put("forward selected message",
|
||||
evt -> forwardMessageToMultipleUsers(messageList.getSingleSelectedElement(),
|
||||
ContactsChooserDialog
|
||||
.showForwardingDialog("Forward selected message to", messageList.getSingleSelectedElement(), client)));
|
||||
put("copy", evt -> {
|
||||
// TODO should be enhanced to allow also copying of message attachments,
|
||||
// especially pictures
|
||||
StringSelection copy = new StringSelection(messageList.getSingleSelectedElement().getText());
|
||||
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(copy, copy);
|
||||
});
|
||||
// TODO insert implementation to edit and delete messages
|
||||
put("delete", evt -> {});
|
||||
put("edit", evt -> {});
|
||||
put("quote", evt -> {});
|
||||
}
|
||||
};
|
||||
contextMenu = new ContextMenu(null, messageList, commands, null, null).build();
|
||||
|
||||
messageList.setBorder(new EmptyBorder(space, space, space, space));
|
||||
messageList.setSelectionMode(SelectionMode.SINGLE);
|
||||
messageList.setSelectionHandler((message, comp, isSelected) -> {
|
||||
final var theme = Settings.getInstance().getCurrentTheme();
|
||||
comp.setBackground(isSelected ? theme.getSelectionColor() : theme.getCellColor());
|
||||
contextMenu.show(comp, 0, 0);
|
||||
|
||||
// ContextMenu
|
||||
Map<String, ActionListener> commands = new HashMap<>() {
|
||||
|
||||
private static final long serialVersionUID = -2755235774946990126L;
|
||||
|
||||
{
|
||||
put("forward selected message", evt -> {
|
||||
final Message selectedMessage = messageList.getSingleSelectedElement();
|
||||
forwardMessage(selectedMessage,
|
||||
ContactsChooserDialog
|
||||
.showForwardingDialog("Forward selected message to", null, selectedMessage, localDb.getUsers().values())
|
||||
.toArray(new User[0]));
|
||||
});
|
||||
put("copy", evt -> {
|
||||
// TODO should be enhanced to allow also copying of message attachments,
|
||||
// especially pictures
|
||||
StringSelection copy = new StringSelection(messageList.getSingleSelectedElement().getText());
|
||||
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(copy, copy);
|
||||
});
|
||||
// TODO insert implementation to edit and delete messages
|
||||
put("delete", evt -> {});
|
||||
put("edit", evt -> {});
|
||||
put("quote", evt -> {});
|
||||
}
|
||||
};
|
||||
if (isSelected) {
|
||||
contextMenu = new ContextMenu(null, comp, commands, null, null).build();
|
||||
contextMenu.show(comp, 0, 0);
|
||||
}
|
||||
});
|
||||
|
||||
scrollPane.setViewportView(messageList);
|
||||
@ -180,7 +183,10 @@ public class ChatWindow extends JFrame {
|
||||
messageEnterTextArea.addInputMethodListener(new InputMethodListener() {
|
||||
|
||||
@Override
|
||||
public void inputMethodTextChanged(InputMethodEvent event) { checkMessageTextLength(); }
|
||||
public void inputMethodTextChanged(InputMethodEvent event) {
|
||||
checkMessageTextLength();
|
||||
checkPostButton(messageEnterTextArea.getText());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void caretPositionChanged(InputMethodEvent event) {}
|
||||
@ -191,31 +197,30 @@ public class ChatWindow extends JFrame {
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER
|
||||
&& (Settings.getInstance().isEnterToSend() && e.getModifiersEx() == 0 || e.getModifiersEx() == KeyEvent.CTRL_DOWN_MASK))
|
||||
&& (Settings.getInstance().isEnterToSend() && e.getModifiersEx() == 0 || e.getModifiersEx() == KeyEvent.CTRL_DOWN_MASK)
|
||||
&& postButton.isEnabled())
|
||||
postMessage();
|
||||
// Checking if text is too long
|
||||
checkMessageTextLength();
|
||||
checkPostButton(messageEnterTextArea.getText());
|
||||
}
|
||||
});
|
||||
|
||||
GridBagConstraints gbc_scrollPaneForTextInput = new GridBagConstraints();
|
||||
gbc_scrollPaneForTextInput.fill = GridBagConstraints.BOTH;
|
||||
gbc_scrollPaneForTextInput.gridx = 1;
|
||||
gbc_scrollPaneForTextInput.gridy = 3;
|
||||
|
||||
gbc_scrollPaneForTextInput.insets = insets;
|
||||
|
||||
contentPane.add(messageEnterTextArea, gbc_scrollPaneForTextInput);
|
||||
GridBagConstraints gbc_messageEnterTextArea = new GridBagConstraints();
|
||||
gbc_messageEnterTextArea.fill = GridBagConstraints.BOTH;
|
||||
gbc_messageEnterTextArea.gridx = 1;
|
||||
gbc_messageEnterTextArea.gridy = 3;
|
||||
gbc_messageEnterTextArea.insets = insets;
|
||||
contentPane.add(messageEnterTextArea, gbc_messageEnterTextArea);
|
||||
|
||||
// Post Button
|
||||
GridBagConstraints gbc_postButton = new GridBagConstraints();
|
||||
|
||||
gbc_postButton.fill = GridBagConstraints.BOTH;
|
||||
gbc_postButton.gridx = 2;
|
||||
gbc_postButton.gridy = 3;
|
||||
gbc_postButton.insets = insets;
|
||||
|
||||
postButton.addActionListener((evt) -> { postMessage(); });
|
||||
postButton.setEnabled(false);
|
||||
contentPane.add(postButton, gbc_postButton);
|
||||
|
||||
// Settings Button
|
||||
@ -552,6 +557,7 @@ public class ChatWindow extends JFrame {
|
||||
sendMessage(message);
|
||||
// Clear text field
|
||||
messageEnterTextArea.setText("");
|
||||
postButton.setEnabled(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -684,4 +690,6 @@ public class ChatWindow extends JFrame {
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkPostButton(String text) { postButton.setEnabled(!text.trim().isBlank()); }
|
||||
}
|
||||
|
Reference in New Issue
Block a user