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