]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram.connection/tests/org/simantics/diagram/connection/tests/ImageViewer.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram.connection / tests / org / simantics / diagram / connection / tests / ImageViewer.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
3  * Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.diagram.connection.tests;\r
13 \r
14 import java.awt.Frame;\r
15 import java.awt.Graphics;\r
16 import java.awt.HeadlessException;\r
17 import java.awt.Image;\r
18 import java.awt.event.WindowAdapter;\r
19 import java.awt.event.WindowEvent;\r
20 import java.util.concurrent.Semaphore;\r
21 \r
22 public class ImageViewer extends Frame {\r
23 \r
24     private static final long serialVersionUID = -5587530298886724404L;\r
25     \r
26     Image image;\r
27     Semaphore sem = new Semaphore(0);\r
28     \r
29     public ImageViewer(Image image) throws HeadlessException {\r
30         this.image = image;\r
31         \r
32         addWindowListener(new WindowAdapter() {\r
33             @Override\r
34             public void windowClosing(WindowEvent e) {\r
35                 dispose();\r
36                 sem.release();\r
37             }\r
38         });\r
39     }\r
40 \r
41     @Override\r
42     public void paint(Graphics g) {\r
43         g.drawImage(image, 0, 0, null);\r
44     }\r
45 \r
46     public static void run(Image image) {\r
47         ImageViewer frame = new ImageViewer(image);\r
48         \r
49         frame.setSize(image.getWidth(null), image.getHeight(null));\r
50         frame.setVisible(true);\r
51         \r
52         try {\r
53             frame.sem.acquire();\r
54         } catch (InterruptedException e) {\r
55             e.printStackTrace();\r
56         }\r
57     }\r
58     \r
59 }\r