import java.awt.*;
import java.util.*;
class FormPanel extends Panel implements Observer {
 Movie movie = null;                                    
 TextField scriptField = new TextField("0", 20);
 TextField actingField = new TextField("0", 20);
 TextField directingField = new TextField("0", 20);
 FormPanel () {
  setLayout(new GridLayout (3, 2, 3, 3));               
  add(new Label ("Script"));    add(scriptField);       
  add(new Label ("Acting"));    add(actingField);       
  add(new Label ("Directing")); add(directingField);    
 }
 public void attachObservable (Movie m) {
  if (m != movie) {
   if (movie != null) {movie.deleteObserver(this);}
   movie = m;
   movie.addObserver(this);
   movie.changed();
  }
 }
 public void update (Observable o, Object x) {
  Movie m = (Movie) o;
  scriptField.setText(String.valueOf(m.script));
  actingField.setText(String.valueOf(m.acting));
  directingField.setText(String.valueOf(m.directing));
 }
 public boolean action(Event e, Object o) {
  if (movie == null) {return false;}
  if (e.target == scriptField) {
   movie.setScript(Integer.parseInt((String) o)); return true;
  }
  else if (e.target == actingField) {
   movie.setActing(Integer.parseInt((String) o)); return true;
  }
  else if (e.target == directingField) {
   movie.setDirecting(Integer.parseInt((String) o)); return true;
  }
  else {return false;}
 }
}
