www.pudn.com > lxc.rar > MainView.java
import java.io.*;
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
public class MainView extends WmvcView {
private JFileChooser fc;
private MovieEditor theMovieEditor;
private MovieModel myModel;
public MainView(){
myModel=(MovieModel)WmvcApp.getModel();
myModel.addView(this);
fc=new JFileChooser(new File(System.getProperty("user.dir")));
createControls();
theMovieEditor=MovieEditor.getInstance();
theMovieEditor.initialize();
}
public boolean closingCurrentMovie(boolean ask){
if(myModel.getEditsMade()){
if(ask){
switch(JOptionPane.showConfirmDialog(
WmvcApp.getFrame(),
"The movie list has changed since you"
+"last svae it.\n"
+"Save the current movie list?",
"Movie List has changed",
JOptionPane.YES_NO_CANCEL_OPTION)){
case JOptionPane.NO_OPTION:
return true;
case JOptionPane.CANCEL_OPTION:
case JOptionPane.CLOSED_OPTION:
return false;
default:
break;
}
if(myModel.getFile()==null){
int retV=
fc.showSaveDialog(WmvcApp.getFrame());
if(retV==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
if(!myModel.saveMoviesAs(file)){
return false;
}else{
myModel.closeMovies();
return true;
}
}else{
return false;
}
}
myModel.saveMovies();
myModel.closeMovies();
}
}
return true;
}
private void createControls(){
JMenu fileMenu=new JMenu("File");
WmvcMenuItemCtl fileOpen=new WmvcMenuItemCtl(
fileMenu,"Open Movie List",
null,'O',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
if(!closingCurrentMovie(true)){
return;
}
int retV=fc.showOpenDialog(WmvcApp.getFrame());
if(retV==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
myModel.openMovies(file);
}
}
});
WmvcMenuItemCtl fileSave=new WmvcMenuItemCtl(fileMenu,
"Sava Movie List",
null,'S',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
if(myModel.getFile()==null){
JOptionPane.showMessageDialog(
WmvcApp.getFrame(),
"No movie file name specified.\n"
+"Use \"Save MoveList As\" instead.",
"No file name specified",
JOptionPane.ERROR_MESSAGE
);
}else{
myModel.saveMovies();
}
}
});
WmvcMenuItemCtl fileSaveAs=new WmvcMenuItemCtl(fileMenu,
"Save Movie List As",null,'A',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
int retV=
fc.showSaveDialog(WmvcApp.getFrame());
if(retV==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
myModel.saveMoviesAs(file);
}
}
}
);
WmvcApp.addMenu(fileMenu);
JMenu editMenu=new JMenu("Edit");
WmvcMenuItemCtl editEdit=new WmvcMenuItemCtl(editMenu,
"Edit Current Momie",null,'E',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
Movie edited=theMovieEditor.showDialog(
WmvcApp.getFrame(),
myModel.getCurrentMovie());
myModel.replaceCurrentMovie(edited);
}
}
);
WmvcMenuItemCtl editNew=new WmvcMenuItemCtl(
editMenu,"Add New Movie",null,'A',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
Movie blank=new Movie();
Movie newMovie=MovieEditor.getInstance().showDialog(
WmvcApp.getFrame(),blank
);
myModel.addMovie(newMovie);
}
}
);
WmvcMenuItemCtl editRemove=new WmvcMenuItemCtl(
editMenu,"Remove CurrentMovie",null,'R',null,
new WmvcExecutor(){
public void execute(ActionEvent e){
myModel.deleteCurrentMovie();
}
}
);
WmvcApp.addMenu(editMenu);
WmvcTBButtonCtl toolOpen=new WmvcTBButtonCtl(
"Open",null,
"Open an Exsiting Movie List",
fileOpen.getWmvcExecutor()
);
WmvcTBButtonCtl toolAdd=new WmvcTBButtonCtl(
"Add",null,
"Add a new movie",
editNew.getWmvcExecutor()
);
}
}