View Javadoc

1   /*
2    *  Copyright (C) 2003-2005 SINTEF
3    *  Author:  Fredrik Vraalsen (fredrik dot vraalsen at sintef dot no)
4    *  Webpage: http://coras.sourceforge.net/
5    *
6    *  This program is free software; you can redistribute it and/or
7    *  modify it under the terms of the GNU Lesser General Public License
8    *  as published by the Free Software Foundation; either version 2.1
9    *  of the License, or (at your option) any later version.
10   *
11   *  This program is distributed in the hope that it will be useful,
12   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   *  Lesser General Public License for more details.
15   *
16   *  You should have received a copy of the GNU Lesser General Public
17   *  License along with this program; if not, write to the Free
18   *  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19   *  02111-1307 USA
20   */
21  package coras.client;
22  
23  import java.awt.Cursor;
24  import java.awt.event.ActionEvent;
25  import java.awt.event.KeyEvent;
26  
27  import coras.client.ui.CorasFrame;
28  import coras.riskanalysis.RiskAnalysisProject;
29  
30  /***
31   * @author fvr
32   *
33   * TODO To change the template for this generated type comment go to
34   * Window - Preferences - Java - Code Style - Code Templates
35   */
36  public class OpenRecentProjectAction extends CorasAction {
37  
38      private String projectId;
39  
40  	public OpenRecentProjectAction(CorasClient client, String projectId, String projectName, int index) {
41          super(client, index + " " + projectName, KeyEvent.VK_0 + index, "Open Project " + projectName, "Open risk analysis project " + projectName);
42          this.projectId = projectId;
43      }
44      
45      public void actionPerformed(ActionEvent e) {
46          if (projectId == null) {
47          	return;
48          }
49          RiskAnalysisProject project = getClient().getProject();
50          if (project != null && projectId.equals(project.getId())) {
51          	return;
52          }
53          if (!getClient().closeProject()) {
54          	return;
55          }
56          final CorasFrame mainFrame = getClient().getMainFrame();
57  		mainFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
58          new SwingWorker() {
59          	public Object construct() {
60          		RiskAnalysisProject newProject = RiskAnalysisProject.getProject(projectId);
61          		getClient().setProject(newProject);
62          		return null;
63          	}
64          	public void finished() {
65          		mainFrame.setCursor(Cursor.getDefaultCursor());
66          	}
67          }.start();
68      }
69  
70  }