1 package org.woehlke.computer.kurzweil.tabs.wator;
2
3 import org.woehlke.computer.kurzweil.tabs.wator.WatorModel;
4
5 import javax.swing.*;
6 import java.awt.*;
7
8
9
10
11
12
13
14
15
16
17
18
19 public class WatorCanvas extends JComponent {
20
21 private static final long serialVersionUID = 7526471155622776147L;
22
23 private volatile WatorModel app;
24 private volatile Dimension preferredSize;
25
26 public WatorCanvas(WatorModel app) {
27 this.app = app;
28 int width = this.app.getWorldDimensions().getWidth();
29 int height = this.app.getWorldDimensions().getHeight();
30 this.preferredSize = new Dimension(width, height);
31 this.setSize(this.preferredSize);
32 this.setPreferredSize(preferredSize);
33 }
34
35 public void paint(Graphics g) {
36 this.setSize(this.preferredSize);
37 this.setPreferredSize(preferredSize);
38 super.paintComponent(g);
39 int red = 0;
40 int green = 0;
41 int blue = 0;
42 for(int y = 0; y < app.getWorldDimensions().getY(); y++){
43 for(int x = 0; x < app.getWorldDimensions().getX(); x++){
44 blue = (((app.getCellStatusFor(x,y))*4)%256);
45 Color stateColor = new Color(red, green, blue);
46 g.setColor(stateColor);
47 g.drawLine(x,y,x,y);
48 }
49 }
50 }
51
52 public void update(Graphics g) {
53 paint(g);
54 }
55
56 }