import java.awt.*;
import java.util.*;
import java.awt.swing.*;
import java.awt.swing.event.*;
public class MovieApplet extends JApplet {
 MovieDataServer movieData = new MovieDataServer();
 MeterCanvas meterCanvas = new MeterCanvas();
 VectorChoiceList choiceList = new VectorChoiceList();
 MovieToMeterConnector connector = new MovieToMeterConnector();  
 public void init () {
  getContentPane().add("West", meterCanvas); 
  getContentPane().add("East", new JScrollPane(choiceList)); 
  movieData.setObserver(connector);                              
  choiceList.setChoices(movieData.getTitles()); 
  choiceList.addListSelectionListener(new LocalListener()); 
 }
 class MovieToMeterConnector implements Observer {               
  public void update (Observable o, Object x) {                  
   meterCanvas.setTitle(movieData.getMovie().getTitle());        
   meterCanvas.setValue(movieData.getMovie().rating());          
  }                                                              
 }                                                               
 class LocalListener implements ListSelectionListener {
  public void valueChanged(ListSelectionEvent e) { 
   movieData.setMovie(choiceList.getSelectedIndex());
  } 
 } 
}
