EMMA Coverage Report (generated Sat Oct 08 11:41:37 CEST 2011)
[all classes][net.sf.jomic.ui]

COVERAGE SUMMARY FOR SOURCE FILE [RenderedImageView.java]

nameclass, %method, %block, %line, %
RenderedImageView.java100% (1/1)100% (4/4)88%  (112/127)93%  (22.4/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class RenderedImageView100% (1/1)100% (4/4)88%  (112/127)93%  (22.4/24)
set (RenderedImage): void 100% (1/1)76%  (16/21)95%  (5.7/6)
getPreferredSize (): Dimension 100% (1/1)86%  (30/35)90%  (5.4/6)
paintComponent (Graphics): void 100% (1/1)90%  (45/50)93%  (8.4/9)
RenderedImageView (): void 100% (1/1)100% (21/21)100% (3/3)

1// Jomic - a viewer for comic book archives.
2// Copyright (C) 2004-2011 Thomas Aglassinger
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <http://www.gnu.org/licenses/>.
16package net.sf.jomic.ui;
17 
18import java.awt.Dimension;
19import java.awt.Graphics;
20import java.awt.Graphics2D;
21import java.awt.geom.AffineTransform;
22import java.awt.image.RenderedImage;
23 
24import javax.swing.JComponent;
25 
26/**
27 *  JComponent to show a RenderedImage.
28 *
29 * @author    Thomas Aglassinger
30 */
31public class RenderedImageView extends JComponent
32{
33    private RenderedImage image;
34    private Object setMutex = RenderedImageView.class.getName() + ".setMutex";
35 
36    public RenderedImageView() {
37        super();
38    }
39 
40    public void set(RenderedImage newImage) {
41        synchronized (setMutex) {
42            image = newImage;
43        }
44        revalidate();
45        repaint();
46    }
47 
48    public Dimension getPreferredSize() {
49        Dimension result;
50 
51        synchronized (setMutex) {
52            if (image == null) {
53                // TODO: Yield preferred size according to screen size.
54                result = new Dimension(400, 400);
55            } else {
56                result = new Dimension(image.getWidth(), image.getHeight());
57            }
58        }
59        return result;
60    }
61 
62    protected void paintComponent(Graphics g) {
63        super.paintComponents(g);
64        synchronized (setMutex) {
65            if (image != null) {
66                Graphics2D g2d = (Graphics2D) g;
67                int topX = (getWidth() - image.getWidth()) / 2;
68                int topY = (getHeight() - image.getHeight()) / 2;
69 
70                g2d.drawRenderedImage(image, AffineTransform.getTranslateInstance(topX, topY));
71            }
72        }
73    }
74}

[all classes][net.sf.jomic.ui]
EMMA 2.0.4217 (C) Vladimir Roubtsov