Changeset 608 for AE/installer2/src/net


Ignore:
Timestamp:
Jan 14, 2013, 6:49:25 PM (12 years ago)
Author:
alloc
Message:

AEI2:

  • Added BSL handling to installation
  • Updated config-terms for dependencies/incompatibilities
  • Fixed mod counts for types
  • Open Edition folder through menu
  • Open folder of already downloaded mod through context menu
  • (Semi?)Fixed launching Oni on MacOS
  • Settings: Added checkbox for update notification
Location:
AE/installer2/src/net/oni2/aeinstaller
Files:
1 added
14 edited

Legend:

Unmodified
Added
Removed
  • AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties

    r607 r608  
    11appname=AE Installer 2
    2 appversion=0.71
     2appversion=0.75
    33
    44invalidPath.title=Wrong directory
  • AE/installer2/src/net/oni2/aeinstaller/Images.properties

    r605 r608  
    2727img.tools=/net/oni2/aeinstaller/images/open_icon_library/tools-hammer_and_nails.png
    2828img.install=/net/oni2/aeinstaller/images/open_icon_library/run-build-install-root.png
     29img.folder=/net/oni2/aeinstaller/images/open_icon_library/folder-open-3.png
    2930
    3031img.ae=/net/oni2/aeinstaller/images/AElogo.png
  • AE/installer2/src/net/oni2/aeinstaller/backend/mods/EBSLInstallType.java

    r600 r608  
    55 */
    66public enum EBSLInstallType {
    7         /**
    8          * No BSL files
    9          */
    10         NONE,
    117        /**
    128         * Normal BSL install mode
  • AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java

    r604 r608  
    2929        private String version = "";
    3030        private String creator = "";
    31         private EBSLInstallType bslInstallType = null;
     31        private EBSLInstallType bslInstallType = EBSLInstallType.NORMAL;
    3232        private String description = "";
    3333        private double aeVersion = 0;
     
    3636        private net.oni2.aeinstaller.backend.depot.model.File file = null;
    3737
    38         private HashSet<Integer> conflicts = new HashSet<Integer>();
     38        private HashSet<Integer> incompatibilities = new HashSet<Integer>();
    3939        private HashSet<Integer> dependencies = new HashSet<Integer>();
    4040
     
    5151                name = nm.getTitle();
    5252                packageNumber = nm.getPackageNumber();
     53                platform = nm.getPlatform();
    5354                for (TaxonomyTerm tt : nm.getTypes()) {
    5455                        Type t = ModManager.getInstance().getTypeByName(tt.getName());
    5556                        types.add(t);
    56                         if (!nm.isTool())
     57                        if (!nm.isTool() && isValidOnPlatform())
    5758                                t.addEntry(this);
    5859                }
    59                 platform = nm.getPlatform();
    6060                version = nm.getVersion();
    6161                creator = nm.getCreator();
     
    101101                                                if (sVal.equalsIgnoreCase("addon"))
    102102                                                        bslInstallType = EBSLInstallType.ADDON;
    103                                                 else if (sVal.equalsIgnoreCase("yes"))
    104                                                         bslInstallType = EBSLInstallType.NORMAL;
    105                                                 else
    106                                                         bslInstallType = EBSLInstallType.NONE;
    107103                                        } else if (sName.equalsIgnoreCase("ModVersion")) {
    108104                                                if (node == null)
     
    111107                                                if (node == null)
    112108                                                        description = sVal.replaceAll("\\\\n", "<br>");
    113                                         } else if (sName.equalsIgnoreCase("Depends")) {
     109                                        } else if (sName.equalsIgnoreCase("DependsOn")) {
    114110                                                String[] depsS = sVal.split(",");
    115111                                                for (String s : depsS) {
     
    123119                                                        }
    124120                                                }
    125                                         } else if (sName.equalsIgnoreCase("Conflicts")) {
     121                                        } else if (sName.equalsIgnoreCase("IncompatibleWith")) {
    126122                                                String[] confS = sVal.split(",");
    127123                                                for (String s : confS) {
    128124                                                        try {
    129125                                                                int conf = Integer.parseInt(s);
    130                                                                 conflicts.add(conf);
     126                                                                incompatibilities.add(conf);
    131127                                                        } catch (NumberFormatException e) {
    132128                                                                System.err
    133                                                                                 .format("Mod %05d does contain a non-number dependency: '%s'\n",
     129                                                                                .format("Mod %05d does contain a non-number incompatibility: '%s'\n",
    134130                                                                                                packageNumber, s);
    135131                                                        }
     
    182178                updateLocalData();
    183179
    184                 Type t = ModManager.getInstance().getTypeByName("-Local-");
    185                 types.add(t);
    186                 t.addEntry(this);
    187 
    188180                platform = ECompatiblePlatform.BOTH;
    189181        }
     
    323315
    324316        /**
    325          * @return the conflicts
    326          */
    327         public HashSet<Integer> getConflicts() {
    328                 return conflicts;
     317         * @return the incompabitilities
     318         */
     319        public HashSet<Integer> getIncompabitilities() {
     320                return incompatibilities;
    329321        }
    330322
     
    339331         * @return Is this mod valid on the running platform?
    340332         */
    341         public boolean validOnPlatform() {
    342                 ECompatiblePlatform plat = platform;
    343                 switch (plat) {
     333        public boolean isValidOnPlatform() {
     334                switch (platform) {
    344335                        case BOTH:
    345336                                return true;
  • AE/installer2/src/net/oni2/aeinstaller/backend/mods/ModManager.java

    r604 r608  
    4343                Vector<Integer> res = new Vector<Integer>();
    4444                try {
    45                         FileInputStream fis = new FileInputStream(f);
    46                         XStream xs = new XStream(new StaxDriver());
    47                         Object obj = xs.fromXML(fis);
    48                         if (obj instanceof Vector<?>)
    49                                 res = (Vector<Integer>) obj;
    50                         fis.close();
     45                        if (f.exists()) {
     46                                FileInputStream fis = new FileInputStream(f);
     47                                XStream xs = new XStream(new StaxDriver());
     48                                Object obj = xs.fromXML(fis);
     49                                if (obj instanceof Vector<?>)
     50                                        res = (Vector<Integer>) obj;
     51                                fis.close();
     52                        }
    5153                } catch (FileNotFoundException e) {
    5254                        e.printStackTrace();
     
    8789                mods = new HashMap<Integer, Mod>();
    8890
    89                 types.put("-Local-", new Type("-Local-", null));
     91                Type localType = new Type("-Local-", null);
     92                types.put("-Local-", localType);
    9093
    9194                for (TaxonomyTerm tt : DepotManager.getInstance()
     
    120123
    121124                for (Mod m : modFolders.values()) {
     125                        if (!m.isMandatoryMod()) {
     126                                localType.addEntry(m);
     127                                m.getTypes().add(localType);
     128                        }
    122129                        mods.put(m.getPackageNumber(), m);
    123130                }
     
    152159
    153160        /**
    154          * @return Collection of mods
    155          */
    156         public Collection<Mod> getMods() {
    157                 return mods.values();
    158         }
    159 
    160         /**
    161          * @return Mods which are always installed
     161         * @return Collection of mods valid on this platform and not mandatory
     162         */
     163        public Collection<Mod> getModsValidAndNotMandatory() {
     164                Vector<Mod> res = new Vector<Mod>();
     165                for (Mod m : mods.values())
     166                        if (m.isValidOnPlatform() && !m.isMandatoryMod())
     167                                res.add(m);
     168                return res;
     169        }
     170
     171        /**
     172         * @return Mods which are always installed and valid on this platform
    162173         */
    163174        public TreeSet<Mod> getMandatoryMods() {
    164175                TreeSet<Mod> res = new TreeSet<Mod>();
    165176                for (Mod m : mods.values()) {
    166                         if (m.isMandatoryMod())
    167                                 res.add(m);
    168                 }
    169                 return res;
    170         }
    171 
    172         /**
    173          * @return Collection of tools
     177                        if (m.isValidOnPlatform() && m.isMandatoryMod())
     178                                res.add(m);
     179                }
     180                return res;
     181        }
     182
     183        /**
     184         * @return Collection of tools valid on this platform and not mandatory
    174185         */
    175186        public Collection<Mod> getTools() {
    176                 return tools.values();
    177         }
    178 
    179         /**
    180          * @return Tools which are always installed
     187                Vector<Mod> res = new Vector<Mod>();
     188                for (Mod m : tools.values())
     189                        if (m.isValidOnPlatform() && !m.isMandatoryMod())
     190                                res.add(m);
     191                return res;
     192        }
     193
     194        /**
     195         * @return Tools which are always installed and valid on this platform
    181196         */
    182197        public TreeSet<Mod> getMandatoryTools() {
    183198                TreeSet<Mod> res = new TreeSet<Mod>();
    184199                for (Mod m : tools.values()) {
    185                         if (m.isMandatoryMod())
     200                        if (m.isValidOnPlatform() && m.isMandatoryMod())
    186201                                res.add(m);
    187202                }
     
    230245
    231246        /**
    232          * Check for conflicts between given mods
     247         * Check for incompabitilites between given mods
    233248         *
    234249         * @param mods
    235250         *            Mods to check
    236          * @return Conflicting mods
    237          */
    238         public HashMap<Mod, HashSet<Mod>> checkConflicts(TreeSet<Mod> mods) {
     251         * @return Incompatible mods
     252         */
     253        public HashMap<Mod, HashSet<Mod>> checkIncompabitilites(TreeSet<Mod> mods) {
    239254                // TODO: Verify functionality
    240255                HashMap<Mod, HashSet<Mod>> res = new HashMap<Mod, HashSet<Mod>>();
    241256
    242257                for (Mod m : mods) {
    243                         for (int confNum : m.getConflicts()) {
     258                        for (int confNum : m.getIncompabitilities()) {
    244259                                Mod other = getModByNumber(confNum);
    245260                                if (mods.contains(other)) {
  • AE/installer2/src/net/oni2/aeinstaller/backend/oni/Installer.java

    r606 r608  
    99import java.text.SimpleDateFormat;
    1010import java.util.Date;
     11import java.util.HashMap;
    1112import java.util.List;
    1213import java.util.Scanner;
     
    1819import net.oni2.aeinstaller.backend.Settings;
    1920import net.oni2.aeinstaller.backend.Settings.Platform;
     21import net.oni2.aeinstaller.backend.mods.EBSLInstallType;
    2022import net.oni2.aeinstaller.backend.mods.Mod;
    2123import net.oni2.aeinstaller.backend.mods.ModManager;
     
    2729 */
    2830public class Installer {
     31        private static FileFilter dirFileFilter = new FileFilter() {
     32                @Override
     33                public boolean accept(File pathname) {
     34                        return pathname.isDirectory();
     35                }
     36        };
     37
    2938        /**
    3039         * @return Is Edition Core initialized
     
    97106                }
    98107        }
     108
    99109        /**
    100110         * Install the given set of mods
     
    116126                ModManager.getInstance().saveModSelection(installCfg, mods);
    117127
    118                 Vector<File> folders = new Vector<File>();
    119                 folders.add(Paths.getVanillaOnisPath());
     128                Vector<File> foldersOni = new Vector<File>();
     129                foldersOni.add(Paths.getVanillaOnisPath());
    120130
    121131                for (Mod m : mods) {
     
    127137                                        File oniWin = new File(oni, "win_only");
    128138                                        if (oniCommon.exists())
    129                                                 folders.add(oniCommon);
     139                                                foldersOni.add(oniCommon);
    130140                                        if (Settings.getPlatform() == Platform.MACOS
    131141                                                        && oniMac.exists())
    132                                                 folders.add(oniMac);
     142                                                foldersOni.add(oniMac);
    133143                                        else if (oniWin.exists())
    134                                                 folders.add(oniWin);
     144                                                foldersOni.add(oniWin);
    135145                                } else {
    136                                         folders.add(oni);
    137                                 }
    138                         }
    139                 }
    140 
    141                 combineBinaryFiles(folders, listener);
    142 
    143                 // TODO: bsl()
     146                                        foldersOni.add(oni);
     147                                }
     148                        }
     149                }
     150                combineBinaryFiles(foldersOni, listener);
     151                combineBSLFolders(mods, listener);
     152        }
     153
     154        private static void combineBSLFolders(TreeSet<Mod> mods,
     155                        InstallProgressListener listener) {
     156                listener.installProgressUpdate(95, 100, "Installing BSL files");
     157
     158                HashMap<EBSLInstallType, Vector<Mod>> modsToInclude = new HashMap<EBSLInstallType, Vector<Mod>>();
     159                modsToInclude.put(EBSLInstallType.NORMAL, new Vector<Mod>());
     160                modsToInclude.put(EBSLInstallType.ADDON, new Vector<Mod>());
     161
     162                for (Mod m : mods.descendingSet()) {
     163                        File bsl = new File(m.getLocalPath(), "bsl");
     164                        if (bsl.exists()) {
     165                                if (m.hasSeparatePlatformDirs()) {
     166                                        File bslCommon = new File(bsl, "common");
     167                                        File bslMac = new File(bsl, "mac_only");
     168                                        File bslWin = new File(bsl, "win_only");
     169                                        if ((Settings.getPlatform() == Platform.MACOS && bslMac
     170                                                        .exists())
     171                                                        || ((Settings.getPlatform() == Platform.WIN || Settings
     172                                                                        .getPlatform() == Platform.LINUX) && bslWin
     173                                                                        .exists()) || bslCommon.exists()) {
     174                                                modsToInclude.get(m.getBSLInstallType()).add(m);
     175                                        }
     176                                } else {
     177                                        modsToInclude.get(m.getBSLInstallType()).add(m);
     178                                }
     179                        }
     180                }
     181
     182                for (Mod m : modsToInclude.get(EBSLInstallType.NORMAL)) {
     183                        copyBSL(m, false);
     184                }
     185                for (Mod m : modsToInclude.get(EBSLInstallType.ADDON)) {
     186                        copyBSL(m, true);
     187                }
     188        }
     189
     190        private static void copyBSL(Mod sourceMod, boolean addon) {
     191                File targetBaseFolder = new File(Paths.getEditionGDF(), "IGMD");
     192                if (!targetBaseFolder.exists())
     193                        targetBaseFolder.mkdir();
     194
     195                Vector<File> sources = new Vector<File>();
     196                File bsl = new File(sourceMod.getLocalPath(), "bsl");
     197                if (sourceMod.hasSeparatePlatformDirs()) {
     198                        File bslCommon = new File(bsl, "common");
     199                        File bslMac = new File(bsl, "mac_only");
     200                        File bslWin = new File(bsl, "win_only");
     201                        if (Settings.getPlatform() == Platform.MACOS && bslMac.exists()) {
     202                                for (File f : bslMac.listFiles(dirFileFilter)) {
     203                                        File targetBSL = new File(targetBaseFolder, f.getName());
     204                                        if (addon || !targetBSL.exists())
     205                                                sources.add(f);
     206                                }
     207                        }
     208                        if ((Settings.getPlatform() == Platform.WIN || Settings
     209                                        .getPlatform() == Platform.LINUX) && bslWin.exists()) {
     210                                for (File f : bslWin.listFiles(dirFileFilter)) {
     211                                        File targetBSL = new File(targetBaseFolder, f.getName());
     212                                        if (addon || !targetBSL.exists())
     213                                                sources.add(f);
     214                                }
     215                        }
     216                        if (bslCommon.exists()) {
     217                                for (File f : bslCommon.listFiles(dirFileFilter)) {
     218                                        File targetBSL = new File(targetBaseFolder, f.getName());
     219                                        if (addon || !targetBSL.exists())
     220                                                sources.add(f);
     221                                }
     222                        }
     223                } else {
     224                        for (File f : bsl.listFiles(dirFileFilter)) {
     225                                File targetBSL = new File(targetBaseFolder, f.getName());
     226                                if (addon || !targetBSL.exists())
     227                                        sources.add(f);
     228                        }
     229                }
     230
     231                System.out.println("For mod: " + sourceMod.getName()
     232                                + " install BSL folders: " + sources.toString());
     233                for (File f : sources) {
     234                        File targetPath = new File(targetBaseFolder, f.getName());
     235                        if (!targetPath.exists())
     236                                targetPath.mkdir();
     237                        for (File fbsl : f.listFiles()) {
     238                                File targetFile = new File(targetPath, fbsl.getName());
     239                                if (!targetFile.exists()) {
     240                                        try {
     241                                                FileUtils.copyFile(fbsl, targetFile);
     242                                        } catch (IOException e) {
     243                                                // TODO Auto-generated catch block
     244                                                e.printStackTrace();
     245                                        }
     246                                }
     247                        }
     248                }
    144249        }
    145250
     
    171276                String s : levels.keySet())
    172277                        totalSteps++;
     278                totalSteps++;
    173279
    174280                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     
    202308
    203309                        log.println();
     310                        stepsDone++;
    204311                }
    205312
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java

    r606 r608  
    11package net.oni2.aeinstaller.gui;
    22
     3import java.awt.Desktop;
     4import java.awt.event.ActionEvent;
     5import java.awt.event.ActionListener;
     6import java.awt.event.MouseAdapter;
     7import java.awt.event.MouseEvent;
    38import java.io.File;
    49import java.io.IOException;
     
    1924import javax.swing.JLabel;
    2025import javax.swing.JMenu;
     26import javax.swing.JMenuItem;
    2127import javax.swing.JOptionPane;
     28import javax.swing.JPopupMenu;
    2229import javax.swing.JSplitPane;
    2330import javax.swing.JTable;
     
    124131                tblMods.getSelectionModel().addListSelectionListener(
    125132                                new ListSelectionListener() {
    126 
    127133                                        @Override
    128134                                        public void valueChanged(ListSelectionEvent e) {
     
    138144                                        }
    139145                                });
    140 
     146                tblMods.addMouseListener(new MouseAdapter() {
     147                        private void common(MouseEvent e) {
     148                                int r = tblMods.rowAtPoint(e.getPoint());
     149                                if (r >= 0 && r < tblMods.getRowCount())
     150                                        tblMods.setRowSelectionInterval(r, r);
     151                                else
     152                                        tblMods.clearSelection();
     153
     154                                int rowindex = tblMods.getSelectedRow();
     155                                if (rowindex >= 0) {
     156                                        if (e.isPopupTrigger()
     157                                                        && e.getComponent() instanceof JTable) {
     158                                                int modelRow = tblMods.convertRowIndexToModel(rowindex);
     159                                                final Mod mod = (Mod) model.getValueAt(modelRow, -1);
     160
     161                                                if (mod.isLocalAvailable()) {
     162                                                        JPopupMenu popup = new JPopupMenu();
     163                                                        JMenuItem openModFolder = new JMenuItem(bundle
     164                                                                        .getString("openModFolder.text"));
     165                                                        openModFolder
     166                                                                        .addActionListener(new ActionListener() {
     167                                                                                @Override
     168                                                                                public void actionPerformed(
     169                                                                                                ActionEvent arg0) {
     170                                                                                        try {
     171                                                                                                Desktop.getDesktop().open(
     172                                                                                                                mod.getLocalPath());
     173                                                                                        } catch (IOException e) {
     174                                                                                                e.printStackTrace();
     175                                                                                        }
     176                                                                                }
     177                                                                        });
     178                                                        popup.add(openModFolder);
     179                                                        popup.show(e.getComponent(), e.getX(), e.getY());
     180                                                }
     181                                        }
     182                                }
     183                        }
     184
     185                        @Override
     186                        public void mousePressed(MouseEvent e) {
     187                                common(e);
     188                        }
     189
     190                        @Override
     191                        public void mouseReleased(MouseEvent e) {
     192                                common(e);
     193                        }
     194                });
    141195                // To get checkbox-cells with background of row
    142196                ((JComponent) tblMods.getDefaultRenderer(Boolean.class))
     
    163217
    164218        private void exit() {
    165                 setVisible(false);
    166219                dispose();
     220                System.exit(0);
    167221        }
    168222
     
    199253        private void checkUpdates() {
    200254                if (Settings.getInstance().get("notifyupdates", true)) {
     255                        // TODO
    201256                }
    202257        }
     
    365420                        } else {
    366421                                HashMap<Mod, HashSet<Mod>> conflicts = ModManager.getInstance()
    367                                                 .checkConflicts(mods);
     422                                                .checkIncompabitilites(mods);
    368423                                if (conflicts.size() > 0) {
    369                                         System.err.println("Conflicting mods: "
     424                                        System.err.println("Incompatible mods: "
    370425                                                        + conflicts.toString());
    371426                                        break;
     
    377432
    378433                if (instReady) {
     434                        System.out.println("Install mods: " + mods.toString());
     435
    379436                        Installer.install(mods, new InstallProgressListener() {
    380437                                @Override
     
    462519                                break;
    463520                        case MACOS:
    464                                 params.add(new File(Paths.getEditionBasePath(), "Oni")
    465                                                 .getPath());
     521                                params.add(new File(Paths.getEditionBasePath(),
     522                                                "Oni.app/Contents/MacOS/Oni").getPath());
    466523                                break;
    467524                        case LINUX:
     
    512569        }
    513570
     571        @SuppressWarnings("unused")
     572        private void openEditionFolder() {
     573                try {
     574                        Desktop.getDesktop().open(Paths.getEditionBasePath());
     575                } catch (IOException e) {
     576                        e.printStackTrace();
     577                }
     578        }
     579
    514580        @Override
    515581        public void handleAbout(ApplicationEvent event) {
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.properties

    r606 r608  
    1515menu.runOniWin=Run Oni (&window)
    1616menu.runOniWinTooltip=Run Oni in windowed mode
     17menu.openEditionFolder=Open Edition folder
     18menu.openEditionFolderTooltip=Open the Edition folder in the file explorer
    1719menu.loadConfig=&Load configuration...
    1820menu.loadConfigTooltip=Load configuration
     
    3133lblModTypes.text=Mod type:
    3234lblDownloadSize.text=Size of files to download:
     35
     36openModFolder.text=Open mod folder
    3337
    3438lblSubmitter.text=Submitter:
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml

    r606 r608  
    1515    - Action(name=runOniFull, text=menu.runOniFull, toolTipText=menu.runOniFullTooltip, icon=img.oni, onAction=[oniFull])
    1616    - Action(name=runOniWin, text=menu.runOniWin, toolTipText=menu.runOniWinTooltip, icon=img.oni, onAction=[oniWin])
     17    - Action(name=openEditionFolder, text=menu.openEditionFolder, toolTipText=menu.openEditionFolderTooltip, icon=img.folder, onAction=[openEditionFolder])
    1718    - Action(name=loadConfig, text=menu.loadConfig, toolTipText=menu.loadConfigTooltip, icon=img.openFile, onAction=[loadConfig])
    1819    - Action(name=saveConfig, text=menu.saveConfig, toolTipText=menu.saveConfigTooltip, icon=img.saveFile, onAction=[saveConfig])
     
    2728            - JMenuItem(action=runOniFull)
    2829            - JMenuItem(action=runOniWin)
     30            - JSeparator()
     31            - JMenuItem(action=openEditionFolder)
    2932            - JSeparator()
    3033            - JMenuItem(action=loadConfig)
  • AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java

    r602 r608  
    2929                        return false;
    3030
    31                 if (!mod.validOnPlatform())
     31                if (!mod.isValidOnPlatform())
    3232                        return false;
    3333
  • AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java

    r606 r608  
    121121        public void reloadData() {
    122122                items.clear();
    123                 items.addAll(ModManager.getInstance().getMods());
     123                items.addAll(ModManager.getInstance().getModsValidAndNotMandatory());
    124124                revertSelection();
    125125        }
  • AE/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java

    r593 r608  
    77
    88import javax.swing.AbstractAction;
     9import javax.swing.JCheckBox;
    910import javax.swing.JComboBox;
    1011import javax.swing.JComponent;
     
    3334        private LaFComboModel laFModel;
    3435
     36        private JCheckBox chkNotifyOnStart;
     37
    3538        /**
    3639         * Open the settings
    3740         */
    3841        public SettingsDialog() {
    39                 setMinimumSize(new Dimension(500, (int) getSize().getHeight() + 0));
     42                setMinimumSize(new Dimension(320, (int) getSize().getHeight() + 0));
    4043
    4144                AbstractAction closeAction = new AbstractAction() {
     
    6265                laFModel = new LaFComboModel();
    6366                cmbLaF.setModel(laFModel);
     67
     68                chkNotifyOnStart.setSelected(set.get("notifyupdates", true));
    6469        }
    6570
     
    6873                Settings set = Settings.getInstance();
    6974
    70                 String oldLaf = set.get("lookandfeel",
    71                                 UIManager.getLookAndFeel().getClass().getName());
     75                set.get("notifyupdates", chkNotifyOnStart.isSelected());
     76
     77                String oldLaf = set.get("lookandfeel", UIManager.getLookAndFeel()
     78                                .getClass().getName());
    7279                String newLaf = laFModel.getSelectedClassName();
    7380
  • AE/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.properties

    r591 r608  
    66lblLaF=GUI theme:
    77
    8 panSetupDefaults=Default values for the installations
    9 lblCreateDesktop=Link auf Desktop erstellen:
    10 lblDesktopFolder=Desktop-Ordner:
    11 txtDesktopFolder=Relativ zum Desktop-Ordner. Z.B. "." um die Verknüpfungen direkt auf dem Desktop abzulegen, "Spiele" um die Verknüpfungen in einen Unterordner Spiele auf dem Desktop zu legen.
    12 lblUnattended=<html>Schnelles Setup (obige<br>Einstellungen nicht im Setup änderbar):</html>
    13 
     8panCommon=Common settings
     9lblNotifyOnStart=Notify about updates on startup:
    1410
    1511newLaF.text=A new GUI theme was selected.\nPlease restart the application in order to apply the changes.
  • AE/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.yml

    r593 r608  
    1010    - JButton(name=btnOk, text=btnOk, onAction=[save,dispose])
    1111    - JButton(name=btnCancel, text=btnCancel, onAction=[dispose])
    12     - JPanel(name=panSetupDefaults, groupTitle=panSetupDefaults):
    13       - JLabel(name=lblCreateDesktop, text=lblCreateDesktop)
    14       - JCheckBox(name=chkCreateDesktop)
    15       - JLabel(name=lblDesktopFolder, text=lblDesktopFolder)
    16       - JTextField(name=txtDesktopFolder, toolTipText=txtDesktopFolder)
     12    - JPanel(name=panCommon, groupTitle=panCommon):
     13      - JLabel(name=lblNotifyOnStart, text=lblNotifyOnStart)
     14      - JCheckBox(name=chkNotifyOnStart)
    1715      - MigLayout: |
    1816           [min]                [grow]
    19            >lblCreateDesktop    chkCreateDesktop         [pref]
    20            >lblDesktopFolder    txtDesktopFolder         [pref]
     17           >lblNotifyOnStart    chkNotifyOnStart         [pref]
    2118    - JPanel(name=panUI, groupTitle=panUI):
    2219      - JLabel(name=lblLaF, text=lblLaF)
     
    2724    - MigLayout: |
    2825         [grow]
    29          panSetupDefaults        [pref]
     26         panCommon               [pref]
    3027         panUI                   [pref]
    3128         >btnOk+*=1,btnCancel=1  [min]
Note: See TracChangeset for help on using the changeset viewer.