diff --git a/src/main/java/envoy/client/ui/ChatWindow.java b/src/main/java/envoy/client/ui/ChatWindow.java index 07c26b1..c563144 100644 --- a/src/main/java/envoy/client/ui/ChatWindow.java +++ b/src/main/java/envoy/client/ui/ChatWindow.java @@ -413,6 +413,10 @@ public class ChatWindow extends JFrame { e.printStackTrace(); } + // Clearing the search field and the searchResultList + searchField.setText(""); + contactsModel.clear(); + // Update LocalDB userListModel.addElement(contact); localDb.getUsers().put(contact.getName(), contact); diff --git a/src/main/java/envoy/client/ui/LoginDialog.java b/src/main/java/envoy/client/ui/LoginDialog.java index d81ecc1..d8cd4ff 100644 --- a/src/main/java/envoy/client/ui/LoginDialog.java +++ b/src/main/java/envoy/client/ui/LoginDialog.java @@ -9,6 +9,7 @@ import java.util.Arrays; import javax.swing.*; import javax.swing.border.EmptyBorder; +import envoy.client.Settings; import envoy.data.LoginCredentials; /** @@ -22,19 +23,27 @@ import envoy.data.LoginCredentials; */ public class LoginDialog extends JDialog { - private final JPanel contentPanel = new JPanel(); - - private static final long serialVersionUID = 352021600833907468L; + private final JPanel contentPanel; private JTextField textField; private JPasswordField passwordField; - private JPasswordField repeatPasswordField; - private JLabel lblRepeatPassword; + + private JLabel lblUserName; + private JLabel lblPassword; + private JLabel lblRepeatPassword; + private GridBagConstraints gbc_lblRepeatPassword; private GridBagConstraints gbc_repeatPasswordField; + private JPanel buttonPane; + private JTextPane registerText; + private JCheckBox registerCheckBox; + private PrimaryButton okButton; + private PrimaryButton cancelButton; + private LoginCredentials credentials; + private static final long serialVersionUID = 352021600833907468L; /** * Displays a dialog enabling the user to enter their user name and password. * @@ -44,6 +53,7 @@ public class LoginDialog extends JDialog { setSize(338, 123); setLocationRelativeTo(null); getContentPane().setLayout(new BorderLayout()); + contentPanel = new JPanel(); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); GridBagLayout gbl_contentPanel = new GridBagLayout(); @@ -53,7 +63,7 @@ public class LoginDialog extends JDialog { gbl_contentPanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; contentPanel.setLayout(gbl_contentPanel); { - JLabel lblUserName = new JLabel("User name:"); + lblUserName = new JLabel("Username:"); GridBagConstraints gbc_lblUserName = new GridBagConstraints(); gbc_lblUserName.anchor = GridBagConstraints.EAST; gbc_lblUserName.insets = new Insets(0, 0, 5, 5); @@ -63,6 +73,7 @@ public class LoginDialog extends JDialog { } { textField = new JTextField(); + textField.setBorder(null); GridBagConstraints gbc_textField = new GridBagConstraints(); gbc_textField.insets = new Insets(0, 0, 5, 0); gbc_textField.fill = GridBagConstraints.HORIZONTAL; @@ -72,7 +83,7 @@ public class LoginDialog extends JDialog { textField.setColumns(10); } { - JLabel lblPassword = new JLabel("Password:"); + lblPassword = new JLabel("Password:"); GridBagConstraints gbc_lblPassword = new GridBagConstraints(); gbc_lblPassword.anchor = GridBagConstraints.EAST; gbc_lblPassword.insets = new Insets(0, 0, 0, 5); @@ -82,6 +93,7 @@ public class LoginDialog extends JDialog { } { passwordField = new JPasswordField(); + passwordField.setBorder(null); GridBagConstraints gbc_passwordField = new GridBagConstraints(); gbc_passwordField.fill = GridBagConstraints.HORIZONTAL; gbc_passwordField.gridx = 1; @@ -98,21 +110,23 @@ public class LoginDialog extends JDialog { } { repeatPasswordField = new JPasswordField(); + repeatPasswordField.setBorder(null); gbc_repeatPasswordField = new GridBagConstraints(); gbc_repeatPasswordField.fill = GridBagConstraints.HORIZONTAL; gbc_repeatPasswordField.gridx = 1; gbc_repeatPasswordField.gridy = 2; } { - JPanel buttonPane = new JPanel(); + buttonPane = new JPanel(); - JTextPane registerText = new JTextPane(); + registerText = new JTextPane(); + registerText.setEditable(false); registerText.setText("Register?"); registerText.setFont(new Font("Arial", Font.BOLD, 12)); registerText.setAlignmentX(LEFT_ALIGNMENT); buttonPane.add(registerText); - JCheckBox registerCheckBox = new JCheckBox(); + registerCheckBox = new JCheckBox(); registerCheckBox.setAlignmentX(LEFT_ALIGNMENT); registerCheckBox.addItemListener(new ItemListener() { @@ -122,7 +136,7 @@ public class LoginDialog extends JDialog { case ItemEvent.SELECTED: contentPanel.add(lblRepeatPassword, gbc_lblRepeatPassword); contentPanel.add(repeatPasswordField, gbc_repeatPasswordField); - setSize(338, 160); + setSize(338, 148); contentPanel.revalidate(); contentPanel.repaint(); break; @@ -144,7 +158,7 @@ public class LoginDialog extends JDialog { buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { - JButton okButton = new JButton("OK"); + okButton = new PrimaryButton("OK"); okButton.addActionListener((evt) -> { try { if (registerCheckBox.isSelected()) { @@ -169,17 +183,62 @@ public class LoginDialog extends JDialog { getRootPane().setDefaultButton(okButton); } { - JButton cancelButton = new JButton("Cancel"); + cancelButton = new PrimaryButton("Cancel"); cancelButton.addActionListener((evt) -> dispose()); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } + setTheme(); setModal(true); setVisible(true); } + private void setTheme() { + Theme theme = Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme()); + + // Panels + contentPanel.setBackground(theme.getBackgroundColor()); + contentPanel.setForeground(theme.getBackgroundColor()); + + buttonPane.setBackground(theme.getBackgroundColor()); + buttonPane.setForeground(theme.getBackgroundColor()); + + // Input Fields + textField.setBackground(theme.getCellColor()); + textField.setForeground(theme.getUserNameColor()); + + passwordField.setBackground(theme.getCellColor()); + passwordField.setForeground(theme.getUserNameColor()); + + repeatPasswordField.setBackground(theme.getCellColor()); + repeatPasswordField.setForeground(theme.getUserNameColor()); + + // JLabels + lblUserName.setBackground(theme.getCellColor()); + lblUserName.setForeground(theme.getUserNameColor()); + + lblPassword.setBackground(theme.getCellColor()); + lblPassword.setForeground(theme.getUserNameColor()); + + lblRepeatPassword.setBackground(theme.getCellColor()); + lblRepeatPassword.setForeground(theme.getUserNameColor()); + + // Register + registerText.setBackground(theme.getCellColor()); + registerText.setForeground(theme.getUserNameColor()); + + registerCheckBox.setBackground(theme.getCellColor()); + + // Buttons + okButton.setBackground(theme.getInteractableBackgroundColor()); + okButton.setForeground(theme.getInteractableForegroundColor()); + + cancelButton.setBackground(theme.getInteractableBackgroundColor()); + cancelButton.setForeground(theme.getInteractableForegroundColor()); + } + /** * @return the {@link LoginCredentials} entered by the user, or {@code null} if * the dialog has been cancelled