www.pudn.com > lxc.rar > MovieListView.java


import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MovieListView extends WmvcView implements ListSelectionListener{
	private static boolean updating=false;
	private JPanel listPanel;
	private JList jlist;
	
	private MovieModel myModel;
	private DefaultListModel movieList;
	
	public JPanel getPanel(){
		return listPanel;
	}
	
	public MovieListView(){
		myModel=(MovieModel)WmvcApp.getModel();
		myModel.addView(this);
		
		movieList=new DefaultListModel();
		movieList.addElement("No Movie List Opened");
		
		listPanel=new JPanel();
		listPanel.setLayout(new BorderLayout());
		
		jlist=new JList(movieList);
		jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		jlist.setSelectedIndex(0);
		jlist.addListSelectionListener(this);
		
		listPanel.add(jlist,BorderLayout.CENTER);		
	}
	
	public void updateView(){
		updating=true;
		if(myModel.getListChanged()){
			movieList.ensureCapacity(myModel.getNumberOfMovies()+8);
			movieList.clear();
			ListIterator it=myModel.getMovieListIterator();
			while(it.hasNext()){
				Movie m=(Movie)it.next();
				movieList.addElement(m.getTitle());
			}
		}
		jlist.setSelectedIndex(myModel.getCurrentMovieIndex());
		jlist.ensureIndexIsVisible(myModel.getCurrentMovieIndex());
		
		updating=false;
	}
	
	public void valueChanged(ListSelectionEvent e){
		if(e.getValueIsAdjusting())
			return;
		JList theList=(JList)e.getSource();
		if(!theList.isSelectionEmpty()){
			int index=theList.getSelectedIndex();
			if(!updating)
				myModel.setCurrentMovieIndex(index);
		}		
	}
}