package org.korsakow.ide.ui.controller.action; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileNotFoundException; import javax.swing.JMenuItem; import org.dsrg.soenea.domain.MapperException; import org.korsakow.ide.Application; import org.korsakow.ide.DataRegistry; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.ui.controller.ProjectLoader; import org.korsakow.services.conversion.ConversionException; import org.xml.sax.SAXException; public class LoadRecentProjectAction extends NewProjectAction implements ActionListener { @Override public void actionPerformed(ActionEvent event) { try { if (!ExitAction.checkForChangesAndPrompt()) return; } catch (MapperException e) { Application.getInstance().showUnhandledErrorDialog(e); return; } JMenuItem item = (JMenuItem)event.getSource(); try { ProjectLoader.loadProject(new File(item.getText())); SaveProjectAction.addRecent(DataRegistry.getFile().getAbsolutePath()); } catch (FileNotFoundException e) { Application.getInstance().showAlertDialog(LanguageBundle.getString("general.errors.filenotfound.title"), LanguageBundle.getString("general.errors.filenotfound.message", e.getMessage())); } catch (ConversionException e) { Application.getInstance().showAlertDialog(LanguageBundle.getString("general.errors.cantopen.title"), LanguageBundle.getString("general.errors.conversionerror.message", e.getCause()!=null?e.getCause().getClass().getSimpleName():e.getClass().getSimpleName(), e.getMessage())); } catch (SAXException e) { Application.getInstance().showAlertDialog(LanguageBundle.getString("general.errors.cantopen.title"), LanguageBundle.getString("general.errors.invalidprojectfile.message")); } catch (Throwable e) { Application.getInstance().showUnhandledErrorDialog(LanguageBundle.getString("general.errors.cantopen.title"), e); ProjectLoader.newProject(); } } }