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);
40 putValue(MNEMONIC_KEY,mnemonic);
41
42 this.props = props;
43 this.window = window;
44
45
46 }
47
48 public void actionPerformed(ActionEvent ae) {
49
50
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
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
82
83
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 }