ImagePanel.java |
package graphics.graph; import java.awt.*; public class ImagePanel extends Panel /** * The responsibility of this class is to provide an instance of a * Panel that knows how to interface with the GraphManager. All it * really does accept update the update message and cutils.delegate it * appropriately. */ { private static ImagePanel ip = new ImagePanel(); private GraphManager gm; private ImagePanel() { } public static ImagePanel getImagePanel() /** * Static getter to support the singleton design pattern. * * @return ImagePanel */ { return ip; } public void setGraphManager(GraphManager graphManager) /** * Set the GraphManager. Even though GraphManager is a singleton, * we didn't want to set it at instantiation time because ImagePanel * (this) is also a singleton and GraphManager has a reference to this. * To avoid confusion of circular instantiating, GraphManager sends * a message here when it is ready to become referenced. * * @param GraphManager */ { gm = graphManager; } public synchronized void update(Graphics g) /** * Delegate the particulars of updating to the GraphManager. * * @param Graphics */ { gm.update(g); } }