annotate ScreenAdjuster.java @ 4:265f66a2f14f

Doublebuffering.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Tue, 14 Jul 2015 15:54:01 +0200
parents 77e2655ac09d
children 09dcc2e5058a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
1 import javax.swing.*;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
2 import java.awt.*;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
3 import java.awt.event.*;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
4 import java.awt.font.*;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
5 import java.awt.geom.*;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
6 import java.util.*;
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
7 import java.awt.image.*;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
8
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
9 class ScreenAdjuster extends JFrame implements ActionListener
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
10 {
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
11 final float TIMEOUT_IN_SECONDS = 2.5f;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
12 int frameNumber = -1;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
13 Vector<String> messageText = null;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
14 Color backgroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
15 Color foregroundColor;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
16 Color outlineColor;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
17 boolean messageVisible = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
18 boolean messageOutline = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
19 boolean messageBBox = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
20
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
21 BufferedImage bufferedImage;
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
22 Graphics2D g2;
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
23 Rectangle curBounds;
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
24
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
25 enum MessageStatus { TIMEOUT, SHOW, HIDE };
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
26
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
27 javax.swing.Timer messageTimeout =
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
28 new javax.swing.Timer((int)(TIMEOUT_IN_SECONDS * 1000), this);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
29
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
30 void resetSize()
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
31 {
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
32 Rectangle bounds = getBounds();
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
33 if (!bounds.equals(curBounds)) {
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
34 bufferedImage = new BufferedImage(bounds.width, bounds.height, BufferedImage.TYPE_INT_ARGB);
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
35 g2 = bufferedImage.createGraphics();
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
36 curBounds = bounds;
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
37 }
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
38 }
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
39
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
40 ScreenAdjuster(boolean fullScreen)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
41 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
42 messageTimeout.setRepeats(false);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
43
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
44 nextFrame();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
45
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
46 if (fullScreen) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
47 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
48 setUndecorated(true);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
49 //setResizable(false);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
50 /*
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
51 Rectangle bounds = getBounds();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
52 setBounds(bounds.x,bounds.y,200,200);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
53 setVisible(true);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
54 */
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
55 /*
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
56 fullscreenFrame.add(new JLabel("Press ALT+F4 to exit fullscreen.",
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
57 SwingConstants.CENTER),
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
58 BorderLayout.CENTER);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
59 */
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
60 validate();
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
61
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
62 setVisible(true);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
63 GraphicsEnvironment.getLocalGraphicsEnvironment()
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
64 .getDefaultScreenDevice().setFullScreenWindow(this);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
65 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
66 else {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
67 Rectangle bounds = getBounds();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
68 setBounds(bounds.x,bounds.y,200,200);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
69 setVisible(true);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
70
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
71 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
72 enableEvents(AWTEvent.KEY_EVENT_MASK);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
73
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
74 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
75
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
76 public void actionPerformed(ActionEvent evt)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
77 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
78 messageVisible = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
79 repaint();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
80 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
81
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
82 protected void processKeyEvent(KeyEvent e)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
83 {
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
84 int increase = 1;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
85 MessageStatus messageStatus = MessageStatus.TIMEOUT;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
86 if (e.getID() == KeyEvent.KEY_PRESSED) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
87 Log.DEFAULT.println(e.paramString());
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
88 if (e.getKeyCode() == KeyEvent.VK_Q) {
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
89 System.exit(0);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
90 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
91 if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
92 increase = -1;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
93 }
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
94 else if (e.getKeyCode() == KeyEvent.VK_S) {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
95 messageTimeout.stop();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
96 increase = 0;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
97 messageStatus = MessageStatus.SHOW;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
98 }
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
99 else if (e.getKeyCode() == KeyEvent.VK_H) {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
100 messageTimeout.stop();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
101 increase = 0;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
102 messageStatus = MessageStatus.HIDE;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
103 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
104 Log.DEFAULT.println(e.getKeyText(e.getKeyCode()));
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
105 displayFrame(increase, messageStatus);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
106 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
107 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
108
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
109 static Color complementary(Color in)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
110 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
111 if (in != null) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
112 float hsb [] = Color.RGBtoHSB(in.getRed(),
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
113 in.getGreen(),
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
114 in.getBlue(), null);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
115 return Color.getHSBColor(hsb[0], hsb[1], 1 - hsb[2]);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
116 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
117 return Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
118 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
119
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
120 void nextFrame()
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
121 {
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
122 displayFrame(1, MessageStatus.TIMEOUT);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
123 }
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
124
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
125 void displayFrame(int increase, MessageStatus messageStatus)
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
126 {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
127 int numFrames = this.numFrames();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
128 frameNumber = (frameNumber + increase + numFrames) % numFrames;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
129 foregroundColor = null;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
130 backgroundColor = null;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
131 outlineColor = null;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
132 messageText = new Vector<String>(0);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
133 messageBBox = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
134
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
135 switch (frameNumber) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
136 case 0:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
137 messageText.add("This screen should appear all BLACK!");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
138 messageText.add("Please check for any dead pixels.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
139 messageText.add("");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
140 messageText.add("Appart from this, please use this opportunity to clean your screen.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
141 backgroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
142 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
143 case 1:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
144 messageText.add("This screen should appear all WHITE!");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
145 messageText.add("Please check for any dead pixels.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
146 messageText.add("");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
147 messageText.add("Appart from this, please use this opportunity to clean your screen.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
148 backgroundColor = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
149 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
150 case 2:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
151 messageText.add("This screen should appear all RED!");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
152 messageText.add("Please check for any dead pixels.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
153 backgroundColor = Color.RED;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
154 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
155 case 3:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
156 messageText.add("This screen should appear all GREEN!");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
157 messageText.add("Please check for any dead pixels.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
158 backgroundColor = Color.GREEN;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
159 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
160 case 4:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
161 messageText.add("This screen should appear all BLUE!");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
162 messageText.add("Please check for any dead pixels.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
163 backgroundColor = Color.BLUE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
164 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
165 case 5:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
166 messageText.add("This screen contains vertical stripes");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
167 messageText.add("Please adjust your screen so they are perfectly vertical");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
168 messageText.add("");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
169 messageText.add("(Primarily applies to CRT screens)");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
170 foregroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
171 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
172 case 6:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
173 messageText.add("This screen contains horizontal stripes");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
174 messageText.add("Please adjust your screen so they are perfectly horizontal");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
175 messageText.add("");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
176 messageText.add("(Primarily applies to CRT screens)");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
177 foregroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
178 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
179 case 7:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
180 messageText.add("This screen contains a chess pattern");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
181 messageText.add("Please adjust your screen so the pattern is perfectly horizontal and vertical");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
182 messageText.add("");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
183 messageText.add("(Primarily applies to CRT screens)");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
184 foregroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
185 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
186 case 8:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
187 messageText.add("This screen should be all black, with a hairline yellow border");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
188 messageText.add("Please adjust your screen so the border is perfectly aligned with the sides of your screen");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
189 backgroundColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
190 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
191 case 9:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
192 messageText.add("This screen contains a round circle");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
193 messageText.add("Please adjust your screen so that the aspect ratio makes this perfectly round.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
194 foregroundColor = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
195 backgroundColor = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
196 outlineColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
197 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
198 case 10:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
199 messageText.add("This screen contains a medium size chess pattern");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
200 messageText.add("Please adjust your brightness and contrast.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
201 foregroundColor = Color.RED;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
202 backgroundColor = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
203 outlineColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
204 messageBBox = true;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
205 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
206 case 11:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
207 messageText.add("This screen contains a pixel size chess pattern");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
208 messageText.add("Please adjust your brightness and contrast.");
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
209 foregroundColor = Color.RED;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
210 backgroundColor = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
211 outlineColor = Color.BLACK;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
212 messageBBox = true;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
213 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
214 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
215 messageTimeout.stop();
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
216 messageVisible = !(messageStatus == MessageStatus.HIDE);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
217
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
218 if (messageStatus == MessageStatus.TIMEOUT)
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
219 messageTimeout.start();
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
220
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
221 if (foregroundColor == null)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
222 foregroundColor = complementary(backgroundColor);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
223 //messageText.setForeground(foregroundColor);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
224
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
225 repaint();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
226 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
227
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
228 int numFrames()
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
229 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
230 return 12;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
231 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
232
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
233 public static final void main(final String[] args) throws Exception
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
234 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
235 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
236
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
237 Log.DEFAULT = new Log(new VoidStream());
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
238
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
239 boolean fullscreen = true;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
240
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
241 if (args.length >= 1) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
242 fullscreen = false;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
243 }
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
244
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
245 final JFrame fullscreenFrame = new ScreenAdjuster(fullscreen);
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
246
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
247 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
248
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
249 public static void paintCheckers(Graphics g, Rectangle bounds, int size, int numColors, int mode, boolean alternativeColors)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
250 {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
251 Rectangle cbounds = g.getClipBounds();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
252
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
253 g.setColor(Color.WHITE);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
254 g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
255
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
256 //Offset xmin by 1, if cliparea is on an odd boundary
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
257 int xmin = bounds.x;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
258 int xmax = bounds.x + bounds.width;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
259 int ymin = bounds.y;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
260 int ymax = bounds.y + bounds.height;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
261 int hcolor = -1;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
262
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
263 Color colors[] = { Color.BLACK, Color.RED,
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
264 Color.GREEN, Color.BLUE, Color.WHITE };
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
265
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
266 if (numColors <= 2) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
267 if (alternativeColors) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
268 colors[0] = Color.YELLOW;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
269 colors[1] = Color.BLUE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
270 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
271 else {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
272 colors[1] = Color.WHITE;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
273 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
274 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
275
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
276 g.setColor(Color.BLACK);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
277 for (int x = xmin; x < xmax; x += size) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
278 if ((mode & 0x1) > 0)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
279 hcolor = (hcolor + 1) % numColors;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
280 int color = hcolor;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
281 for (int y = ymin; y < ymax; y += size) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
282 if ((mode & 0x2) > 0)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
283 color = (color + 1) % numColors;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
284 g.setColor(colors[color]);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
285 g.fillRect(x, y, size, size);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
286 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
287 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
288 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
289
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
290 public void paint(Graphics g)
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
291 {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
292 resetSize();
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
293 super.paint(g2);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
294 Rectangle cbounds = g.getClipBounds();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
295 Rectangle bounds = getBounds();
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
296
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
297 Log.DEFAULT.println(frameNumber);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
298
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
299
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
300 if (backgroundColor != null) {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
301 g2.setColor(backgroundColor);
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
302 g2.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
303 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
304
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
305 switch (frameNumber) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
306 case 0:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
307 case 1:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
308 case 2:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
309 case 3:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
310 case 4:
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
311 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
312 case 11: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
313 g2.setColor(Color.BLACK);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
314 //Offset xmin by 1, if cliparea is on an odd boundary
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
315 int xmin = cbounds.x + ((cbounds.x - bounds.x) & 0x1);
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
316 int xmax = cbounds.x + cbounds.width;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
317 for (int x = xmin; x < xmax; x += 2) {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
318 g2.drawLine(x, bounds.y, x, bounds.y + bounds.height);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
319 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
320 for (int y = bounds.y; y < bounds.y + bounds.height; y += 2) {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
321 g2.drawLine(bounds.x, y, bounds.x + bounds.width, y);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
322 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
323 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
324 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
325 case 7: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
326 paintCheckers(g2, bounds, 50, 2, 3, true);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
327 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
328 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
329 case 10: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
330 paintCheckers(g2, bounds, 5, 2, 3, false);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
331 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
332 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
333 case 9: {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
334 int x = bounds.x;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
335 int y = bounds.y;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
336 int height = bounds.height - y;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
337 int width = bounds.width - x;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
338 int diameter;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
339 if (height < width) {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
340 diameter = height;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
341 x += (width - height) /2;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
342 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
343 else {
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
344 diameter = width;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
345 y += (height - width) /2;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
346 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
347 Log.DEFAULT.println("Geometry:"+bounds.x+"x"+bounds.y+":"+bounds.width + "x" + bounds.height);
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
348 g2.setColor(Color.BLACK);
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
349 g2.fillOval(x, y, diameter, diameter);
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
350
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
351 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
352 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
353 case 8: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
354 g2.setColor(Color.YELLOW);
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
355 g2.drawRect(bounds.x+1, bounds.y+1, bounds.width-2, bounds.height-2);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
356 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
357 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
358 case 5: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
359 paintCheckers(g2, bounds, 50, 2, 2, true);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
360 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
361 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
362 case 6: {
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
363 paintCheckers(g2, bounds, 50, 2, 1, true);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
364 break;
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
365 }
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
366 };
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
367 if (messageVisible) {
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
368 drawMessage(g2);
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
369 }
4
265f66a2f14f Doublebuffering.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 2
diff changeset
370 ((Graphics2D) g).drawImage(bufferedImage, null, 0, 0);
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
371 }
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
372
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
373 void drawMessage(Graphics2D g2)
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
374 {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
375 Font font = g2.getFont();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
376 Rectangle bounds = getBounds();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
377
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
378 font = new Font(font.getFontName(),
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
379 font.getStyle(),
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
380 (int)(font.getSize2D() * 2));
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
381 double fontHeight = font.getMaxCharBounds(g2.getFontRenderContext()).getHeight();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
382 double totalHeight = fontHeight * messageText.size();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
383 double y = (bounds.height - totalHeight) /2.0;
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
384
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
385 for (int i = 0; i < messageText.size(); ++i) {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
386 String text = messageText.get(i);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
387 if (text.length() > 0 ) {
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
388 TextLayout tl =
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
389 new TextLayout(messageText.get(i),
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
390 font, g2.getFontRenderContext());
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
391 double textWidth = tl.getBounds().getWidth();
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
392 double x = (bounds.width - textWidth) /2.0;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
393
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
394 Shape outline =
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
395 tl.getOutline(AffineTransform.getTranslateInstance(x,y));
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
396
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
397 Rectangle tBounds = outline.getBounds();
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
398
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
399 if (messageBBox) {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
400 g2.setColor(backgroundColor);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
401 g2.fillRect(tBounds.x, tBounds.y, tBounds.width, tBounds.height);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
402 }
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
403 g2.setColor(foregroundColor);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
404 g2.fill(outline);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
405 if (outlineColor != null) {
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
406 g2.setColor(outlineColor);
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
407 }
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
408 g2.draw(outline);
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
409 }
1
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
410 y += fontHeight;
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
411 }
c5bdb7bee4a7 Refactor displayMessage.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 0
diff changeset
412
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
413 }
2
77e2655ac09d Whitespace clean.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents: 1
diff changeset
414
0
855307f4bf5e Working version.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
415 }