Changeset 860 for java/installer2/src


Ignore:
Timestamp:
May 8, 2013, 12:25:39 PM (12 years ago)
Author:
alloc
Message:

AEI2.11:

Location:
java/installer2/src/net/oni2/aeinstaller
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • java/installer2/src/net/oni2/aeinstaller/backend/packages/PackageManager.java

    r859 r860  
    3535        private Type localType = null;
    3636
     37        private HashMap<Integer, Package> newToolsOnDepot = new HashMap<Integer, Package>();
     38        private HashMap<Integer, Package> newModsOnDepot = new HashMap<Integer, Package>();
     39
    3740        /**
    3841         * @param f
     
    8790         */
    8891        public void init() {
     92                HashMap<Integer, Package> oldMods = mods;
     93                HashMap<Integer, Package> oldTools = tools;
     94
    8995                types = new HashMap<String, Type>();
    9096                mods = new HashMap<Integer, Package>();
     97                tools = new HashMap<Integer, Package>();
     98
     99                newModsOnDepot = new HashMap<Integer, Package>();
     100                newToolsOnDepot = new HashMap<Integer, Package>();
    91101
    92102                localType = new Type("-Local-");
     
    100110                        if (nm.getUploads().size() == 1) {
    101111                                Package m = new Package(nm);
    102                                 if (nm.isTool())
     112                                if (nm.isTool()) {
    103113                                        tools.put(m.getPackageNumber(), m);
    104                                 else
     114                                        if (!oldTools.containsKey(m.getPackageNumber()))
     115                                                newToolsOnDepot.put(m.getPackageNumber(), m);
     116                                } else {
    105117                                        mods.put(m.getPackageNumber(), m);
     118                                        if (!oldMods.containsKey(m.getPackageNumber()))
     119                                                newModsOnDepot.put(m.getPackageNumber(), m);
     120                                }
    106121                        }
    107122                }
     
    247262                }
    248263                return res;
     264        }
     265
     266        /**
     267         * @return the newToolsOnDepot
     268         */
     269        public HashMap<Integer, Package> getNewToolsOnDepot() {
     270                return newToolsOnDepot;
     271        }
     272
     273        /**
     274         * @return the newModsOnDepot
     275         */
     276        public HashMap<Integer, Package> getNewModsOnDepot() {
     277                return newModsOnDepot;
    249278        }
    250279
  • java/installer2/src/net/oni2/aeinstaller/gui/MainWin.java

    r859 r860  
    225225                }
    226226
     227                PackageManager.loadFromCacheFile(Paths.getPacManCacheFilename());
     228
    227229                if (hasUpdated || !Paths.getPacManCacheFilename().exists()) {
    228230                        PackageManager.getInstance().init();
    229231                        PackageManager.getInstance().saveToCacheFile(
    230232                                        Paths.getPacManCacheFilename());
    231                 } else
    232                         PackageManager.loadFromCacheFile(Paths.getPacManCacheFilename());
     233                }
    233234                tblMods.reloadData();
    234235                initModTypeBox();
     
    390391
    391392        @SuppressWarnings("unused")
     393        private void showNewPackages() {
     394                PackageManager pm = PackageManager.getInstance();
     395                if ((pm.getNewModsOnDepot().size() >= pm.getModsValidAndNotCore()
     396                                .size())
     397                                || (pm.getNewToolsOnDepot().size() >= pm.getTools().size()))
     398                        return;
     399                if (SettingsManager.getInstance().get("notifynewpackages", true)) {
     400                        if (pm.getNewModsOnDepot().size() > 0
     401                                        || pm.getNewToolsOnDepot().size() > 0) {
     402                                TreeSet<Package> mods = new TreeSet<Package>(pm
     403                                                .getNewModsOnDepot().values());
     404                                TreeSet<Package> tools = new TreeSet<Package>(pm
     405                                                .getNewToolsOnDepot().values());
     406                                StringBuffer modsString = new StringBuffer();
     407                                StringBuffer toolsString = new StringBuffer();
     408                                for (final Package m : mods) {
     409                                        modsString.append("<li>" + m.getName() + "</li>");
     410                                }
     411                                for (final Package m : tools) {
     412                                        toolsString.append("<li>" + m.getName() + "</li>");
     413                                }
     414                                // Build info dialog content
     415                                String message = "<html>"
     416                                                + bundle.getString("newPackages.text") + "</html>";
     417                                if (modsString.length() > 0) {
     418                                        modsString.insert(0, "Mods:<ul>");
     419                                        modsString.append("</ul>");
     420                                        message = message.replaceAll("%1", modsString.toString());
     421                                } else {
     422                                        message = message.replaceAll("%1", "");
     423                                }
     424                                if (toolsString.length() > 0) {
     425                                        toolsString.insert(0, "Tools:<ul>");
     426                                        toolsString.append("</ul>");
     427                                        message = message.replaceAll("%2", toolsString.toString());
     428                                } else {
     429                                        message = message.replaceAll("%2", "");
     430                                }
     431
     432                                JPanel pan = new JPanel(new BorderLayout(0, 25));
     433                                JLabel lblTxt = new JLabel(message);
     434                                pan.add(lblTxt, BorderLayout.CENTER);
     435                                JCheckBox checkFutureUpdates = new JCheckBox(
     436                                                bundle.getString("checkNewPackagesOnStartup.text"));
     437                                checkFutureUpdates.setSelected(SettingsManager.getInstance()
     438                                                .get("notifynewpackages", true));
     439                                checkFutureUpdates.addItemListener(new ItemListener() {
     440                                        @Override
     441                                        public void itemStateChanged(ItemEvent evt) {
     442                                                SettingsManager.getInstance().put("notifynewpackages",
     443                                                                evt.getStateChange() == ItemEvent.SELECTED);
     444                                        }
     445                                });
     446                                pan.add(checkFutureUpdates, BorderLayout.SOUTH);
     447
     448                                JOptionPane.showMessageDialog(this, pan,
     449                                                bundle.getString("newPackages.title"),
     450                                                JOptionPane.INFORMATION_MESSAGE);
     451                        }
     452                }
     453        }
     454
     455        @SuppressWarnings("unused")
    392456        private void focus() {
    393457                SwingUtilities.invokeLater(new Runnable() {
     
    507571                });
    508572        }
    509        
     573
    510574        @SuppressWarnings("unused")
    511575        private void refreshLocalMods() {
  • java/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml

    r859 r860  
    66  locationRelativeTo: null
    77  defaultCloseOperation: doNothingOnClose
    8   onWindowOpened: [execDepotUpdate,checkCorePackages,infoCorePackages,checkInitialize,initialize,checkUpdates,doUpdate,refreshToolsMenu,focus]
     8  onWindowOpened: [execDepotUpdate,checkCorePackages,infoCorePackages,checkInitialize,initialize,checkUpdates,doUpdate,refreshToolsMenu,showNewPackages,focus]
    99  onWindowClosing: [saveLocalData,exit]
    1010  iconImage: img.ae
  • java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java

    r856 r860  
    3939
    4040        private JCheckBox chkNotifyOnStart;
     41        private JCheckBox chkNotifyNewPackagesOnStart;
    4142        private JCheckBox chkNotifyDepsAfterInstall;
    4243        private JCheckBox chkCopyIntro;
     
    8182
    8283                chkNotifyOnStart.setSelected(set.get("notifyupdates", true));
     84                chkNotifyNewPackagesOnStart.setSelected(set.get("notifynewpackages",
     85                                true));
    8386                chkNotifyDepsAfterInstall.setSelected(set.get("notifyDepsAfterInstall",
    8487                                false));
     
    137140
    138141                set.put("notifyupdates", chkNotifyOnStart.isSelected());
     142                set.put("notifynewpackages", chkNotifyNewPackagesOnStart.isSelected());
    139143                set.put("notifyDepsAfterInstall",
    140144                                chkNotifyDepsAfterInstall.isSelected());
  • java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.yml

    r856 r860  
    1212    - JPanel(name=panCommon, groupTitle=panCommon):
    1313      - JCheckBox(name=chkNotifyOnStart, horizontalTextPosition=LEADING, text=lblNotifyOnStart)
     14      - JCheckBox(name=chkNotifyNewPackagesOnStart, horizontalTextPosition=LEADING, text=lblNotifyNewPackagesOnStart)
    1415      - JCheckBox(name=chkNotifyDepsAfterInstall, horizontalTextPosition=LEADING, text=lblNotifyDepsAfterInstall, toolTipText=lblNotifyDepsAfterInstall.tooltip)
    1516      - JCheckBox(name=chkCopyIntro, horizontalTextPosition=LEADING, text=lblCopyIntro)
     
    1718      - MigLayout: |
    1819           [grow]
    19            >chkNotifyOnStart           [pref]
    20            >chkNotifyDepsAfterInstall  [pref]
    21            >chkCopyIntro               [pref]
    22            >chkCopyOutro               [pref]
     20           >chkNotifyOnStart             [pref]
     21           >chkNotifyNewPackagesOnStart  [pref]
     22           >chkNotifyDepsAfterInstall    [pref]
     23           >chkCopyIntro                 [pref]
     24           >chkCopyOutro                 [pref]
    2325    - JPanel(name=panProxy, groupTitle=panProxy):
    2426      - JLabel(name=empty)
  • java/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties

    r859 r860  
    7777checkOnStartup.text=Check for updates at startup
    7878
     79newPackages.title=New packages on Depot
     80newPackages.text=New packages were added to the Depot since last start of AEI.<br>%1%2
     81checkNewPackagesOnStartup.text=Check for new packages on startup
     82
    7983noOniSplit.title=OniSplit not available
    8084noOniSplit.text=The Edition is not yet initialized and OniSplit is missing (offline mode?).\nCan not resume from here, exiting!
  • java/installer2/src/net/oni2/aeinstaller/localization/SettingsDialog.properties

    r856 r860  
    88panCommon=Common
    99lblNotifyOnStart=Notify about updates on startup:
     10lblNotifyNewPackagesOnStart=Notify about new packages on startup:
    1011lblNotifyDepsAfterInstall=Only notify about dependencies after installation:
    1112lblNotifyDepsAfterInstall.tooltip=<html>\
Note: See TracChangeset for help on using the changeset viewer.