00001 /* 00002 * To change this template, choose Tools | Templates 00003 * and open the template in the editor. 00004 */ 00005 package org.classroomgaming.cgp; 00006 00007 import java.awt.Component; 00008 import java.awt.Graphics; 00009 import java.awt.event.*; 00010 import java.beans.PropertyChangeEvent; 00011 import java.beans.PropertyChangeListener; 00012 import java.io.Serializable; 00013 import java.beans.*; 00014 import javax.swing.JComponent; 00015 import javax.swing.plaf.ComponentUI; 00016 00021 public class GameUI extends GameViewerUI implements GameModuleInterface, KeyListener, MouseListener, MouseMotionListener { 00022 00023 protected boolean enabled; 00024 protected GameObject parent; 00025 protected PropertyChangeSupport propertySupport; 00026 // private MouseModule mouse; 00027 private Graphics graphics; 00028 private Component component; 00029 00030 public void setGraphics(Graphics g) { 00031 graphics = g; 00032 } 00033 00034 public void setComponent(Component c) { 00035 00036 component = c; 00037 } 00038 00039 public Graphics getGraphics() { 00040 return graphics; 00041 } 00042 00043 public Component getComponent() { 00044 return component; 00045 } 00046 00047 GameUI() { 00048 parent = null; 00049 enabled = true; 00050 // mouse = new MouseModule(); 00051 00052 } 00053 00054 GameUI(JComponent c) { 00055 try { 00056 GameViewer g = (GameViewer) c; 00057 parent = g.getModel(); 00058 enabled = true; 00059 } catch (ClassCastException e) { 00060 enabled = false; 00061 parent = null; 00062 } 00063 // mouse = new MouseModule((GameModule)p); 00064 } 00065 00066 public void setParent(GameObject g) { 00067 parent = g; 00068 00069 } 00070 00071 public GameModule getParent() { 00072 return (GameModule) parent; 00073 } 00074 00075 public boolean getEnabled() { 00076 return enabled; 00077 } 00078 00079 public void setEnabled(boolean value) { 00080 boolean oldValue = enabled; 00081 enabled = value; 00082 propertySupport.firePropertyChange(PROP_ENABLED, oldValue, enabled); 00083 } 00084 00085 public void addPropertyChangeListener(PropertyChangeListener listener) { 00086 propertySupport.addPropertyChangeListener(listener); 00087 } 00088 00089 public void removePropertyChangeListener(PropertyChangeListener listener) { 00090 propertySupport.removePropertyChangeListener(listener); 00091 } 00092 00093 public void actionPerformed(ActionEvent e) { 00094 } 00095 00096 public void propertyChange(PropertyChangeEvent e) { 00097 } 00098 00099 public void paintComponent(Graphics g, JComponent c) { 00100 ActionEvent e = new ActionEvent((Object) this, 0, "PAINT"); 00101 setComponent(c); 00102 setGraphics(g); 00103 parent.actionPerformed(e); 00104 } 00105 00106 public void keyTyped(KeyEvent e) { 00107 // throw new UnsupportedOperationException("Not supported yet."); 00108 try { 00109 KeyboardModule m = (KeyboardModule) parent.getModule("keyboard"); 00110 m.keyTyped(e); 00111 } catch (ClassCastException c) { 00112 } 00113 } 00114 00115 public void keyPressed(KeyEvent e) { 00116 // throw new UnsupportedOperationException("Not supported yet."); 00117 } 00118 00119 public void keyReleased(KeyEvent e) { 00120 // throw new UnsupportedOperationException("Not supported yet."); 00121 } 00122 00123 public static ComponentUI createUI(JComponent c) { 00124 return new GameUI(c); 00125 00126 } 00127 00128 @Override 00129 public void installUI(JComponent c) { 00130 00131 c.addMouseListener(this); 00132 c.addMouseMotionListener(this); 00133 00134 c.addKeyListener(this); 00135 c.requestFocus(); 00136 } 00137 00138 @Override 00139 public void uninstallUI(JComponent c) { 00140 00141 c.removeMouseListener(this); 00142 c.removeMouseMotionListener(this); 00143 00144 c.removeKeyListener(this); 00145 } 00146 00147 public void mouseClicked(MouseEvent e) { 00148 e.consume(); 00149 if (parent == null) { 00150 return; 00151 } 00152 try { 00153 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00154 if (mouse != null) { 00155 mouse.mouseClicked(e); 00156 } 00157 } catch (ClassCastException e1) { 00158 } 00159 } 00160 00161 public void mousePressed(MouseEvent e) { 00162 e.consume(); 00163 if (parent == null) { 00164 return; 00165 } 00166 try { 00167 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00168 if (mouse != null) { 00169 mouse.mousePressed(e); 00170 } 00171 } catch (ClassCastException e1) { 00172 } 00173 } 00174 00175 public void mouseReleased(MouseEvent e) { 00176 e.consume(); 00177 if (parent == null) { 00178 return; 00179 } 00180 try { 00181 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00182 if (mouse != null) { 00183 mouse.mouseReleased(e); 00184 } 00185 } catch (ClassCastException e1) { 00186 } 00187 } 00188 00189 public void mouseEntered(MouseEvent e) { 00190 e.consume(); 00191 if (parent == null) { 00192 return; 00193 } 00194 try { 00195 00196 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00197 if (mouse != null) { 00198 mouse.mouseEntered(e); 00199 } 00200 } catch (ClassCastException e1) { 00201 } 00202 } 00203 00204 public void mouseExited(MouseEvent e) { 00205 e.consume(); 00206 if (parent == null) { 00207 return; 00208 } 00209 try { 00210 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00211 if (mouse != null) { 00212 mouse.mouseExited(e); 00213 } 00214 } catch (ClassCastException e1) { 00215 } 00216 } 00217 00218 public void mouseDragged(MouseEvent e) { 00219 e.consume(); 00220 if (parent == null) { 00221 return; 00222 } 00223 try { 00224 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00225 if (mouse != null) { 00226 mouse.mouseDragged(e); 00227 } 00228 } catch (ClassCastException e1) { 00229 } 00230 } 00231 00232 public void mouseMoved(MouseEvent e) { 00233 e.consume(); 00234 if (parent == null) { 00235 return; 00236 } 00237 try { 00238 MouseModule mouse = (MouseModule) parent.getModule("mouse"); 00239 if (mouse != null) { 00240 mouse.mouseMoved(e); 00241 } 00242 } catch (ClassCastException e1) { 00243 } 00244 } 00245 }
1.5.8