Ignore:
Timestamp:
Jan 16, 2013, 11:25:00 AM (12 years ago)
Author:
alloc
Message:

AEI2 0.83:

  • Dependencies from Mods to Tools supported
  • Installed tools can get a menu entry to launch them
  • Mods can unlock levels in persist.dat through UnlockLevel-tag
Location:
AE/installer2/src/net/oni2/aeinstaller/gui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java

    r622 r623  
    88import java.io.File;
    99import java.io.IOException;
     10import java.net.URL;
    1011import java.util.ArrayList;
    1112import java.util.HashMap;
     
    1718import java.util.Vector;
    1819
     20import javax.swing.AbstractAction;
     21import javax.swing.Icon;
     22import javax.swing.ImageIcon;
    1923import javax.swing.JButton;
    2024import javax.swing.JComboBox;
     
    3842import javax.swing.table.TableRowSorter;
    3943
     44import net.oni2.aeinstaller.AEInstaller2;
     45import net.oni2.aeinstaller.backend.AppExecution;
    4046import net.oni2.aeinstaller.backend.Paths;
    4147import net.oni2.aeinstaller.backend.Settings;
     
    8086
    8187        private JMenu mainMenu;
     88        private JMenu toolsMenu;
     89        private TreeSet<JMenuItem> toolsMenuItems = new TreeSet<JMenuItem>();
    8290
    8391        private JSplitPane contents;
     
    412420
    413421        @SuppressWarnings("unused")
     422        private void refreshToolsMenu() {
     423                for (JMenuItem i : toolsMenuItems) {
     424                        toolsMenu.remove(i);
     425                }
     426                toolsMenuItems.clear();
     427                for (Mod m : ModManager.getInstance().getInstalledTools()) {
     428                        if (m.getExeFile() != null && m.getExeFile().exists()) {
     429                                JMenuItem item = new JMenuItem();
     430                                final Vector<String> params = new Vector<String>();
     431                                params.add(m.getExeFile().getPath());
     432                                final File wd = m.getWorkingDir();
     433                                Icon ico = null;
     434                                if (m.getIconFile() != null && m.getIconFile().exists()) {
     435                                        ico = new ImageIcon(m.getIconFile().getPath());
     436                                } else {
     437                                        URL icon = AEInstaller2.class.getResource("images/transparent.png");
     438                                        ico = new ImageIcon(icon);
     439                                }
     440                                item.setAction(new AbstractAction(m.getName(), ico) {
     441                                        private static final long serialVersionUID = 1L;
     442
     443                                        @Override
     444                                        public void actionPerformed(ActionEvent e) {
     445                                                AppExecution.execute(params, wd);
     446                                        }
     447                                });
     448                                toolsMenuItems.add(item);
     449                                toolsMenu.add(item);
     450                        }
     451                }
     452        }
     453
     454        @SuppressWarnings("unused")
    414455        private void revertSelection() {
    415456                model.revertSelection();
     
    510551
    511552                if (instReady) {
    512                         Installer.install(mods, new InstallProgressListener() {
     553                        TreeSet<Mod> actuallyMods = new TreeSet<Mod>();
     554                        TreeSet<Mod> actuallyTools = new TreeSet<Mod>();
     555
     556                        for (Mod m : mods) {
     557                                if (m.isTool())
     558                                        actuallyTools.add(m);
     559                                else
     560                                        actuallyMods.add(m);
     561                        }
     562
     563                        if (actuallyTools.size() > 0) {
     564                                Installer.installTools(actuallyTools);
     565                        }
     566
     567                        Installer.install(actuallyMods, new InstallProgressListener() {
    513568                                @Override
    514569                                public void installProgressUpdate(int done, int total,
     
    657712                Vector<String> params = getBasicOniLaunchParams();
    658713                if (params.size() > 0) {
    659                         try {
    660                                 ProcessBuilder pb = new ProcessBuilder(params);
    661                                 pb.directory(Paths.getEditionBasePath());
    662                                 pb.start();
    663                         } catch (IOException e) {
    664                                 e.printStackTrace();
    665                         }
     714                        AppExecution.execute(params, Paths.getEditionBasePath());
    666715                }
    667716        }
     
    672721                if (params.size() > 0) {
    673722                        params.add("-noswitch");
    674                         try {
    675                                 ProcessBuilder pb = new ProcessBuilder(params);
    676                                 pb.directory(Paths.getEditionBasePath());
    677                                 pb.start();
    678                         } catch (IOException e) {
    679                                 e.printStackTrace();
    680                         }
     723                        AppExecution.execute(params, Paths.getEditionBasePath());
    681724                }
    682725        }
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.properties

    r621 r623  
    2424menu.reglobalize=&Rebuild Core Data
    2525menu.reglobalizeTooltip=Rebuild Core Data
    26 menu.tools=&Manage Tools
    27 menu.toolsTooltip=Install/Remove Tools
    2826menu.update=&Check for updates
    2927menu.updateTooltip=Check for updates to already downloaded packages on the Depot
     28
     29menu.tools=&Tools
     30menu.manageTools=&Manage Tools
     31menu.manageToolsTooltip=Install/Remove Tools
    3032
    3133btnRevertSelection.text=Revert selection
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml

    r621 r623  
    66  locationRelativeTo: null
    77  defaultCloseOperation: doNothingOnClose
    8   onWindowOpened: [execDepotUpdate,checkMandatoryFiles,checkInitialize,initialize,checkUpdates,doUpdate]
     8  onWindowOpened: [execDepotUpdate,checkMandatoryFiles,checkInitialize,initialize,checkUpdates,doUpdate,refreshToolsMenu,focus]
    99  onWindowClosing: [saveLocalData,exit]
    1010  iconImage: img.ae
     
    1919    - Action(name=saveConfig, text=menu.saveConfig, toolTipText=menu.saveConfigTooltip, icon=img.saveFile, onAction=[saveConfig])
    2020    - Action(name=reglobalize, text=menu.reglobalize, toolTipText=menu.reglobalizeTooltip, icon=img.refresh, onAction=[reglobalize])
    21     - Action(name=tools, text=menu.tools, toolTipText=menu.toolsTooltip, icon=img.tools, onAction=[tools])
     21    - Action(name=tools, text=menu.manageTools, toolTipText=menu.manageToolsTooltip, icon=img.tools, onAction=[tools,refreshToolsMenu])
    2222    - Action(name=update, text=menu.update, toolTipText=menu.updateTooltip, icon=img.update, onAction=[checkUpdates,doUpdate])
    2323    - JMenuBar:
     
    3737            - JMenuItem(action=reglobalize)
    3838            - JSeparator()
    39             - JMenuItem(action=tools)
     39            - JMenuItem(action=update)
     40        - JMenu(name=toolsMenu, text=menu.tools):
     41            - JMenuItem(name=manageToolsItem, action=tools)
    4042            - JSeparator()
    41             - JMenuItem(action=update)
    4243    - JToolBar(name=toolbar, floatable=false, orientation=0):
    4344        - JButton(action=exitAction, hideActionText=true)
Note: See TracChangeset for help on using the changeset viewer.