From aea6d9b7d57ab6d79a3f62a5ebb4281165cf3b54 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Tue, 31 May 2022 21:05:33 +0100 Subject: [PATCH] fix display of fetched profile image --- .../muwire/gui/profile/ViewProfileView.groovy | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gui/griffon-app/views/com/muwire/gui/profile/ViewProfileView.groovy b/gui/griffon-app/views/com/muwire/gui/profile/ViewProfileView.groovy index 00daa07d..ca3d6089 100644 --- a/gui/griffon-app/views/com/muwire/gui/profile/ViewProfileView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/profile/ViewProfileView.groovy @@ -7,6 +7,7 @@ import javax.imageio.ImageIO import javax.swing.JLabel import javax.swing.JPanel import javax.swing.JTextArea +import javax.swing.SwingUtilities import javax.swing.border.TitledBorder import java.awt.BorderLayout import java.awt.Dimension @@ -72,10 +73,12 @@ class ViewProfileView { gridLayout(rows: 1, cols: 2) panel(border: titledBorder(title: trans("PROFILE_VIEWER_AVATAR"), border: etchedBorder(), titlePosition: TitledBorder.TOP)) { + gridLayout(rows: 1, cols: 1) imagePanel = panel() } panel(border: titledBorder(title: trans("PROFILE_VIEWER_PROFILE"), border: etchedBorder(), titlePosition: TitledBorder.TOP)) { + gridLayout(rows: 1, cols: 1) scrollPane { bodyArea = textArea(editable: false, lineWrap: true, wrapStyleWord: true) } @@ -119,14 +122,16 @@ class ViewProfileView { mainPanel.getLayout().show(mainPanel, "full-profile") titleLabel.setText(HTMLSanitizer.sanitize(profile.getHeader().getTitle())) bodyArea.setText(profile.getBody()) - + def rawImage = ImageIO.read(new ByteArrayInputStream(profile.getImage())) def mainImage = ImageScaler.scaleToMax(rawImage) - - def imgDim = imagePanel.getSize() - imagePanel.getGraphics().drawImage(mainImage, - (int)(imgDim.getWidth() / 2) - (int)(mainImage.getWidth() / 2), - (int)(imgDim.getHeight() / 2) - (int)(mainImage.getHeight() / 2), - null) + + SwingUtilities.invokeLater { + def imgDim = imagePanel.getSize() + imagePanel.getGraphics().drawImage(mainImage, + (int) (imgDim.getWidth() / 2) - (int) (mainImage.getWidth() / 2), + (int) (imgDim.getHeight() / 2) - (int) (mainImage.getHeight() / 2), + null) + } as Runnable } }