Browse Source

Remember the previously selected character + restore

master
Chris Smith 15 years ago
parent
commit
fa20ac28c9

+ 6
- 2
src/uk/co/md87/evetool/ConfigManager.java View File

@@ -66,8 +66,12 @@ public class ConfigManager {
66 66
         return configFile.getKeyDomain("general").get(key);
67 67
     }
68 68
 
69
-    public int getGeneralSettingInt(final String key) {
70
-        return Integer.parseInt(configFile.getKeyDomain("general-int").get(key));
69
+    public int getGeneralSettingInt(final String key, final int fallback) {
70
+        try {
71
+            return Integer.parseInt(configFile.getKeyDomain("general-int").get(key));
72
+        } catch (NumberFormatException ex) {
73
+            return fallback;
74
+        }
71 75
     }
72 76
 
73 77
     public void setGeneralSetting(final String key, final String value) {

+ 3
- 1
src/uk/co/md87/evetool/ui/MainWindow.java View File

@@ -83,7 +83,7 @@ public class MainWindow extends JFrame {
83 83
         this.contextPanel = new ContextPanel();
84 84
 
85 85
         pages = new TreeMap<String, ContentPanel.Page>();
86
-        pages.put("Overview", new OverviewPage(this, manager, factory));
86
+        pages.put("Overview", new OverviewPage(this, manager, factory, config));
87 87
         pages.put("Skills", new SkillPage(this, manager, factory));
88 88
         pages.put("Ships", new ShipsPage(this, manager, factory));
89 89
 
@@ -134,6 +134,8 @@ public class MainWindow extends JFrame {
134 134
 
135 135
         menuPanel.setSelectedChar(newChar);
136 136
         setTitle("EVE Tool - " + newChar.getCharInfo().getName());
137
+
138
+        config.setGeneralSetting("selectedChar", newChar.getCharInfo().getId());
137 139
     }
138 140
 
139 141
     public ContextPanel getContextPanel() {

+ 7
- 2
src/uk/co/md87/evetool/ui/pages/OverviewPage.java View File

@@ -48,6 +48,7 @@ import net.miginfocom.swing.MigLayout;
48 48
 import uk.co.md87.evetool.Account;
49 49
 import uk.co.md87.evetool.AccountManager;
50 50
 import uk.co.md87.evetool.ApiFactory;
51
+import uk.co.md87.evetool.ConfigManager;
51 52
 import uk.co.md87.evetool.api.EveApi;
52 53
 import uk.co.md87.evetool.ui.ContentPanel.Page;
53 54
 import uk.co.md87.evetool.ui.ContextPanel;
@@ -76,15 +77,17 @@ public class OverviewPage extends Page implements AccountManager.AccountListener
76 77
     private final MainWindow window;
77 78
     private final ApiFactory factory;
78 79
     private final AccountManager manager;
80
+    private final ConfigManager config;
79 81
     private final Map<Account, EveApi> apis = new HashMap<Account, EveApi>();
80 82
     private final Map<Account, JPanel> panels = new HashMap<Account, JPanel>();
81 83
     private final List<AccountChar> chars = new ArrayList<AccountChar>();
82 84
 
83 85
     public OverviewPage(final MainWindow window, final AccountManager manager,
84
-            final ApiFactory factory) {
86
+            final ApiFactory factory, final ConfigManager config) {
85 87
         this.window = window;
86 88
         this.factory = factory;
87 89
         this.manager = manager;
90
+        this.config = config;
88 91
 
89 92
         setLayout(new MigLayout("fillx"));
90 93
 
@@ -152,8 +155,10 @@ public class OverviewPage extends Page implements AccountManager.AccountListener
152 155
 
153 156
         panels.put(account, panel);
154 157
         apis.put(account, account.getApi(factory));
158
+
159
+        int selectChar = config.getGeneralSettingInt("selectedChar", -1);
155 160
         
156
-        new AccountUpdateWorker(this, apis.get(account), panel).execute();
161
+        new AccountUpdateWorker(this, window, apis.get(account), panel, selectChar).execute();
157 162
     }
158 163
 
159 164
     /** {@inheritDoc} */

+ 11
- 1
src/uk/co/md87/evetool/ui/workers/AccountUpdateWorker.java View File

@@ -37,6 +37,7 @@ import uk.co.md87.evetool.api.ApiResponse;
37 37
 import uk.co.md87.evetool.api.EveApi;
38 38
 import uk.co.md87.evetool.api.wrappers.CharacterList;
39 39
 import uk.co.md87.evetool.api.wrappers.data.BasicCharInfo;
40
+import uk.co.md87.evetool.ui.MainWindow;
40 41
 import uk.co.md87.evetool.ui.data.AccountChar;
41 42
 import uk.co.md87.evetool.ui.pages.OverviewPage;
42 43
 
@@ -57,13 +58,18 @@ public class AccountUpdateWorker extends SwingWorker<ApiResponse<CharacterList>,
57 58
     private final OverviewPage page;
58 59
     private final EveApi api;
59 60
     private final JPanel target;
61
+    private final MainWindow window;
62
+    private final int selectChar;
60 63
 
61
-    public AccountUpdateWorker(final OverviewPage page, final EveApi api, final JPanel panel) {
64
+    public AccountUpdateWorker(final OverviewPage page, final MainWindow window,
65
+            final EveApi api, final JPanel panel, final int selectChar) {
62 66
         super();
63 67
 
64 68
         this.page = page;
65 69
         this.api = api;
70
+        this.window = window;
66 71
         this.target = panel;
72
+        this.selectChar = selectChar;
67 73
     }
68 74
 
69 75
     /** {@inheritDoc} */
@@ -112,6 +118,10 @@ public class AccountUpdateWorker extends SwingWorker<ApiResponse<CharacterList>,
112 118
                     new CharacterSkillUpdateWorker(newApi, ac).execute();
113 119
 
114 120
                     portrait.addMouseListener(new PortraitMouseListener(page, ac));
121
+
122
+                    if (character.getId() == selectChar) {
123
+                        window.setSelectedChar(ac);
124
+                    }
115 125
                 }
116 126
             } else {
117 127
                 target.removeAll();

Loading…
Cancel
Save