package no.ntnu.fp.gui;
import java.awt.event.ActionEvent;
import java.net.URL;
import javax.swing.AbstractAction;
import no.ntnu.fp.storage.FileStorage;
/**
* Implements the command for saving the {@link no.ntnu.fp.model.Project}.
*
* @author Thomas Østerlie
*
* @version $Revision: 1.6 $ - $Date: 2005/02/22 08:45:27 $
*/
class SaveAction extends AbstractAction {
/**
* The parent component.
*/
private ProjectPanel projectPanel;
/**
* Default constructor. Initialises member variables.
*
* @param projectPanel The parent component.
*/
public SaveAction(ProjectPanel projectPanel) {
this.projectPanel = projectPanel;
}
/**
* Invoked when an action occurs. If the model has not yet been saved,
* the {@link SaveAsAction} is invoked instead.
*
* @param e The action event.
*/
public void actionPerformed(ActionEvent event) {
PersonListModel plm = projectPanel.getModel();
URL path = plm.getUrl();
if (path == null) {
SaveAsAction saveAs = new SaveAsAction(projectPanel);
saveAs.actionPerformed(null);
} else {
try {
FileStorage file = new FileStorage();
file.save(plm.getUrl(), plm.getProject());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}