Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/adorphuye/othello/OthelloCellRenderer.java


1   package com.adorphuye.othello;
2   
3   import java.awt.*;
4   import java.awt.event.*;
5   import com.adorphuye.othello.gui.board.*;
6   
7   
8   /** Renders a single cell of a Board
9    */
10  class OthelloCellRenderer implements BoardCellRenderer
11  {
12    private OthelloCellComponent comp = new OthelloCellComponent();
13    private Color p1 = Color.black;
14    private Color p2 = Color.white;
15    
16    public OthelloCellRenderer()
17    {
18    }
19    
20    /**
21     * @param a
22     * @param b  */  
23    public OthelloCellRenderer(Color a, Color b)
24    {
25      p1 = a;
26      p2 = b;
27    }
28    
29    /**
30     * @param b  */  
31    public void setHints(boolean b)
32    {
33      hints = b;
34    }
35    
36    /**
37     * @return  */  
38    public boolean getHints()
39    {
40      return hints;
41    }
42    
43    private boolean hints = true;
44    
45    /**
46     * @param parent
47     * @param hasFocus
48     * @param value
49     * @param p
50     * @return  */  
51    public Component getBoardCellRenderer(Component parent, boolean hasFocus, Object value, Point p)
52    {
53      comp.setHints(getHints());
54      comp.setValue(value);
55      comp.setPoint(p);
56      return comp;
57    }
58    
59    class OthelloCellComponent extends Canvas
60    {
61      private boolean hints = true;
62      private Object value = null;
63      private Point pp = new Point(0,0);
64      
65      /**
66       * @param b  */    
67      public void setHints(boolean b)
68      {
69        hints = b;
70      }
71      
72      /**
73       * @return  */    
74      public boolean getHints()
75      {
76        return hints;
77      }
78      
79      /**
80       * @param p  */    
81      public void setPoint(Point p)
82      {
83        pp = p;
84      }
85      
86      /**
87       * @param i  */    
88      public void setValue(Object i)
89      {
90        value = i;
91      }
92      
93      /**
94       * @param g  */    
95      public void update(Graphics g)
96      {
97        paint(g);
98      }
99      
100     /**
101      * @param g  */    
102     public void paint(Graphics g)
103     {
104       Rectangle r = (Rectangle)getBounds();
105       Color c = g.getColor();
106       g.setColor(getBackground());
107       g.fillRect(r.x,r.y,r.width,r.height);
108       
109       if(value!=null)
110       {
111         if(value instanceof Color)
112         {
113           
114           int s = Math.min(r.width-1,r.height-1);
115           g.setColor(new Color(64,64,64));
116           g.fillOval(2+r.x-(s/2)+(r.width/2)+1,2+r.y-(s/2)+(r.height/2)+1,s-4,s-4);
117           g.setColor((Color)value);
118           g.fillOval(2+r.x-(s/2)+(r.width/2),2+r.y-(s/2)+(r.height/2),s-4,s-4);
119         }
120         else if(value instanceof Image)
121         {
122           g.drawImage((Image)value,r.x,r.y,r.width,r.height,null);
123         }
124       }
125       
126       g.setColor(new Color(32,96,32));
127       g.drawRect(r.x,r.y,r.width-1,r.height-1);
128       g.setColor(new Color(128,192,128));
129       g.drawRect(r.x,r.y,r.width,r.height);
130       
131       if(pp.y!=0 && getHints())
132       {
133         g.setColor(new Color(96,160,96));
134         g.fillRect(r.x+2,r.y+2,r.width-3,r.height-3);
135         g.setColor(Color.yellow);
136         g.drawString(""+pp.y,r.x+(r.width/3),r.y+(r.height)-12);
137       }
138       g.setColor(c);
139     }
140   }
141 }
142 
143