Ignore:
Timestamp:
Jan 29, 2013, 12:43:01 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.99i:

  • Added (un)select all button
  • Fixed install in offline mode
  • Added entry in mod-table-context menu to delete local package
  • Added "added" column to mod table
Location:
AE/installer2/src/net/oni2/aeinstaller/gui/modtable
Files:
3 edited

Legend:

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

    r648 r657  
    1919import javax.swing.JComponent;
    2020import javax.swing.JMenuItem;
     21import javax.swing.JOptionPane;
    2122import javax.swing.JPopupMenu;
    2223import javax.swing.JTable;
     
    4243                        .getBundle("net.oni2.aeinstaller.localization.ModTable");
    4344
     45        /**
     46         * @author Christian Illy
     47         */
     48        public enum ETableContentType {
     49                /**
     50                 * Table showing mods
     51                 */
     52                MODS,
     53                /**
     54                 * Table showing tools
     55                 */
     56                TOOLS,
     57                /**
     58                 * Table showing core packages
     59                 */
     60                CORE
     61        };
     62
    4463        private HashSet<ModSelectionListener> modSelListeners = new HashSet<ModSelectionListener>();
    4564
    4665        private ModTableModel model;
    4766        private TableRowSorter<ModTableModel> sorter;
     67
     68        private ETableContentType contentType = ETableContentType.MODS;
    4869
    4970        /**
     
    186207         */
    187208        public void setFilter(Type type, int downloadState) {
    188                 sorter.setRowFilter(new ModTableFilter(type, downloadState));
     209                sorter.setRowFilter(new ModTableFilter(type, downloadState,
     210                                contentType == ETableContentType.CORE, false));
    189211        }
    190212
     
    203225                        }
    204226                }
     227        }
     228
     229        /**
     230         * Select/Unselect all currently visible items depending on the current
     231         * state of selection
     232         */
     233        public void unSelectAll() {
     234                boolean isAll = true;
     235                for (int i = 0; i < getRowCount(); i++) {
     236                        int modRow = convertRowIndexToModel(i);
     237                        boolean inst = (Boolean) model.getValueAt(modRow, 0);
     238                        if (!inst) {
     239                                isAll = false;
     240                                break;
     241                        }
     242                }
     243
     244                for (int i = 0; i < getRowCount(); i++) {
     245                        int modRow = convertRowIndexToModel(i);
     246                        model.setValueAt(!isAll, modRow, 0);
     247                }
     248                invalidate();
     249                repaint();
    205250        }
    206251
     
    267312                                        }
    268313
     314                                        if (mod.isLocalAvailable()
     315                                                        && contentType != ETableContentType.CORE) {
     316                                                // Delete package folder item
     317                                                JMenuItem deleteModFolder = new JMenuItem(
     318                                                                bundle.getString("deletePackage.text"));
     319                                                deleteModFolder.addActionListener(new ActionListener() {
     320                                                        @Override
     321                                                        public void actionPerformed(ActionEvent arg0) {
     322                                                                if (mod.getNode() == null) {
     323                                                                        JOptionPane.showMessageDialog(
     324                                                                                        null,
     325                                                                                        bundle.getString("deletePackageLocalOnly.text"),
     326                                                                                        bundle.getString("deletePackageLocalOnly.title"),
     327                                                                                        JOptionPane.INFORMATION_MESSAGE);
     328                                                                } else {
     329                                                                        int res = JOptionPane.showConfirmDialog(
     330                                                                                        null,
     331                                                                                        bundle.getString("deletePackageConfirm.text"),
     332                                                                                        bundle.getString("deletePackageConfirm.title"),
     333                                                                                        JOptionPane.YES_NO_OPTION,
     334                                                                                        JOptionPane.WARNING_MESSAGE);
     335                                                                        if (res == JOptionPane.YES_OPTION) {
     336                                                                                mod.deleteLocalPackage();
     337                                                                                invalidate();
     338                                                                                repaint();
     339                                                                        }
     340                                                                }
     341                                                        }
     342                                                });
     343                                                popup.add(deleteModFolder);
     344                                        }
     345
    269346                                        if (popup.getSubElements().length > 0)
    270347                                                popup.show(e.getComponent(), e.getX(), e.getY());
  • AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableFilter.java

    r648 r657  
    1313        private int downloadState = 0;
    1414
     15        private boolean showCorePackages = false;
     16        private boolean showInvalidPlatform = false;
     17
    1518        /**
    1619         * @param type
     
    1821         * @param downloadState
    1922         *            Show only: 0 = all, 1 = online, 2 = downloaded
     23         * @param showCorePackages
     24         *            Show core packages in table
     25         * @param showInvalidPlatform
     26         *            Show packages not valid on this platform
    2027         */
    21         public ModTableFilter(Type type, int downloadState) {
     28        public ModTableFilter(Type type, int downloadState,
     29                        boolean showCorePackages, boolean showInvalidPlatform) {
    2230                super();
    2331                this.type = type;
    2432                this.downloadState = downloadState;
     33                this.showCorePackages = showCorePackages;
     34                this.showInvalidPlatform = showInvalidPlatform;
    2535        }
    2636
     
    2838        public boolean include(
    2939                        RowFilter.Entry<? extends ModTableModel, ? extends Integer> entry) {
    30                 Package mod = (Package) entry.getModel().getValueAt(entry.getIdentifier(), -1);
    31                
    32                 if (mod.isCorePackage())
     40                Package mod = (Package) entry.getModel().getValueAt(
     41                                entry.getIdentifier(), -1);
     42
     43                if (mod.isCorePackage() && !showCorePackages)
    3344                        return false;
    3445
    35                 if (!mod.isValidOnPlatform())
     46                if (!mod.isValidOnPlatform() && !showInvalidPlatform)
    3647                        return false;
    3748
     
    4758                                break;
    4859                }
    49                
     60
    5061                return result;
    5162        }
  • AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTableModel.java

    r651 r657  
    6060                                return res;
    6161                        case 5:
     62                                if (mod.getNode() != null)
     63                                        return sdf.format(new Date(
     64                                                        mod.getNode().getCreated() * 1000));
     65                                else
     66                                        return null;
     67                        case 6:
    6268                                if (mod.getFile() != null)
    6369                                        return sdf.format(new Date(
     
    8389                                return bundle.getString("mod.state");
    8490                        case 5:
     91                                return bundle.getString("mod.added");
     92                        case 6:
    8593                                return bundle.getString("mod.date");
    8694                }
     
    95103        @Override
    96104        public int getColumnCount() {
    97                 return 6;
     105                return 7;
    98106        }
    99107
     
    112120                                return String.class;
    113121                        case 5:
     122                                return String.class;
     123                        case 6:
    114124                                return String.class;
    115125                }
     
    153163                                break;
    154164                        case 5:
    155                                 w = 115;
     165                                w = 100;
     166                                col.setPreferredWidth(w);
     167                                col.setMinWidth(w);
     168                                col.setMaxWidth(w);
     169                                break;
     170                        case 6:
     171                                w = 100;
    156172                                col.setPreferredWidth(w);
    157173                                col.setMinWidth(w);
Note: See TracChangeset for help on using the changeset viewer.