Working on message scaling
This commit is contained in:
		@@ -131,7 +131,13 @@ public class ChatWindow extends JFrame {
 | 
			
		||||
 | 
			
		||||
			// updates list elements when list is resized
 | 
			
		||||
			@Override
 | 
			
		||||
			public void componentResized(ComponentEvent e) { messageList.synchronizeModel(); }
 | 
			
		||||
			public void componentResized(ComponentEvent e) {
 | 
			
		||||
				messageList.synchronizeModel();
 | 
			
		||||
				var prefSize = e.getComponent().getPreferredSize();
 | 
			
		||||
				messageList.setMinimumSize(new Dimension(prefSize.width, 0));
 | 
			
		||||
				messageList.setMaximumSize(new Dimension(prefSize.width, Integer.MAX_VALUE));
 | 
			
		||||
				messageList.setPreferredSize(new Dimension(prefSize.width, messageList.getPreferredSize().height));
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -30,10 +30,12 @@ import envoy.data.Message.MessageStatus;
 | 
			
		||||
public class MessageListRenderer implements ComponentListCellRenderer<Message> {
 | 
			
		||||
 | 
			
		||||
	private static EnumMap<MessageStatus, ImageIcon> statusIcons;
 | 
			
		||||
	private static ImageIcon							forwardIcon;
 | 
			
		||||
 | 
			
		||||
	static {
 | 
			
		||||
		try {
 | 
			
		||||
			statusIcons = IconUtil.loadByEnum(MessageStatus.class, 16);
 | 
			
		||||
			// forwardIcon = IconUtil.load("icons/forward.png", 16);
 | 
			
		||||
		} catch (IOException e) {
 | 
			
		||||
			e.printStackTrace();
 | 
			
		||||
		}
 | 
			
		||||
@@ -46,7 +48,8 @@ public class MessageListRenderer implements ComponentListCellRenderer<Message> {
 | 
			
		||||
		final var theme = Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme());
 | 
			
		||||
 | 
			
		||||
		// Panel
 | 
			
		||||
		final var panel = new JPanel();
 | 
			
		||||
		final var	panel	= new JPanel();
 | 
			
		||||
		final int	padding	= (int) (list.getWidth() * 0.35);
 | 
			
		||||
 | 
			
		||||
		GridBagLayout gbl_panel = new GridBagLayout();
 | 
			
		||||
		gbl_panel.columnWidths	= new int[] { 1, 1 };
 | 
			
		||||
@@ -76,10 +79,14 @@ public class MessageListRenderer implements ComponentListCellRenderer<Message> {
 | 
			
		||||
		messageTextArea.setWrapStyleWord(true);
 | 
			
		||||
		messageTextArea.setForeground(theme.getMessageTextColor());
 | 
			
		||||
		messageTextArea.setAlignmentX(0.5f);
 | 
			
		||||
		messageTextArea.setBackground(Color.red);
 | 
			
		||||
		messageTextArea.setBackground(theme.getCellColor());
 | 
			
		||||
		messageTextArea.setEditable(false);
 | 
			
		||||
		messageTextArea.setFont(new Font("Arial", Font.PLAIN, 14));
 | 
			
		||||
		messageTextArea.setSize(list.getWidth() - 1, 200);
 | 
			
		||||
		var font = new Font("Arial", Font.PLAIN, 14);
 | 
			
		||||
		messageTextArea.setFont(font);
 | 
			
		||||
		// var frc = new FontRenderContext(new AffineTransform(), true, true);
 | 
			
		||||
		// messageTextArea.setSize(Math.min(list.getWidth() - padding, (int)
 | 
			
		||||
		// font.getStringBounds(message.getText(), frc).getWidth()), 10);
 | 
			
		||||
		messageTextArea.setSize(list.getWidth() - padding, 10);
 | 
			
		||||
 | 
			
		||||
		var gbc_messageTextArea = new GridBagConstraints();
 | 
			
		||||
		gbc_messageTextArea.fill	= GridBagConstraints.HORIZONTAL;
 | 
			
		||||
@@ -110,13 +117,10 @@ public class MessageListRenderer implements ComponentListCellRenderer<Message> {
 | 
			
		||||
			panel.add(forwardLabel, gbc_forwardLabel);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		int padding = (int) (list.getWidth() * 0.35);
 | 
			
		||||
		// Define an etched border and some space to the messages below
 | 
			
		||||
		panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 20, padding), BorderFactory.createEtchedBorder()));
 | 
			
		||||
 | 
			
		||||
		// Define some space to the messages below
 | 
			
		||||
		panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 0, padding),
 | 
			
		||||
				BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(), BorderFactory.createEtchedBorder())));
 | 
			
		||||
 | 
			
		||||
		var size = new Dimension(list.getWidth() - 50, panel.getPreferredSize().height);
 | 
			
		||||
		var size = new Dimension(list.getWidth(), panel.getPreferredSize().height);
 | 
			
		||||
 | 
			
		||||
		panel.setPreferredSize(size);
 | 
			
		||||
		panel.setMinimumSize(size);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user