Changeset 641


Ignore:
Timestamp:
Jan 21, 2013, 12:14:52 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.98:

  • Reduced number+size of HTTP queries
  • Removed "submitter" field
  • Added output of dependencies to be selected before continuing
Location:
AE/installer2/src/net/oni2/aeinstaller
Files:
11 edited

Legend:

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

    r640 r641  
    11appname=AE Installer 2
    2 appversion=0.97
     2appversion=0.98
  • AE/installer2/src/net/oni2/aeinstaller/backend/depot/DepotManager.java

    r635 r641  
    2727
    2828import org.apache.http.HttpResponse;
    29 import org.apache.http.client.methods.HttpGet;
     29import org.apache.http.client.methods.HttpHead;
    3030import org.apache.http.client.methods.HttpRequestBase;
    3131import org.apache.http.impl.client.DefaultHttpClient;
     
    196196                try {
    197197                        DefaultHttpClient httpclient = new DefaultHttpClient();
    198                         httpQuery = new HttpGet(DepotConfig.getDepotUrl());
     198                        httpQuery = new HttpHead(DepotConfig.getDepotUrl());
    199199
    200200                        HttpResponse response = httpclient.execute(httpQuery);
  • AE/installer2/src/net/oni2/aeinstaller/backend/network/FileDownloader.java

    r634 r641  
    4848        private URL url = null;
    4949        private File target = null;
    50         private int size = -1;
     50        private int fileLength = Integer.MAX_VALUE;
    5151        private int downloaded = 0;
    5252
     
    6464                this.url = new URL(url);
    6565                this.target = target;
    66 
    67                 URLConnection connection = this.url.openConnection();
    68                 connection.connect();
    69                 size = connection.getContentLength();
    7066        }
    7167
     
    9490                        t.start();
    9591                        state = EState.RUNNING;
    96                         updateStatus(downloaded, size);
    9792                }
    9893        }
     
    108103                        else
    109104                                state = EState.RUNNING;
    110                         updateStatus(downloaded, size);
     105                        updateStatus(downloaded, fileLength);
    111106                }
    112107        }
     
    149144        public void run() {
    150145                int downloaded = 0;
    151                 int fileLength = Integer.MAX_VALUE;
    152146                String strLastModified = null;
    153147                String strEtag = null;
     
    181175                                                try {
    182176                                                        URLConnection connection = url.openConnection();
     177                                                        connection.setRequestProperty("Cache-Control", "no-cache");
    183178                                                        if (downloaded == 0) {
    184179                                                                connection.connect();
     
    257252
    258253        /**
    259          * @return the size
    260          */
    261         public int getSize() {
    262                 return size;
    263         }
    264 
    265         /**
    266254         * @return the downloaded size
    267255         */
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java

    r640 r641  
    8282        private JMenu mainMenu;
    8383        private JMenu toolsMenu;
    84         private TreeSet<JMenuItem> toolsMenuItems = new TreeSet<JMenuItem>();
     84        private Vector<JMenuItem> toolsMenuItems = new Vector<JMenuItem>();
    8585
    8686        private JSplitPane contents;
     
    9494
    9595        private JLabel lblTitleVal;
    96         private JLabel lblSubmitterVal;
    9796        private JLabel lblCreatorVal;
    9897        private JLabel lblTypesVal;
     
    106105        private TreeSet<Mod> execUpdates = null;
    107106
    108         private enum EInstallResult {
     107        private enum EInstallState {
    109108                DONE,
     109                READY,
     110                ABORTED,
    110111                OFFLINE,
    111                 INCOMPATIBLE
     112                INCOMPATIBLE,
     113                CHECKING
    112114        };
    113115
    114         private EInstallResult installDone = EInstallResult.DONE;
     116        private EInstallState installState = EInstallState.DONE;
     117        private TreeSet<Mod> installMods = null;
    115118
    116119        /**
     
    468471        }
    469472
    470         @DoInBackground(progressMessage = "installing.title", cancelable = false, indeterminateProgress = false)
    471         private void install(final BackgroundEvent evt) {
     473        @SuppressWarnings("unused")
     474        private void install() {
    472475                TreeSet<Mod> mods = new TreeSet<Mod>();
    473476                mods.addAll(ModManager.getInstance().getMandatoryMods());
    474477                mods.addAll(tblMods.getSelectedMods());
    475478
    476                 boolean instReady = false;
    477                 installDone = EInstallResult.DONE;
    478 
    479                 while (!instReady) {
     479                installState = EInstallState.CHECKING;
     480
     481                while (installState == EInstallState.CHECKING) {
    480482                        TreeSet<Mod> toDownload = new TreeSet<Mod>();
    481483                        for (Mod m : mods) {
     
    484486                        }
    485487                        if (Settings.getInstance().isOfflineMode()) {
    486                                 installDone = EInstallResult.OFFLINE;
     488                                installState = EInstallState.OFFLINE;
    487489                                break;
    488490                        }
     
    491493                                try {
    492494                                        dl.setVisible(true);
    493                                         if (!dl.isFinished())
     495                                        if (!dl.isFinished()) {
     496                                                installState = EInstallState.ABORTED;
    494497                                                break;
     498                                        }
    495499                                } finally {
    496500                                        dl.dispose();
     
    500504                                        .checkDependencies(mods);
    501505                        if (dependencies.size() > 0) {
    502                                 System.out.println("Unmet dependencies: "
    503                                                 + dependencies.toString());
     506                                int size = 0;
     507                                String depsLocalString = "";
     508                                String depsDownloadString = "";
    504509                                for (Mod m : dependencies.keySet()) {
    505                                         for (Mod mDep : dependencies.get(m))
    506                                                 mods.add(mDep);
     510                                        for (Mod mDep : dependencies.get(m)) {
     511                                                if (!mods.contains(mDep)) {
     512                                                        mods.add(mDep);
     513                                                        if (!mDep.isLocalAvailable()) {
     514                                                                size += mDep.getZipSize();
     515                                                                if (depsDownloadString.length() > 0)
     516                                                                        depsDownloadString += "\n";
     517                                                                depsDownloadString += " - " + mDep.getName();
     518                                                        } else {
     519                                                                if (depsLocalString.length() > 0)
     520                                                                        depsLocalString += "\n";
     521                                                                depsLocalString += " - " + mDep.getName();
     522                                                        }
     523                                                }
     524                                        }
     525                                }
     526                                if (depsLocalString.length() == 0)
     527                                        depsLocalString = bundle.getString("installDependencies.none");
     528                                if (depsDownloadString.length() == 0)
     529                                        depsDownloadString = bundle.getString("installDependencies.none");
     530
     531                                int res = JOptionPane.showConfirmDialog(this, String.format(
     532                                                bundle.getString("installDependencies.text"),
     533                                                depsLocalString, depsDownloadString,
     534                                                SizeFormatter.format(size, 3)), bundle
     535                                                .getString("installDependencies.title"),
     536                                                JOptionPane.YES_NO_OPTION,
     537                                                JOptionPane.INFORMATION_MESSAGE);
     538                                if (res == JOptionPane.NO_OPTION) {
     539                                        installState = EInstallState.ABORTED;
     540                                        break;
    507541                                }
    508542                        } else {
     
    510544                                                .checkIncompabitilites(mods);
    511545                                if (conflicts.size() > 0) {
    512                                         installDone = EInstallResult.INCOMPATIBLE;
     546                                        installState = EInstallState.INCOMPATIBLE;
    513547                                        System.err.println("Incompatible mods: "
    514548                                                        + conflicts.toString());
     549                                        // TODO: Message window with incompatibilities
    515550                                        break;
    516551                                } else {
    517                                         instReady = true;
    518                                 }
    519                         }
    520                 }
    521 
    522                 if (instReady) {
    523                         TreeSet<Mod> actuallyMods = new TreeSet<Mod>();
     552                                        installState = EInstallState.READY;
     553                                }
     554                        }
     555                }
     556
     557                if (installState == EInstallState.READY) {
     558                        installMods = new TreeSet<Mod>();
    524559                        TreeSet<Mod> actuallyTools = new TreeSet<Mod>();
    525560
     
    528563                                        actuallyTools.add(m);
    529564                                else
    530                                         actuallyMods.add(m);
     565                                        installMods.add(m);
    531566                        }
    532567
     
    534569                                Installer.installTools(actuallyTools);
    535570                        }
    536 
    537                         Installer.install(actuallyMods, new InstallProgressListener() {
     571                }
     572
     573        }
     574
     575        @DoInBackground(progressMessage = "installing.title", cancelable = false, indeterminateProgress = false)
     576        private void installExec(final BackgroundEvent evt) {
     577                if (installState == EInstallState.READY) {
     578                        Installer.install(installMods, new InstallProgressListener() {
    538579                                @Override
    539580                                public void installProgressUpdate(int done, int total,
     
    544585                                }
    545586                        });
    546                         installDone = EInstallResult.DONE;
    547                 }
     587                        installState = EInstallState.DONE;
     588                }
     589                installMods = null;
    548590        }
    549591
     
    551593        private void installDone() {
    552594                ModManager.getInstance().updateInstalledMods();
    553                 revertSelection();
    554                 switch (installDone) {
     595                switch (installState) {
    555596                        case DONE:
     597                                revertSelection();
    556598                                JOptionPane.showMessageDialog(this,
    557599                                                bundle.getString("installDone.text"),
     
    565607                                                JOptionPane.WARNING_MESSAGE);
    566608                                break;
    567                         case INCOMPATIBLE:
     609                        default:
    568610                                break;
    569611                }
     
    573615        public void modSelectionChanged(ModTable source, Mod m) {
    574616                lblTitleVal.setText("");
    575                 lblSubmitterVal.setText("");
    576617                lblCreatorVal.setText("");
    577618                lblDescriptionVal.setText("");
     
    582623                if (m != null) {
    583624                        lblTitleVal.setText(m.getName());
    584                         lblSubmitterVal.setText(m.getSubmitter());
    585625                        lblCreatorVal.setText(m.getCreator());
    586626                        lblDescriptionVal.setText(m.getDescription());
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml

    r639 r641  
    5858                ModTable(name=tblMods, visible=false)
    5959            - JButton(name=btnRevertSelection, icon=img.undo16, text=btnRevertSelection.text, toolTipText=btnRevertSelection.tooltip, onAction=[revertSelection])
    60             - JButton(name=btnInstall, icon=img.install, text=btnInstall.text, toolTipText=btnInstall.tooltip, onAction=[install,installDone])
     60            - JButton(name=btnInstall, icon=img.install, text=btnInstall.text, toolTipText=btnInstall.tooltip, onAction=[install,installExec,installDone])
    6161            - JLabel(name=lblDownloadSize, text=lblDownloadSize.text)
    6262            - JLabel(name=lblDownloadSizeVal)
     
    7171            - JLabel(name=lblTitle, text=lblTitle.text)
    7272            - JLabel(name=lblTitleVal)
    73             - JLabel(name=lblSubmitter, text=lblSubmitter.text)
    74             - JLabel(name=lblSubmitterVal)
    7573            - JLabel(name=lblCreator, text=lblCreator.text)
    7674            - JLabel(name=lblCreatorVal)
     
    8987                 [min]             [grow]
    9088                 >lblTitle         lblTitleVal         [min]
    91                  >lblSubmitter     lblSubmitterVal     [min]
    9289                 >lblCreator       lblCreatorVal       [min]
    9390                 >lblTypes         lblTypesVal         [min]
  • AE/installer2/src/net/oni2/aeinstaller/gui/about/AboutDialog.java

    r593 r641  
    5555                                .put(ksCtrlW, "close");
    5656                getRootPane().getActionMap().put("close", closeAction);
     57
     58                setLocationRelativeTo(null);
    5759        }
    5860
  • AE/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java

    r629 r641  
    6060
    6161                initValues();
     62
     63                setLocationRelativeTo(null);
    6264        }
    6365
  • AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java

    r640 r641  
    5252
    5353        private JLabel lblTitleVal;
    54         private JLabel lblSubmitterVal;
    5554        private JLabel lblCreatorVal;
    5655        private JLabel lblPlatformVal;
     
    101100                icoUninstall = new ImageIcon(getClass().getResource(
    102101                                SwingJavaBuilder.getConfig().getResource("img.uninstall")));
     102               
     103                setLocationRelativeTo(null);
    103104        }
    104105
     
    147148        public void valueChanged(ListSelectionEvent evt) {
    148149                lblTitleVal.setText("");
    149                 lblSubmitterVal.setText("");
    150150                lblCreatorVal.setText("");
    151151                lblDescriptionVal.setText("");
     
    159159                        Mod m = (Mod) lstTools.getSelectedValue();
    160160                        lblTitleVal.setText(m.getName());
    161                         lblSubmitterVal.setText(m.getSubmitter());
    162161                        lblCreatorVal.setText(m.getCreator());
    163162                        lblDescriptionVal.setText(m.getDescription());
  • AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.yml

    r640 r641  
    1818            - JLabel(name=lblTitle, text=lblTitle.text)
    1919            - JLabel(name=lblTitleVal)
    20             - JLabel(name=lblSubmitter, text=lblSubmitter.text)
    21             - JLabel(name=lblSubmitterVal)
    2220            - JLabel(name=lblCreator, text=lblCreator.text)
    2321            - JLabel(name=lblCreatorVal)
     
    3533                 [min]             [grow]
    3634                 >lblTitle         lblTitleVal         [min]
    37                  >lblSubmitter     lblSubmitterVal     [min]
    3835                 >lblCreator       lblCreatorVal       [min]
    3936                 >lblPlatform      lblPlatformVal      [min]
  • AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties

    r640 r641  
    4343
    4444lblTitle.text=Name:
    45 lblSubmitter.text=Submitter:
    4645lblCreator.text=Creator:
    4746lblTypes.text=Types:
     
    5453updateDepot.title=Updating Mod Depot cache
    5554
     55installDependencies.title=Unmet dependencies
     56installDependencies.text=There are unmet dependencies for some mods.\n\n\
     57Following mods are already downloaded and will be selected:\n%s\n\n\
     58These mods will have to be additionally downloaded:\n%s\n\n\
     59Size of files to be downloaded: %s.\n\nContinue?
     60installDependencies.none=<None>
    5661installDone.title=Installation done
    5762installDone.text=You can now play AE Oni.
  • AE/installer2/src/net/oni2/aeinstaller/localization/ToolManager.properties

    r640 r641  
    77
    88lblTitle.text=Name:
    9 lblSubmitter.text=Submitter:
    109lblCreator.text=Creator:
    1110lblPlatform.text=Platform:
Note: See TracChangeset for help on using the changeset viewer.