From f25ebace0bc7b6d0326c8b6ed904e785c51f7d4f Mon Sep 17 00:00:00 2001 From: Vhati Date: Mon, 26 Aug 2013 09:46:06 -0400 Subject: [PATCH] Changed modorder saving to occur on exit --- .../java/net/vhati/modmanager/FTLModManager.java | 1 - .../net/vhati/modmanager/ui/ManagerFrame.java | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/vhati/modmanager/FTLModManager.java b/src/main/java/net/vhati/modmanager/FTLModManager.java index 22f871b..665e887 100644 --- a/src/main/java/net/vhati/modmanager/FTLModManager.java +++ b/src/main/java/net/vhati/modmanager/FTLModManager.java @@ -171,7 +171,6 @@ public class FTLModManager { // Create the GUI. try { final ManagerFrame frame = new ManagerFrame( config, APP_NAME, APP_VERSION, APP_URL, APP_AUTHOR ); - frame.setDefaultCloseOperation( frame.EXIT_ON_CLOSE ); frame.setVisible(true); SwingUtilities.invokeLater(new Runnable() { diff --git a/src/main/java/net/vhati/modmanager/ui/ManagerFrame.java b/src/main/java/net/vhati/modmanager/ui/ManagerFrame.java index 51d7866..1ae5f1c 100644 --- a/src/main/java/net/vhati/modmanager/ui/ManagerFrame.java +++ b/src/main/java/net/vhati/modmanager/ui/ManagerFrame.java @@ -113,6 +113,7 @@ public class ManagerFrame extends JFrame implements ActionListener, HashObserver this.appAuthor = appAuthor; this.setTitle( String.format( "%s v%s", appName, appVersion ) ); + this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); JPanel contentPane = new JPanel( new BorderLayout() ); @@ -198,6 +199,21 @@ public class ManagerFrame extends JFrame implements ActionListener, HashObserver contentPane.add( statusPanel, BorderLayout.SOUTH ); + this.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing( WindowEvent e ) { + List sortedMods = new ArrayList(); + + for ( int i=0; i < localModsTableModel.getRowCount(); i++ ) { + sortedMods.add( localModsTableModel.getItem(i) ); + } + saveModOrder( sortedMods ); + ManagerFrame.this.setVisible( false ); + ManagerFrame.this.dispose(); + System.exit( 0 ); + } + }); + // Double-click toggles checkboxes. localModsTable.addMouseListener(new MouseAdapter() { int prevRow = -1;