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/gui
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • 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.