Themes & Themes Configuration
Added themes to choose from and provides customization setting for these.
This commit is contained in:
@ -49,10 +49,8 @@ public class ChatWindow extends JFrame {
|
||||
private static final long serialVersionUID = 6865098428255463649L;
|
||||
|
||||
// user specific objects
|
||||
private Client client;
|
||||
private LocalDB localDB;
|
||||
// used colors in Envoy
|
||||
private UIColors uiColors = UIColors.getInstance(true);
|
||||
private Client client;
|
||||
private LocalDB localDB;
|
||||
// GUI components
|
||||
private JPanel contentPane = new JPanel();
|
||||
private JTextArea messageEnterTextArea = new JTextArea();
|
||||
@ -62,8 +60,8 @@ public class ChatWindow extends JFrame {
|
||||
private JScrollPane scrollPane = new JScrollPane();
|
||||
private JTextPane textPane = new JTextPane();
|
||||
// private JCheckBox jCbChangeMode;
|
||||
private JButton postButton = new JButton("Post");
|
||||
private JButton settingsButton = new JButton("Settings");
|
||||
private JButton postButton = new JButton("Post");
|
||||
private JButton settingsButton = new JButton("Settings");
|
||||
|
||||
private static int space = 4;
|
||||
|
||||
@ -80,12 +78,14 @@ public class ChatWindow extends JFrame {
|
||||
addWindowListener(new WindowAdapter() {
|
||||
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) { try {
|
||||
localDB.saveToLocalDB();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
System.err.println("Could nnot save localDB");
|
||||
} }
|
||||
public void windowClosing(WindowEvent e) {
|
||||
try {
|
||||
localDB.saveToLocalDB();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
System.err.println("Could not save localDB");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
contentPane.setBorder(new EmptyBorder(space, space, space, space));
|
||||
@ -125,8 +125,9 @@ 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))) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER
|
||||
&& ((Settings.getInstance().isEnterToSend() && e.getModifiersEx() == 0)
|
||||
|| (e.getModifiersEx() == KeyEvent.CTRL_DOWN_MASK))) {
|
||||
|
||||
postMessage(messageList);
|
||||
}
|
||||
@ -176,7 +177,9 @@ public class ChatWindow extends JFrame {
|
||||
settingsButton.addActionListener((evt) -> {
|
||||
try {
|
||||
SettingsScreen.open();
|
||||
changeChatWindowColors();
|
||||
|
||||
changeChatWindowColors(Settings.getInstance().getCurrentTheme());
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("An error occured while opening the settings screen: " + e);
|
||||
e.printStackTrace();
|
||||
@ -232,8 +235,8 @@ public class ChatWindow extends JFrame {
|
||||
gbc_userList.anchor = GridBagConstraints.PAGE_START;
|
||||
gbc_userList.insets = new Insets(space, space, space, space);
|
||||
|
||||
changeChatWindowColors();
|
||||
|
||||
changeChatWindowColors(Settings.getInstance().getCurrentTheme());
|
||||
|
||||
contentPane.add(userList, gbc_userList);
|
||||
contentPane.revalidate();
|
||||
|
||||
@ -243,43 +246,44 @@ public class ChatWindow extends JFrame {
|
||||
contentPane.revalidate();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Used to immediately reload the ChatWindow when settings were changed.
|
||||
*
|
||||
* @since Envoy v0.1-alpha
|
||||
*/
|
||||
public void changeChatWindowColors() {
|
||||
uiColors.setDisplayMode(Settings.getInstance().isDarkMode());
|
||||
public void changeChatWindowColors(String key) {
|
||||
Theme theme = Settings.getInstance().getThemes().get(key);
|
||||
|
||||
// contentPane
|
||||
contentPane.setBackground(uiColors.getBackgroundColor());
|
||||
contentPane.setForeground(uiColors.getTextColor());
|
||||
contentPane.setBackground(theme.getBackgroundColor());
|
||||
contentPane.setForeground(theme.getUserNameColor());
|
||||
// messageList
|
||||
messageList.setSelectionForeground(uiColors.getTextColor());
|
||||
messageList.setSelectionBackground(uiColors.getSpecialUseColor());
|
||||
messageList.setForeground(uiColors.getTextColor());
|
||||
messageList.setBackground(uiColors.getUserInteractionColor());
|
||||
messageList.setSelectionForeground(theme.getUserNameColor());
|
||||
messageList.setSelectionBackground(theme.getSelectionColor());
|
||||
messageList.setForeground(theme.getMessageColorChat());
|
||||
messageList.setBackground(theme.getCellColor());
|
||||
// scrollPane
|
||||
scrollPane.setForeground(uiColors.getBackgroundColor());
|
||||
scrollPane.setBackground(uiColors.getUserInteractionColor());
|
||||
scrollPane.setForeground(theme.getBackgroundColor());
|
||||
scrollPane.setBackground(theme.getCellColor());
|
||||
// messageEnterTextArea
|
||||
messageEnterTextArea.setCaretColor(uiColors.getTextColor());
|
||||
messageEnterTextArea.setForeground(uiColors.getTextColor());
|
||||
messageEnterTextArea.setBackground(uiColors.getUserInteractionColor());
|
||||
messageEnterTextArea.setCaretColor(theme.getTypingMessageColor());
|
||||
messageEnterTextArea.setForeground(theme.getTypingMessageColor());
|
||||
messageEnterTextArea.setBackground(theme.getCellColor());
|
||||
// postButton
|
||||
postButton.setForeground(uiColors.getTextColor());
|
||||
postButton.setBackground(uiColors.getSpecialUseColor());
|
||||
postButton.setForeground(theme.getInteractableForegroundColor());
|
||||
postButton.setBackground(theme.getInteractableBackgroundColor());
|
||||
// settingsButton
|
||||
settingsButton.setForeground(uiColors.getTextColor());
|
||||
settingsButton.setBackground(uiColors.getSpecialUseColor());
|
||||
settingsButton.setForeground(theme.getInteractableForegroundColor());
|
||||
settingsButton.setBackground(theme.getInteractableBackgroundColor());
|
||||
// textPane
|
||||
textPane.setBackground(uiColors.getBackgroundColor());
|
||||
textPane.setForeground(uiColors.getTextColor());
|
||||
textPane.setBackground(theme.getBackgroundColor());
|
||||
textPane.setForeground(theme.getUserNameColor());
|
||||
// userList
|
||||
userList.setSelectionForeground(uiColors.getTextColor());
|
||||
userList.setSelectionBackground(uiColors.getSpecialUseColor());
|
||||
userList.setForeground(uiColors.getTextColor());
|
||||
userList.setBackground(uiColors.getUserInteractionColor());
|
||||
userList.setSelectionForeground(theme.getUserNameColor());
|
||||
userList.setSelectionBackground(theme.getSelectionColor());
|
||||
userList.setForeground(theme.getUserNameColor());
|
||||
userList.setBackground(theme.getCellColor());
|
||||
|
||||
}
|
||||
|
||||
@ -293,9 +297,10 @@ public class ChatWindow extends JFrame {
|
||||
|
||||
if (!messageEnterTextArea.getText().isEmpty()) try {
|
||||
|
||||
// Create and send message object
|
||||
final Message message = localDB.createMessage(messageEnterTextArea.getText(), currentChat.getRecipient().getID());
|
||||
localDB.addWaitingMessageToLocalDB(message, currentChat);
|
||||
// Create and send message object
|
||||
final Message message = localDB.createMessage(messageEnterTextArea.getText(),
|
||||
currentChat.getRecipient().getID());
|
||||
localDB.addWaitingMessageToLocalDB(message, currentChat);
|
||||
messageList.setModel(currentChat.getModel());
|
||||
|
||||
// Clear text field
|
||||
|
Reference in New Issue
Block a user