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
         return configFile.getKeyDomain("general").get(key);
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
     public void setGeneralSetting(final String key, final String value) {
77
     public void setGeneralSetting(final String key, final String value) {

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

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

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

48
 import uk.co.md87.evetool.Account;
48
 import uk.co.md87.evetool.Account;
49
 import uk.co.md87.evetool.AccountManager;
49
 import uk.co.md87.evetool.AccountManager;
50
 import uk.co.md87.evetool.ApiFactory;
50
 import uk.co.md87.evetool.ApiFactory;
51
+import uk.co.md87.evetool.ConfigManager;
51
 import uk.co.md87.evetool.api.EveApi;
52
 import uk.co.md87.evetool.api.EveApi;
52
 import uk.co.md87.evetool.ui.ContentPanel.Page;
53
 import uk.co.md87.evetool.ui.ContentPanel.Page;
53
 import uk.co.md87.evetool.ui.ContextPanel;
54
 import uk.co.md87.evetool.ui.ContextPanel;
76
     private final MainWindow window;
77
     private final MainWindow window;
77
     private final ApiFactory factory;
78
     private final ApiFactory factory;
78
     private final AccountManager manager;
79
     private final AccountManager manager;
80
+    private final ConfigManager config;
79
     private final Map<Account, EveApi> apis = new HashMap<Account, EveApi>();
81
     private final Map<Account, EveApi> apis = new HashMap<Account, EveApi>();
80
     private final Map<Account, JPanel> panels = new HashMap<Account, JPanel>();
82
     private final Map<Account, JPanel> panels = new HashMap<Account, JPanel>();
81
     private final List<AccountChar> chars = new ArrayList<AccountChar>();
83
     private final List<AccountChar> chars = new ArrayList<AccountChar>();
82
 
84
 
83
     public OverviewPage(final MainWindow window, final AccountManager manager,
85
     public OverviewPage(final MainWindow window, final AccountManager manager,
84
-            final ApiFactory factory) {
86
+            final ApiFactory factory, final ConfigManager config) {
85
         this.window = window;
87
         this.window = window;
86
         this.factory = factory;
88
         this.factory = factory;
87
         this.manager = manager;
89
         this.manager = manager;
90
+        this.config = config;
88
 
91
 
89
         setLayout(new MigLayout("fillx"));
92
         setLayout(new MigLayout("fillx"));
90
 
93
 
152
 
155
 
153
         panels.put(account, panel);
156
         panels.put(account, panel);
154
         apis.put(account, account.getApi(factory));
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
     /** {@inheritDoc} */
164
     /** {@inheritDoc} */

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

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

Loading…
Cancel
Save