annotate ScreenAdjuster.java @ 1:c5bdb7bee4a7

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