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


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

public class MovieItemView extends WmvcView implements ActionListener{
	protected GridBagLayout gridbag;
	protected GridBagConstraints c;
	
	private JPanel itemPanel;
	private MovieModel myModel;
	
	private static JLabel lblTitle=
		new JLabel("Movie Title:");
	private static JLabel fldTitle=
		new JLabel();
	private static JLabel lblDirector=
		new JLabel("Director:");
	private static JLabel fldDirector=
		new JLabel();
	private static JLabel lblYear=
		new JLabel("Year:");
	private static JLabel fldYear=
		new JLabel();
	private static JLabel lblRating=
		new JLabel("Rating:");
	private static JLabel fldRating=
		new JLabel();
	private static JLabel lblGenre=
		new JLabel("Genre:");
	private static JLabel fldGenre=
		new JLabel();
	private static JLabel lblFormat=
		new JLabel("Format:");
	private static JLabel fldFormat=
		new JLabel();
	private static JLabel lblLabel=
		new JLabel("Label");
	private static JLabel fldLabel=
		new JLabel();
	private static JLabel lblEvaluation=
		new JLabel("My Rating:");
	private static JLabel fldEvaluation=
		new JLabel();
	private static JLabel lblComments=
		new JLabel("Comments:");
	private static JTextArea textArea;
	private static JButton bPrevious;
	private static JButton bNext;
	private static JButton bEdit;
	
	public JPanel getPanel(){
		return itemPanel;	
	}
	
	protected void setAndAdd(JComponent comp,
		int gx,int gy,int gheight,int gwidth,double wx){
		c.anchor=c.WEST;
		c.gridx=gx;
		c.gridy=gy;
		c.gridheight=gheight;
		c.gridwidth=gwidth;
		c.weightx=wx;
		gridbag.setConstraints(comp,c);
	}
	
	public MovieItemView(){
		myModel=(MovieModel)WmvcApp.getModel();
		myModel.addView(this);
		
		itemPanel=new JPanel();
		gridbag=new GridBagLayout();
		c=new GridBagConstraints();
		
		itemPanel.setLayout(gridbag);
		itemPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
		
		fldTitle.setForeground(Color.black);
		fldDirector.setForeground(Color.black);
		fldYear.setForeground(Color.black);
		fldRating.setForeground(Color.black);
		fldGenre.setForeground(Color.black);
		fldFormat.setForeground(Color.black);
		fldLabel.setForeground(Color.black);
		fldEvaluation.setForeground(Color.black);
		//Movie Title:
		setAndAdd(lblTitle,0,0,1,1,1.0);
		setAndAdd(fldTitle,1,0,1,c.REMAINDER,0.0);
		//Director
		setAndAdd(lblDirector,0,1,1,1,1.0);
		setAndAdd(fldTitle,1,0,1,c.REMAINDER,0.0);
		//Year--Genre
		setAndAdd(lblYear,0,2,1,1,1.0);
		setAndAdd(fldYear,1,2,1,1,0.0);
		setAndAdd(lblGenre,2,2,1,c.RELATIVE,0.0);
		setAndAdd(fldGenre,3,2,1,c.REMAINDER,0.0);
		//Rating--Format
		setAndAdd(lblRating,0,3,1,1,1.0);
		setAndAdd(fldRating,1,3,1,1,0.0);
		setAndAdd(lblFormat,2,3,1,c.RELATIVE,0.0);
		setAndAdd(fldRating,3,3,1,c.REMAINDER,0.0);
		//My Rating--Label
		setAndAdd(lblEvaluation,0,4,1,1,1.0);
		setAndAdd(fldEvaluation,1,4,1,1,0.0);
		setAndAdd(lblLabel,2,4,1,c.RELATIVE,0.0);
		setAndAdd(fldLabel,3,4,1,c.REMAINDER,0.0);
		//Comment box
		setAndAdd(lblComments,0,5,1,1,0.0);
		textArea=new JTextArea(4,30);
		JScrollPane textScroll=new JScrollPane(textArea);
		setAndAdd(textScroll,1,5,4,c.REMAINDER,0.0);
		//Command Buttons
		bEdit=new JButton("Edit");
		bEdit.setActionCommand("edit");
		bEdit.addActionListener(this);
		bEdit.setToolTipText("Edit current movie");
		setAndAdd(bEdit,1,9,1,1,0.0);
		
		bPrevious=new JButton("Previous");
		bPrevious.setActionCommand("previous");
		bPrevious.addActionListener(this);
		bPrevious.setToolTipText("Go to previous movie");
		setAndAdd(bPrevious,2,9,1,1,0.0);
		
		bNext=new JButton("Next");
		bNext.setActionCommand("next");
		bNext.addActionListener(this);
		bNext.setToolTipText("Go to next movie");
		setAndAdd(bNext,3,9,1,1,0.0);	
	}
	
	public void updateView(){
		Movie m=myModel.getCurrentMovie();
		
		fldTitle.setText(m.getTitle());
		fldDirector.setText(m.getDirector());
		fldYear.setText(m.getYear());
		fldLabel.setText(m.getLabel());
		textArea.setText(m.getComments());
		
		fldRating.setText(MovieRating.stringAt(m.getRating()));
		fldGenre.setText(MovieGenre.stringAt(m.getGenre()));
		fldFormat.setText(MovieFormat.stringAt(m.getFormat()));
		fldEvaluation.setText(MovieEvaluation.stringAt(m.getEvaluation()));
	}
	
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("edit")){
			Movie edited=
				MovieEditor.getInstance().showDialog(
					WmvcApp.getFrame(),
					myModel.getCurrentMovie());
					
		}else if(e.getActionCommand().equals("previous")){
			myModel.setCurrentMovieIndex(myModel.getCurrentMovieIndex()-1);
		}else if(e.getActionCommand().equals("next")){
			myModel.setCurrentMovieIndex(myModel.getCurrentMovieIndex()+1);	
		}			
	}								
}