//***************************************************************************** // ColorCanvas.java // // 3/11/00 // // Geetika Tewari, Victoria Manfredi and Christie Rice // // //***************************************************************************** import java.awt.*; import java.awt.event.*; import java.applet.*; import java.io.*; import java.util.*; public class ColorCanvas extends Canvas { String headerstr; ColorFrame cf; Vector observers; //*********************************** // // constructor // //*********************************** ColorCanvas(ColorFrame cff) { super(); cf = cff; headerstr = "COLOR MATRIX"; // Set the size and the background color of the ColorCanvas canvas setSize(185,70); setBackground(Color.white); addMouseListener(new ColorMouseHandler (cf)); observers = new Vector(); }// end constructor //******************************** // // paint // //******************************** public void paint(Graphics g) { g.setColor(Color.black); g.drawString(headerstr, 40, 16); // draw the possible static colors that can be chosen g.setColor(cf.StaticColor[0]); g.fillRect(20, 23, 15, 15); g.setColor(cf.StaticColor[1]); g.fillRect(35, 23, 15, 15); g.setColor(cf.StaticColor[2]); g.fillRect(50, 23, 15, 15); g.setColor(cf.StaticColor[3]); g.fillRect(65, 23, 15, 15); g.setColor(cf.StaticColor[4]); g.fillRect(80, 23, 15, 15); g.setColor(cf.StaticColor[5]); g.fillRect(95, 23, 15, 15); g.setColor(cf.StaticColor[6]); g.fillRect(110, 23, 15, 15); g.setColor(cf.StaticColor[7]); g.fillRect(125, 23, 15, 15); g.setColor(cf.StaticColor[8]); g.fillRect(140, 23, 15, 15); g.setColor(cf.StaticColor[9]); g.fillRect(155, 23, 15, 15); // This line is very important! Observers will be notified to // changes in ColorCanvas because whenever the repaint method of // ColorCanvas is called, cf.curc changes and therefore the // ColorCanvas class changes => Therefore observers are notified. g.setColor(cf.curc); // draw the initial user contol colors that can be chosen g.setColor(cf.UserColor[0]); g.fillRect(20, 42, 15, 15); g.setColor(cf.UserColor[1]); g.fillRect(35, 42, 15, 15); g.setColor(cf.UserColor[2]); g.fillRect(50, 42, 15, 15); g.setColor(cf.UserColor[3]); g.fillRect(65, 42, 15, 15); g.setColor(cf.UserColor[4]); g.fillRect(80, 42, 15, 15); g.setColor(cf.UserColor[5]); g.fillRect(95, 42, 15, 15); g.setColor(cf.UserColor[6]); g.fillRect(110, 42, 15, 15); g.setColor(cf.UserColor[7]); g.fillRect(125, 42, 15, 15); g.setColor(cf.UserColor[8]); g.fillRect(140, 42, 15, 15); g.setColor(cf.UserColor[9]); g.fillRect(155, 42, 15, 15); notifyObservers(); }// end paint //************************** // // registerAsObserver // //************************** public void registerAsObserver(ColorCanvasObserver observer) { observers.addElement(observer); observer.ColorCanvasHasChanged(this); }// end registerAsObserver //************************** // // notifyObservers // //************************** private void notifyObservers() { Enumeration enum = observers.elements(); while(enum.hasMoreElements()) { ColorCanvasObserver observer= (ColorCanvasObserver)enum.nextElement(); observer.ColorCanvasHasChanged(this); }// end while }// end notifyObservers }//end of class ColorCanvas