View Javadoc

1   package gov.nasa.pds.ltdt.gui;
2   
3   import gov.nasa.pds.ltdt.gui.configuration.LTDTKeys;
4   import gov.nasa.pds.ltdt.gui.util.Utility;
5   
6   import java.awt.event.ActionEvent;
7   import java.io.IOException;
8   import java.util.List;
9   import java.util.Properties;
10  
11  import javax.swing.AbstractAction;
12  import javax.swing.Icon;
13  import javax.swing.JOptionPane;
14  
15  /***
16   * New Project Action
17   * @author jwang
18   *
19   */
20  public class NewProjectAction extends AbstractAction{
21  	
22  	private MainWindow window =null;
23  	private Properties props;
24  	
25  	/***
26  	 * Constructor.
27  	 * @param name
28  	 * @param image
29  	 * @param desc
30  	 * @param mnemonic
31  	 * @param props
32  	 * @param window
33  	 */
34  	public NewProjectAction 
35  	  (String name, Icon image, String desc, Integer mnemonic, Properties props, MainWindow window) {
36  		
37  
38  		super(name, image);
39  		putValue(SHORT_DESCRIPTION,desc); // tooltip
40  		putValue(MNEMONIC_KEY,mnemonic);  // accelarator key	
41  		
42  		this.props = props;
43  		this.window = window;
44  
45  		
46  	}
47  
48  	public void actionPerformed(ActionEvent ae) {
49  
50  		//String selectedProject = null;
51  		int status=0;
52  		
53  		if ("false".equals(props.getProperty(LTDTKeys.PROJECTALTERED))) {
54  			new ProjectGalleryDialog (props, window, LTDTKeys.PROJECTGALLERYTITLE, LTDTKeys.NEWFROMTEMPLATETABINDEX);
55  			
56  		}
57  		else {
58  			status = saveAlteredProject(props, window);
59  			
60  			if (status==LTDTKeys.SUCCESS) {
61  				new ProjectGalleryDialog (props, window, LTDTKeys.PROJECTGALLERYTITLE, LTDTKeys.NEWFROMTEMPLATETABINDEX);
62  				
63  			}
64  		}
65  
66  
67  	}
68  	
69  
70  	private int saveAlteredProject(Properties props, MainWindow window) {
71  				
72  		// if PROJECTALTERED is true, ask if the user want to save the edited project
73  		if ("true".equals(props.getProperty(LTDTKeys.PROJECTALTERED))) {
74  			int response=JOptionPane.showConfirmDialog(window, 
75  					"Do you want to save changes made to this project\nbefore creating a new project?",
76  					LTDTKeys.PROJECTMODIFIEDTITLE, JOptionPane.YES_NO_CANCEL_OPTION);
77  
78  			switch (response) {
79  				case JOptionPane.YES_OPTION:
80  					
81  					//if ("Untitled".equals(props.getProperty(LTDTKeys.PROJECTNAME)))
82  						//new ProjectCreateDialog(props, window, LTDTKeys.SAVEASTITLE, LTDTKeys.SAVEAS);
83  					//else {
84  						ProjectSave.save(props, window);
85  					//}
86  						break;
87  				
88  				case JOptionPane.CLOSED_OPTION:
89  				case JOptionPane.CANCEL_OPTION:
90  					return LTDTKeys.CANCELLED;
91  				case JOptionPane.NO_OPTION:
92  				default:
93  					break;								
94  			}			
95  			return LTDTKeys.SUCCESS;
96  		}
97  		return LTDTKeys.SUCCESS;
98  	}
99  	
100 	
101 	
102 }