Formatting
This commit is contained in:
		| @@ -28,7 +28,7 @@ public class Settings { | ||||
| 	private boolean				enterToSend	= true; | ||||
| 	private Map<String, Theme>	themes; | ||||
| 	private String				currentTheme; | ||||
| 	private int currentOnCloseMode; | ||||
| 	private int					currentOnCloseMode; | ||||
|  | ||||
| 	/** | ||||
| 	 * Required to save the settings. | ||||
| @@ -66,7 +66,7 @@ public class Settings { | ||||
| 		setEnterToSend(prefs.getBoolean("enterToSend", true)); | ||||
| 		setCurrentTheme(prefs.get("theme", "dark")); | ||||
| 		setCurrentOnCloseMode(prefs.getInt("onCloseMode", 1)); | ||||
| 		 | ||||
|  | ||||
| 		// Load themes from theme file | ||||
| 		try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(themeFile))) { | ||||
| 			Object obj = in.readObject(); | ||||
| @@ -158,18 +158,18 @@ public class Settings { | ||||
| 	 * @since Envoy v0.2-alpha | ||||
| 	 */ | ||||
| 	public void setThemes(Map<String, Theme> themes) { this.themes = themes; } | ||||
| 	 | ||||
|  | ||||
| 	/** | ||||
| 	 * @return the current on close mode. | ||||
| 	 * @since Envoy v0.3-alpha | ||||
| 	 */ | ||||
| 	public int getCurrentOnCloseMode () {return currentOnCloseMode;} | ||||
| 	 | ||||
| 	public int getCurrentOnCloseMode() { return currentOnCloseMode; } | ||||
|  | ||||
| 	/** | ||||
| 	 * Sets the current on close mode. | ||||
| 	 * | ||||
| 	 * @param currentOnCloseMode the on close mode that should be set. | ||||
| 	 * @since Envoy v0.3-alpha | ||||
| 	 */ | ||||
| 	public void setCurrentOnCloseMode(int currentOnCloseMode) {this.currentOnCloseMode = currentOnCloseMode;} | ||||
| 	public void setCurrentOnCloseMode(int currentOnCloseMode) { this.currentOnCloseMode = currentOnCloseMode; } | ||||
| } | ||||
| @@ -8,16 +8,19 @@ package envoy.client.event; | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy v0.3-alpha | ||||
|  */ | ||||
| public class OnCloseChangeEvent implements Event<Integer>{ | ||||
| public class OnCloseChangeEvent implements Event<Integer> { | ||||
|  | ||||
| 	private Integer closeMode; | ||||
|  | ||||
| 	/** | ||||
| 	 * @param closeMode This is the on close mode for the client, that should be set. | ||||
| 	 * </br> 0 = ExitOnClose </br> 1 = HideOnClose | ||||
| 	 * @param closeMode This is the on close mode for the client, that should be | ||||
| 	 *                  set. | ||||
| 	 *                  </br> | ||||
| 	 *                  0 = ExitOnClose </br> | ||||
| 	 *                  1 = HideOnClose | ||||
| 	 * @since Envoy 0.3-alpha | ||||
| 	 */ | ||||
| 	public OnCloseChangeEvent(int closeMode) {this.closeMode = closeMode;} | ||||
| 	public OnCloseChangeEvent(int closeMode) { this.closeMode = closeMode; } | ||||
|  | ||||
| 	@Override | ||||
| 	public Integer get() { return closeMode; } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package envoy.client.ui; | ||||
|  | ||||
| import java.awt.*; | ||||
| import java.lang.reflect.Constructor; | ||||
| import java.util.logging.Level; | ||||
| import java.util.logging.Logger; | ||||
|  | ||||
| import javax.swing.*; | ||||
| @@ -9,13 +9,12 @@ import javax.swing.*; | ||||
| import envoy.client.Settings; | ||||
| import envoy.client.event.Event; | ||||
| import envoy.client.event.EventBus; | ||||
| import envoy.client.event.EventHandler; | ||||
| import envoy.client.event.OnCloseChangeEvent; | ||||
| import envoy.client.ui.settings.ThemeCustomizationPanel; | ||||
| import envoy.client.util.EnvoyLog; | ||||
|  | ||||
| /** | ||||
|  * This Component can be used to toggle between two options. e.g. on and off </br></br> | ||||
|  * This Component can be used to toggle between two options. e.g. on and off | ||||
|  * </br> | ||||
|  * </br> | ||||
|  *  | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
|  * File: <strong>PrimaryToggleSwitch.java</strong><br> | ||||
| @@ -24,20 +23,21 @@ import envoy.client.util.EnvoyLog; | ||||
|  * @author Maximilian Käfer | ||||
|  * @since Envoy v0.3-alpha | ||||
|  */ | ||||
| public class PrimaryToggleSwitch extends JPanel{ | ||||
| 	 | ||||
| 	private static final long serialVersionUID = -721155303106833184L; | ||||
| 	private boolean initialState; | ||||
| 	JButton b = new JButton(""); | ||||
| 	private boolean currentState; | ||||
| 	private int variable; | ||||
| 	private static final Logger logger = EnvoyLog.getLogger(PrimaryToggleSwitch.class.getSimpleName()); | ||||
| 	 | ||||
| public class PrimaryToggleSwitch extends JPanel { | ||||
|  | ||||
| 	private static final long	serialVersionUID	= -721155303106833184L; | ||||
| 	JButton						b					= new JButton(""); | ||||
| 	private boolean				currentState; | ||||
| 	private int					variable; | ||||
| 	private static final Logger	logger				= EnvoyLog.getLogger(PrimaryToggleSwitch.class.getSimpleName()); | ||||
|  | ||||
| 	/** | ||||
| 	 * This is the constructor for the PrimaryToggleSwitch. | ||||
| 	 *  | ||||
| 	 * @param initialState The state the toggleSwitch is standardly set to. </br> true: off </br> false: on | ||||
| 	 * @param eventName the path of the event class | ||||
| 	 * @param initialState The state the toggleSwitch is standardly set to. </br> | ||||
| 	 *                     true: off </br> | ||||
| 	 *                     false: on | ||||
| 	 * @param eventName    the path of the event class | ||||
| 	 * @since Envoy v0.3-alpha | ||||
| 	 */ | ||||
| 	@SuppressWarnings({ "rawtypes", "unused" }) | ||||
| @@ -45,38 +45,36 @@ public class PrimaryToggleSwitch extends JPanel{ | ||||
| 		super(); | ||||
| 		setEnabled(true); | ||||
| 		setVisible(true); | ||||
| 		this.initialState = initialState; | ||||
| 		 | ||||
|  | ||||
| 		setPreferredSize(new Dimension(50, 25)); | ||||
| 		setMinimumSize(new Dimension(50, 25)); | ||||
| 		setMaximumSize(new Dimension(50, 25)); | ||||
| 		 | ||||
|  | ||||
| 		b.setPreferredSize(new Dimension(25, 25)); | ||||
| 		b.setMinimumSize(new Dimension(25, 25)); | ||||
| 		b.setMaximumSize(new Dimension(25, 25)); | ||||
| 		 | ||||
| 		b.setBackground(Settings.getInstance().getThemes() | ||||
| 		.get(Settings.getInstance().getCurrentTheme()).getInteractableBackgroundColor()); | ||||
| 		 | ||||
|  | ||||
| 		b.setBackground(Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme()).getInteractableBackgroundColor()); | ||||
|  | ||||
| 		GridBagLayout gbl_toggleSwitch = new GridBagLayout(); | ||||
| 		gbl_toggleSwitch.columnWidths = new int[] { 1, 1 }; | ||||
| 		gbl_toggleSwitch.rowHeights = new int[] { 1}; | ||||
| 		gbl_toggleSwitch.columnWeights = new double[] { 1.0, 1.0 }; | ||||
| 		gbl_toggleSwitch.rowWeights = new double[] {1.0 }; | ||||
| 		gbl_toggleSwitch.columnWidths	= new int[] { 1, 1 }; | ||||
| 		gbl_toggleSwitch.rowHeights		= new int[] { 1 }; | ||||
| 		gbl_toggleSwitch.columnWeights	= new double[] { 1.0, 1.0 }; | ||||
| 		gbl_toggleSwitch.rowWeights		= new double[] { 1.0 }; | ||||
|  | ||||
| 		setLayout(gbl_toggleSwitch); | ||||
| 		 | ||||
|  | ||||
| 		setState(initialState); | ||||
| 		 | ||||
|  | ||||
| 		b.addActionListener((evt) -> { | ||||
| 			try { | ||||
| 				Class<?> c = Class.forName(eventName); | ||||
| 				Class[] types = {int.class}; | ||||
| 				Constructor constructor = c.getConstructor(types); | ||||
| 				 | ||||
| 				Object[] parameters = {variable}; | ||||
| 				Object instanceOfC = constructor.newInstance(parameters); | ||||
| 				 | ||||
| 				Class<?>	c			= Class.forName(eventName); | ||||
| 				Class[]		types		= { int.class }; | ||||
| 				Constructor	constructor	= c.getConstructor(types); | ||||
|  | ||||
| 				Object[]	parameters	= { variable }; | ||||
| 				Object		instanceOfC	= constructor.newInstance(parameters); | ||||
|  | ||||
| 				EventBus.getInstance().dispatch((Event<?>) constructor.newInstance(parameters)); | ||||
| 				setState(!currentState); | ||||
| 				this.revalidate(); | ||||
| @@ -86,42 +84,45 @@ public class PrimaryToggleSwitch extends JPanel{ | ||||
| 				e.printStackTrace(); | ||||
| 			} | ||||
| 		}); | ||||
| 		 | ||||
|  | ||||
| 		repaint(); | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	public void paintComponent(Graphics g) { | ||||
| 		g.setColor(Color.LIGHT_GRAY); | ||||
| 		g.fillRect(0, 0, 50, 25); | ||||
| 		g.setColor(Color.GREEN); | ||||
| 		g.fillRect(0, 0, 25, 25); | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	/** | ||||
| 	 * This method sets the state of the {@link PrimaryToggleSwitch}. | ||||
| 	 *  | ||||
| 	 * @param state This is the state of the {@link PrimaryToggleSwitch}, that should be set. </br> true: off </br> false: on | ||||
| 	 * @param state This is the state of the {@link PrimaryToggleSwitch}, that | ||||
| 	 *              should be set. </br> | ||||
| 	 *              true: off </br> | ||||
| 	 *              false: on | ||||
| 	 * @since Envoy 0.3-alpha | ||||
| 	 */ | ||||
| 	public void setState (boolean state){ | ||||
| 		if(state) { | ||||
| 	public void setState(boolean state) { | ||||
| 		if (state) { | ||||
| 			GridBagConstraints gbc_toggleButton = new GridBagConstraints(); | ||||
| 			gbc_toggleButton.anchor = GridBagConstraints.WEST; | ||||
| 			gbc_toggleButton.gridx = 0; | ||||
| 			gbc_toggleButton.gridy = 0; | ||||
| 			 | ||||
| 			add(b, gbc_toggleButton);  | ||||
| 			currentState = true; | ||||
| 			variable = 1; | ||||
| 		}else { | ||||
| 			GridBagConstraints gbc_toggleButton = new GridBagConstraints(); | ||||
| 			gbc_toggleButton.anchor = GridBagConstraints.EAST; | ||||
| 			gbc_toggleButton.gridx = 1; | ||||
| 			gbc_toggleButton.gridy = 0; | ||||
| 			 | ||||
| 			gbc_toggleButton.anchor	= GridBagConstraints.WEST; | ||||
| 			gbc_toggleButton.gridx	= 0; | ||||
| 			gbc_toggleButton.gridy	= 0; | ||||
|  | ||||
| 			add(b, gbc_toggleButton); | ||||
| 			currentState = false; | ||||
| 			variable = 0; | ||||
| 			currentState	= true; | ||||
| 			variable		= 1; | ||||
| 		} else { | ||||
| 			GridBagConstraints gbc_toggleButton = new GridBagConstraints(); | ||||
| 			gbc_toggleButton.anchor	= GridBagConstraints.EAST; | ||||
| 			gbc_toggleButton.gridx	= 1; | ||||
| 			gbc_toggleButton.gridy	= 0; | ||||
|  | ||||
| 			add(b, gbc_toggleButton); | ||||
| 			currentState	= false; | ||||
| 			variable		= 0; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -132,12 +132,12 @@ public class Startup { | ||||
| 					new StatusTrayIcon(chatWindow).show(); | ||||
|  | ||||
| 					// If the tray icon is supported, hide the chat window on close | ||||
| 					if(Settings.getInstance().getCurrentOnCloseMode() == 1) { | ||||
| 					if (Settings.getInstance().getCurrentOnCloseMode() == 1) { | ||||
| 						chatWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); | ||||
| 					}else { | ||||
| 					} else { | ||||
| 						chatWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||||
| 					} | ||||
| 					 | ||||
|  | ||||
| 				} catch (EnvoyException e) { | ||||
| 					logger.warning("The StatusTrayIcon is not supported on this platform!"); | ||||
| 				} | ||||
|   | ||||
| @@ -4,8 +4,6 @@ import java.awt.GridBagConstraints; | ||||
| import java.awt.GridBagLayout; | ||||
| import java.awt.Insets; | ||||
| import java.awt.event.ActionListener; | ||||
| import java.util.Arrays; | ||||
| import java.util.logging.Level; | ||||
| import java.util.logging.Logger; | ||||
|  | ||||
| import javax.swing.JOptionPane; | ||||
| @@ -14,7 +12,6 @@ import javax.swing.JTextPane; | ||||
| import envoy.client.Settings; | ||||
| import envoy.client.event.EventBus; | ||||
| import envoy.client.event.OnCloseChangeEvent; | ||||
| import envoy.client.event.ThemeChangeEvent; | ||||
| import envoy.client.ui.PrimaryToggleSwitch; | ||||
| import envoy.client.ui.Theme; | ||||
| import envoy.client.util.EnvoyLog; | ||||
| @@ -31,98 +28,101 @@ import envoy.client.util.EnvoyLog; | ||||
|  * @since Envoy v0.3-alpha | ||||
|  */ | ||||
| public class General extends SettingsPanel { | ||||
| 	 | ||||
| 	private static final long serialVersionUID = -7470848775130754239L; | ||||
| 	private static final Logger logger = EnvoyLog.getLogger(General.class.getSimpleName()); | ||||
| 	 | ||||
|  | ||||
| 	private static final long	serialVersionUID	= -7470848775130754239L; | ||||
| 	private static final Logger	logger				= EnvoyLog.getLogger(General.class.getSimpleName()); | ||||
|  | ||||
| 	private int state; | ||||
| 	 | ||||
| 	PrimaryToggleSwitch toggleSwitch; | ||||
| 	JTextPane onCloseModeText = new JTextPane(); | ||||
| 	JTextPane onCloseModeState = new JTextPane(); | ||||
| 	 | ||||
|  | ||||
| 	PrimaryToggleSwitch	toggleSwitch; | ||||
| 	JTextPane			onCloseModeText		= new JTextPane(); | ||||
| 	JTextPane			onCloseModeState	= new JTextPane(); | ||||
|  | ||||
| 	/** | ||||
| 	 * This is the constructor for the General class. Here the user can set general settings for the client. | ||||
| 	 * This is the constructor for the General class. Here the user can set general | ||||
| 	 * settings for the client. | ||||
| 	 *  | ||||
| 	 * @since Envoy 0.3-alpha | ||||
| 	 */ | ||||
| 	public General() { | ||||
| 		Theme theme = Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme()); | ||||
| 		 | ||||
|  | ||||
| 		state = Settings.getInstance().getCurrentOnCloseMode(); | ||||
| 		if(state == 1) { | ||||
| 			toggleSwitch = new PrimaryToggleSwitch(false,"envoy.client.event.OnCloseChangeEvent"); | ||||
| 		}else { | ||||
| 			toggleSwitch = new PrimaryToggleSwitch(true,"envoy.client.event.OnCloseChangeEvent"); | ||||
| 		if (state == 1) { | ||||
| 			toggleSwitch = new PrimaryToggleSwitch(false, "envoy.client.event.OnCloseChangeEvent"); | ||||
| 		} else { | ||||
| 			toggleSwitch = new PrimaryToggleSwitch(true, "envoy.client.event.OnCloseChangeEvent"); | ||||
| 		} | ||||
| 		 | ||||
|  | ||||
| 		setBackground(theme.getCellColor()); | ||||
| 		 | ||||
|  | ||||
| 		GridBagLayout gbl_general = new GridBagLayout(); | ||||
| 		gbl_general.columnWidths = new int[] { 1, 1}; | ||||
| 		gbl_general.rowHeights = new int[] { 1, 1, 1 }; | ||||
| 		gbl_general.columnWeights = new double[] { 1.0, 0.1}; | ||||
| 		gbl_general.rowWeights = new double[] { 0.02, 0.0005, 1.0 }; | ||||
| 		gbl_general.columnWidths	= new int[] { 1, 1 }; | ||||
| 		gbl_general.rowHeights		= new int[] { 1, 1, 1 }; | ||||
| 		gbl_general.columnWeights	= new double[] { 1.0, 0.1 }; | ||||
| 		gbl_general.rowWeights		= new double[] { 0.02, 0.0005, 1.0 }; | ||||
|  | ||||
| 		setLayout(gbl_general); | ||||
| 		 | ||||
|  | ||||
| 		GridBagConstraints gbc_toggleSwitch = new GridBagConstraints(); | ||||
| 		gbc_toggleSwitch.gridx = 1; | ||||
| 		gbc_toggleSwitch.gridy = 0; | ||||
| 		gbc_toggleSwitch.gridx	= 1; | ||||
| 		gbc_toggleSwitch.gridy	= 0; | ||||
|  | ||||
| 		add(toggleSwitch, gbc_toggleSwitch); | ||||
| 		 | ||||
| 		if(state == 0) { | ||||
|  | ||||
| 		if (state == 0) { | ||||
| 			onCloseModeState.setText("OFF"); | ||||
| 		}else { | ||||
| 		} else { | ||||
| 			onCloseModeState.setText("ON"); | ||||
| 		} | ||||
| 		 | ||||
|  | ||||
| 		onCloseModeState.setBackground(theme.getCellColor()); | ||||
| 		onCloseModeState.setForeground(theme.getUserNameColor()); | ||||
| 		 | ||||
|  | ||||
| 		GridBagConstraints gbc_onCloseModeState = new GridBagConstraints(); | ||||
| 		gbc_onCloseModeState.anchor = GridBagConstraints.NORTH; | ||||
| 		gbc_onCloseModeState.gridx = 1; | ||||
| 		gbc_onCloseModeState.gridy = 1; | ||||
| 		gbc_onCloseModeState.anchor	= GridBagConstraints.NORTH; | ||||
| 		gbc_onCloseModeState.gridx	= 1; | ||||
| 		gbc_onCloseModeState.gridy	= 1; | ||||
|  | ||||
| 		add(onCloseModeState, gbc_onCloseModeState); | ||||
| 		 | ||||
|  | ||||
| 		onCloseModeText.setText("Client runs in the background, when window is closed"); | ||||
| 		onCloseModeText.setBackground(theme.getBackgroundColor()); | ||||
| 		//TODO: Change to inverted color. | ||||
| 		// TODO: Change to inverted color. | ||||
| 		onCloseModeText.setForeground(theme.getUserNameColor()); | ||||
| 		 | ||||
|  | ||||
| 		GridBagConstraints gbc_onCloseModeText = new GridBagConstraints(); | ||||
| 		gbc_onCloseModeText.fill = GridBagConstraints.BOTH; | ||||
| 		gbc_onCloseModeText.gridx = 0; | ||||
| 		gbc_onCloseModeText.gridy = 0; | ||||
| 		gbc_onCloseModeText.gridheight = 2; | ||||
| 		gbc_onCloseModeText.insets = new Insets(5, 5, 5, 5); | ||||
| 		gbc_onCloseModeText.fill		= GridBagConstraints.BOTH; | ||||
| 		gbc_onCloseModeText.gridx		= 0; | ||||
| 		gbc_onCloseModeText.gridy		= 0; | ||||
| 		gbc_onCloseModeText.gridheight	= 2; | ||||
| 		gbc_onCloseModeText.insets		= new Insets(5, 5, 5, 5); | ||||
|  | ||||
| 		add(onCloseModeText, gbc_onCloseModeText); | ||||
| 		 | ||||
|  | ||||
| 		EventBus.getInstance().register(OnCloseChangeEvent.class, (evt) -> changeOnClose(((OnCloseChangeEvent) evt).get())); | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	/** | ||||
| 	 * This method changes the on close mode of the client. | ||||
| 	 *  | ||||
| 	 * @param state This is the integer that defines weather the toggleSwitch is on or off. | ||||
| 	 * @param state This is the integer that defines weather the toggleSwitch is on | ||||
| 	 *              or off. | ||||
| 	 * @since Envoy v0.3-alpha | ||||
| 	 */ | ||||
| 	public void changeOnClose(int state) { | ||||
| 		System.out.println(state); | ||||
| 		this.state = state; | ||||
| 		 | ||||
| 		if(state == 0) { | ||||
|  | ||||
| 		if (state == 0) { | ||||
| 			onCloseModeState.setText("OFF"); | ||||
| 		}else { | ||||
| 		} else { | ||||
| 			onCloseModeState.setText("ON"); | ||||
| 		} | ||||
| 		this.revalidate(); | ||||
| 		this.repaint(); | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	@Override | ||||
| 	public ActionListener getOkButtonAction() { | ||||
| 		return (evt) -> { | ||||
| @@ -130,7 +130,7 @@ public class General extends SettingsPanel { | ||||
| 				try { | ||||
| 					Settings.getInstance().setCurrentOnCloseMode(state); | ||||
| 					JOptionPane.showMessageDialog(null, "The changes will take effect the next time the program is started."); | ||||
| 					} catch (Exception e) { | ||||
| 				} catch (Exception e) { | ||||
| 					logger.info("Close mode could not be changed! " + e); | ||||
| 					e.printStackTrace(); | ||||
| 				} | ||||
|   | ||||
| @@ -34,10 +34,10 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
|  | ||||
| 	private JPanel colorsPanel = new JPanel(); | ||||
|  | ||||
| 	private String[] themeArray = Settings.getInstance().getThemes().keySet().toArray(new String[0]); | ||||
| 	private JComboBox<String> themes = new JComboBox<>(themeArray); | ||||
| 	private Theme temporaryTheme, selectedTheme; | ||||
| 	private boolean themeChanged = false; | ||||
| 	private String[]			themeArray		= Settings.getInstance().getThemes().keySet().toArray(new String[0]); | ||||
| 	private JComboBox<String>	themes			= new JComboBox<>(themeArray); | ||||
| 	private Theme				temporaryTheme, selectedTheme; | ||||
| 	private boolean				themeChanged	= false; | ||||
|  | ||||
| 	private final Insets insets = new Insets(5, 5, 5, 5); | ||||
|  | ||||
| @@ -51,15 +51,14 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 	 * @since Envoy v0.2-alpha | ||||
| 	 */ | ||||
| 	public ThemeCustomizationPanel() { | ||||
| 		temporaryTheme = new Theme("temporaryTheme", | ||||
| 				Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme())); | ||||
| 		temporaryTheme = new Theme("temporaryTheme", Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme())); | ||||
|  | ||||
| 		GridBagLayout gbl_themeLayout = new GridBagLayout(); | ||||
|  | ||||
| 		gbl_themeLayout.columnWidths = new int[] { 1, 1 }; | ||||
| 		gbl_themeLayout.rowHeights = new int[] { 1, 1 }; | ||||
| 		gbl_themeLayout.columnWeights = new double[] { 1.0, 1.0 }; | ||||
| 		gbl_themeLayout.rowWeights = new double[] { 0.01, 1.0 }; | ||||
| 		gbl_themeLayout.columnWidths	= new int[] { 1, 1 }; | ||||
| 		gbl_themeLayout.rowHeights		= new int[] { 1, 1 }; | ||||
| 		gbl_themeLayout.columnWeights	= new double[] { 1.0, 1.0 }; | ||||
| 		gbl_themeLayout.rowWeights		= new double[] { 0.01, 1.0 }; | ||||
|  | ||||
| 		setLayout(gbl_themeLayout); | ||||
|  | ||||
| @@ -76,20 +75,20 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 		}); | ||||
|  | ||||
| 		GridBagConstraints gbc_themes = new GridBagConstraints(); | ||||
| 		gbc_themes.fill = GridBagConstraints.HORIZONTAL; | ||||
| 		gbc_themes.gridwidth = 2; | ||||
| 		gbc_themes.gridx = 0; | ||||
| 		gbc_themes.gridy = 0; | ||||
| 		gbc_themes.anchor = GridBagConstraints.NORTHWEST; | ||||
| 		gbc_themes.insets = new Insets(10, 10, 20, 10); | ||||
| 		gbc_themes.fill			= GridBagConstraints.HORIZONTAL; | ||||
| 		gbc_themes.gridwidth	= 2; | ||||
| 		gbc_themes.gridx		= 0; | ||||
| 		gbc_themes.gridy		= 0; | ||||
| 		gbc_themes.anchor		= GridBagConstraints.NORTHWEST; | ||||
| 		gbc_themes.insets		= new Insets(10, 10, 20, 10); | ||||
|  | ||||
| 		add(themes, gbc_themes); | ||||
| 		GridBagLayout gbl_colorCustomizations = new GridBagLayout(); | ||||
|  | ||||
| 		gbl_colorCustomizations.columnWidths = new int[] { 1, 1 }; | ||||
| 		gbl_colorCustomizations.rowHeights = new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }; | ||||
| 		gbl_colorCustomizations.columnWeights = new double[] { 1, 1 }; | ||||
| 		gbl_colorCustomizations.rowWeights = new double[] { 1, 1, 1, 1, 1, 1, 1, 1 }; | ||||
| 		gbl_colorCustomizations.columnWidths	= new int[] { 1, 1 }; | ||||
| 		gbl_colorCustomizations.rowHeights		= new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }; | ||||
| 		gbl_colorCustomizations.columnWeights	= new double[] { 1, 1 }; | ||||
| 		gbl_colorCustomizations.rowWeights		= new double[] { 1, 1, 1, 1, 1, 1, 1, 1 }; | ||||
|  | ||||
| 		colorsPanel.setLayout(gbl_colorCustomizations); | ||||
|  | ||||
| @@ -97,12 +96,12 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 		buildCustomizeElements(theme); | ||||
|  | ||||
| 		GridBagConstraints gbc_colorsPanel = new GridBagConstraints(); | ||||
| 		gbc_colorsPanel.fill = GridBagConstraints.HORIZONTAL; | ||||
| 		gbc_colorsPanel.gridx = 0; | ||||
| 		gbc_colorsPanel.gridy = 1; | ||||
| 		gbc_colorsPanel.gridwidth = 2; | ||||
| 		gbc_colorsPanel.anchor = GridBagConstraints.NORTHWEST; | ||||
| 		gbc_colorsPanel.insets = insets; | ||||
| 		gbc_colorsPanel.fill		= GridBagConstraints.HORIZONTAL; | ||||
| 		gbc_colorsPanel.gridx		= 0; | ||||
| 		gbc_colorsPanel.gridy		= 1; | ||||
| 		gbc_colorsPanel.gridwidth	= 2; | ||||
| 		gbc_colorsPanel.anchor		= GridBagConstraints.NORTHWEST; | ||||
| 		gbc_colorsPanel.insets		= insets; | ||||
|  | ||||
| 		add(colorsPanel, gbc_colorsPanel); | ||||
| 		colorsPanel.setBackground(theme.getCellColor()); | ||||
| @@ -122,11 +121,10 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 					String name = JOptionPane.showInputDialog("Enter a name for the new theme"); | ||||
| 					logger.log(Level.FINEST, name); | ||||
| 					Settings.getInstance().addNewThemeToMap(new Theme(name, temporaryTheme)); | ||||
| 					themeArray = Arrays.copyOf(themeArray, themeArray.length + 1); | ||||
| 					themeArray[themeArray.length - 1] = Settings.getInstance().getThemes().get(name).getThemeName(); | ||||
| 					themeArray							= Arrays.copyOf(themeArray, themeArray.length + 1); | ||||
| 					themeArray[themeArray.length - 1]	= Settings.getInstance().getThemes().get(name).getThemeName(); | ||||
|  | ||||
| 					temporaryTheme = new Theme("temporaryTheme", | ||||
| 							Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme())); | ||||
| 					temporaryTheme = new Theme("temporaryTheme", Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme())); | ||||
|  | ||||
| 					themes.addItem(themeArray[themeArray.length - 1]); | ||||
| 					themes.setSelectedIndex(themeArray.length - 1); | ||||
| @@ -172,10 +170,8 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 	private void buildCustomizeElements(Theme theme) { | ||||
| 		buildCustomizeElement(theme, theme.getBackgroundColor(), "Background", "backgroundColor", 1); | ||||
| 		buildCustomizeElement(theme, theme.getCellColor(), "Cells", "cellColor", 2); | ||||
| 		buildCustomizeElement(theme, theme.getInteractableForegroundColor(), "Interactable Foreground", | ||||
| 				"interactableForegroundColor", 3); | ||||
| 		buildCustomizeElement(theme, theme.getInteractableBackgroundColor(), "Interactable Background", | ||||
| 				"interactableBackgroundColor", 4); | ||||
| 		buildCustomizeElement(theme, theme.getInteractableForegroundColor(), "Interactable Foreground", "interactableForegroundColor", 3); | ||||
| 		buildCustomizeElement(theme, theme.getInteractableBackgroundColor(), "Interactable Background", "interactableBackgroundColor", 4); | ||||
| 		buildCustomizeElement(theme, theme.getMessageColorChat(), "Messages Chat", "messageColorChat", 5); | ||||
| 		buildCustomizeElement(theme, theme.getDateColorChat(), "Date Chat", "dateColorCat", 6); | ||||
| 		buildCustomizeElement(theme, theme.getSelectionColor(), "Selection", "selectionColor", 7); | ||||
| @@ -184,8 +180,8 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 	} | ||||
|  | ||||
| 	private void buildCustomizeElement(Theme theme, Color color, String name, String colorName, int gridy) { | ||||
| 		JButton button = new JButton(); | ||||
| 		JTextPane textPane = new JTextPane(); | ||||
| 		JButton		button		= new JButton(); | ||||
| 		JTextPane	textPane	= new JTextPane(); | ||||
|  | ||||
| 		textPane.setFont(new Font("Arial", Font.PLAIN, 14)); | ||||
| 		textPane.setBackground(theme.getBackgroundColor()); | ||||
| @@ -215,25 +211,23 @@ public class ThemeCustomizationPanel extends SettingsPanel { | ||||
| 		}); | ||||
|  | ||||
| 		GridBagConstraints gbc_textPane = new GridBagConstraints(); | ||||
| 		gbc_textPane.fill = GridBagConstraints.BOTH; | ||||
| 		gbc_textPane.gridx = 0; | ||||
| 		gbc_textPane.gridy = gridy; | ||||
| 		gbc_textPane.anchor = GridBagConstraints.CENTER; | ||||
| 		gbc_textPane.insets = insets; | ||||
| 		gbc_textPane.fill	= GridBagConstraints.BOTH; | ||||
| 		gbc_textPane.gridx	= 0; | ||||
| 		gbc_textPane.gridy	= gridy; | ||||
| 		gbc_textPane.anchor	= GridBagConstraints.CENTER; | ||||
| 		gbc_textPane.insets	= insets; | ||||
|  | ||||
| 		colorsPanel.add(textPane, gbc_textPane); | ||||
|  | ||||
| 		GridBagConstraints gbc_button = new GridBagConstraints(); | ||||
| 		gbc_button.fill = GridBagConstraints.BOTH; | ||||
| 		gbc_button.gridx = 1; | ||||
| 		gbc_button.gridy = gridy; | ||||
| 		gbc_button.anchor = GridBagConstraints.CENTER; | ||||
| 		gbc_button.insets = insets; | ||||
| 		gbc_button.fill		= GridBagConstraints.BOTH; | ||||
| 		gbc_button.gridx	= 1; | ||||
| 		gbc_button.gridy	= gridy; | ||||
| 		gbc_button.anchor	= GridBagConstraints.CENTER; | ||||
| 		gbc_button.insets	= insets; | ||||
|  | ||||
| 		colorsPanel.add(button, gbc_button); | ||||
| 	} | ||||
|  | ||||
| 	private Color getInvertedColor(Color color) { | ||||
| 		return new Color(255 - color.getRed(), 255 - color.getGreen(), 255 - color.getBlue()); | ||||
| 	} | ||||
| 	private Color getInvertedColor(Color color) { return new Color(255 - color.getRed(), 255 - color.getGreen(), 255 - color.getBlue()); } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 DieGurke
					DieGurke