ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/java/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
(Generate patch)

Comparing AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java (file contents):
Revision 671 by alloc, Sun Feb 10 17:58:13 2013 UTC vs.
Revision 672 by alloc, Sat Feb 23 17:40:47 2013 UTC

# Line 43 | Line 43 | import net.oni2.aeinstaller.backend.AppE
43   import net.oni2.aeinstaller.backend.ImageResizer;
44   import net.oni2.aeinstaller.backend.Paths;
45   import net.oni2.aeinstaller.backend.Settings;
46 + import net.oni2.aeinstaller.backend.ToolLauncher;
47   import net.oni2.aeinstaller.backend.Settings.Platform;
48   import net.oni2.aeinstaller.backend.SizeFormatter;
49   import net.oni2.aeinstaller.backend.depot.DepotManager;
# Line 228 | Line 229 | public class MainWin extends JFrame impl
229                                                  .getUpdatableMods();
230                                  TreeSet<Package> tools = PackageManager.getInstance()
231                                                  .getUpdatableTools();
231                                int size = 0;
232                                  JPanel panPackages = new JPanel(new GridLayout(0, 1));
233                                  execUpdates = new TreeSet<Package>();
234                                  execUpdates.addAll(mods);
235                                  execUpdates.addAll(tools);
236 +                                final JLabel lblSize = new JLabel("<html>"
237 +                                                + String.format(
238 +                                                                bundle.getString("updatesAvailableSize.text"),
239 +                                                                SizeFormatter.format(0, 3)) + "</html>");
240 +                                int size = 0;
241                                  for (final Package m : mods) {
242                                          size += m.getZipSize();
243 <                                        JCheckBox check = new JCheckBox("Mod: " + m.getName());
243 >                                        JCheckBox check = new JCheckBox("Mod: " + m.getName()
244 >                                                        + " (" + SizeFormatter.format(size, 1) + ")");
245                                          check.setSelected(true);
246                                          check.addItemListener(new ItemListener() {
247                                                  @Override
# Line 244 | Line 250 | public class MainWin extends JFrame impl
250                                                                  execUpdates.add(m);
251                                                          else
252                                                                  execUpdates.remove(m);
253 +                                                        int s = 0;
254 +                                                        for (Package p : execUpdates)
255 +                                                                s += p.getZipSize();
256 +                                                        lblSize.setText("<html>"
257 +                                                                        + String.format(
258 +                                                                                        bundle.getString("updatesAvailableSize.text"),
259 +                                                                                        SizeFormatter.format(s, 3))
260 +                                                                        + "</html>");
261                                                  }
262                                          });
263                                          panPackages.add(check);
264                                  }
265                                  for (final Package m : tools) {
266                                          size += m.getZipSize();
267 <                                        JCheckBox check = new JCheckBox("Tool: " + m.getName());
267 >                                        JCheckBox check = new JCheckBox("Tool: " + m.getName()
268 >                                                        + " (" + SizeFormatter.format(size, 1) + ")");
269                                          check.setSelected(true);
270 +                                        check.addItemListener(new ItemListener() {
271 +                                                @Override
272 +                                                public void itemStateChanged(ItemEvent e) {
273 +                                                        if (e.getStateChange() == ItemEvent.SELECTED)
274 +                                                                execUpdates.add(m);
275 +                                                        else
276 +                                                                execUpdates.remove(m);
277 +                                                        int s = 0;
278 +                                                        for (Package p : execUpdates)
279 +                                                                s += p.getZipSize();
280 +                                                        lblSize.setText("<html>"
281 +                                                                        + String.format(
282 +                                                                                        bundle.getString("updatesAvailableSize.text"),
283 +                                                                                        SizeFormatter.format(s, 3))
284 +                                                                        + "</html>");
285 +                                                }
286 +                                        });
287                                          panPackages.add(check);
288                                  }
289 +                                lblSize.setText("<html>"
290 +                                                + String.format(
291 +                                                                bundle.getString("updatesAvailableSize.text"),
292 +                                                                SizeFormatter.format(size, 3)) + "</html>");
293                                  if (size > 0) {
294                                          // Build info dialog content
295                                          JPanel packages = new JPanel(new BorderLayout(0, 7));
296                                          JLabel lblIntro = new JLabel("<html>"
297                                                          + bundle.getString("updatesAvailable.text")
298                                                          + "</html>");
263                                        JLabel lblSize = new JLabel("<html>"
264                                                        + String.format(bundle
265                                                                        .getString("updatesAvailableSize.text"),
266                                                                        SizeFormatter.format(size, 3)) + "</html>");
299                                          packages.add(lblIntro, BorderLayout.NORTH);
300                                          packages.add(panPackages, BorderLayout.CENTER);
301                                          packages.add(lblSize, BorderLayout.SOUTH);
# Line 432 | Line 464 | public class MainWin extends JFrame impl
464                          toolsMenu.remove(i);
465                  }
466                  toolsMenuItems.clear();
467 <                for (Package m : PackageManager.getInstance().getInstalledTools()) {
467 >                for (final Package m : PackageManager.getInstance().getInstalledTools()) {
468                          File exe = m.getExeFile();
469                          if (exe != null && exe.exists()) {
470                                  JMenuItem item = new JMenuItem();
439                                final Vector<String> params = new Vector<String>();
440                                if (exe.getName().toLowerCase().endsWith(".jar")) {
441                                        File jre = null;
442                                        if (Settings.getPlatform() == Platform.WIN)
443                                                jre = new File(System.getProperties().getProperty(
444                                                                "java.home"), "bin/javaw.exe");
445                                        else
446                                                jre = new File(System.getProperties().getProperty(
447                                                                "java.home"), "bin/java");
448                                        params.add(jre.getPath());
449                                        params.add("-jar");
450                                }
451                                params.add(exe.getPath());
452                                final File wd = m.getWorkingDir();
471                                  ImageIcon ico = null;
472                                  if (m.getIconFile() != null && m.getIconFile().exists()) {
473                                          ico = new ImageIcon(m.getIconFile().getPath());
# Line 463 | Line 481 | public class MainWin extends JFrame impl
481                                          private static final long serialVersionUID = 1L;
482  
483                                          @Override
484 <                                        public void actionPerformed(ActionEvent e) {
485 <                                                AppExecution.execute(params, wd);
484 >                                        public void actionPerformed(ActionEvent evt) {
485 >                                                try {
486 >                                                        ToolLauncher.launch(m);
487 >                                                } catch (Exception ex) {
488 >                                                        if (ex.getMessage().contains("JRE"))
489 >                                                                JOptionPane.showMessageDialog(null,
490 >                                                                                bundle.getString("jreNotFound.text"),
491 >                                                                                bundle.getString("jreNotFound.title"),
492 >                                                                                JOptionPane.ERROR_MESSAGE);
493 >                                                        if (ex.getMessage().contains(".NET"))
494 >                                                                JOptionPane.showMessageDialog(null,
495 >                                                                                bundle.getString("dotNetNotFound.text"),
496 >                                                                                bundle.getString("dotNetNotFound.title"),
497 >                                                                                JOptionPane.ERROR_MESSAGE);
498 >                                                }
499                                          }
500                                  });
501                                  toolsMenuItems.add(item);

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)