Introduced single source image display
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 9 May 2022 04:48:50 +0000 (06:48 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 9 May 2022 04:48:50 +0000 (06:48 +0200)
rap/org.argeo.swt.specific.rap/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java [new file with mode: 0644]
rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java [new file with mode: 0644]

diff --git a/rap/org.argeo.swt.specific.rap/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java b/rap/org.argeo.swt.specific.rap/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java
new file mode 100644 (file)
index 0000000..ac4e0df
--- /dev/null
@@ -0,0 +1,20 @@
+package org.argeo.eclipse.ui.specific;
+
+import java.awt.image.BufferedImage;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+public class BufferedImageDisplay extends Composite {
+       private static final long serialVersionUID = 4541163690514461514L;
+       private BufferedImage image;
+
+       public BufferedImageDisplay(Composite parent, int style) {
+               super(parent, SWT.NO_BACKGROUND);
+       }
+
+       public void setImage(BufferedImage image) {
+               this.image = image;
+       }
+
+}
diff --git a/rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java b/rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/specific/BufferedImageDisplay.java
new file mode 100644 (file)
index 0000000..7fd2db1
--- /dev/null
@@ -0,0 +1,38 @@
+package org.argeo.eclipse.ui.specific;
+
+import java.awt.BorderLayout;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.image.BufferedImage;
+
+import javax.swing.JPanel;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.awt.SWT_AWT;
+import org.eclipse.swt.widgets.Composite;
+
+public class BufferedImageDisplay extends Composite {
+       private BufferedImage image;
+
+       public BufferedImageDisplay(Composite parent, int style) {
+               super(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
+               Frame frame = SWT_AWT.new_Frame(this);
+               frame.setLayout(new BorderLayout());
+               frame.add(new JPanel() {
+                       private static final long serialVersionUID = 8924410573598922364L;
+
+                       public void paintComponent(Graphics g) {
+                               super.paintComponent(g);
+                               if (image != null)
+                                       g.drawImage(image, 0, 0, this);
+                       }
+
+               }, BorderLayout.CENTER);
+               frame.setVisible(true);
+       }
+
+       public void setImage(BufferedImage image) {
+               this.image = image;
+       }
+
+}