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);
}
}
}