Ignore:
Timestamp:
Jan 29, 2013, 1:34:16 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.99i:

  • Lots of refactorings for the GUI:
    • Global type for the mod info box (Main, Tools, Core)
    • Same table for Main, Tools, Core
Location:
AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java

    r655 r658  
    11package net.oni2.aeinstaller.gui.toolmanager;
    22
    3 import java.awt.Dimension;
    4 import java.awt.Insets;
    53import java.awt.event.ActionEvent;
    64import java.awt.event.KeyEvent;
    7 import java.text.SimpleDateFormat;
    8 import java.util.Date;
    95import java.util.ResourceBundle;
    10 import java.util.TreeMap;
    116import java.util.TreeSet;
    127
    138import javax.swing.AbstractAction;
    14 import javax.swing.DefaultListModel;
    159import javax.swing.Icon;
    1610import javax.swing.ImageIcon;
     
    1812import javax.swing.JComponent;
    1913import javax.swing.JDialog;
    20 import javax.swing.JLabel;
    21 import javax.swing.JList;
    2214import javax.swing.JOptionPane;
     15import javax.swing.JScrollPane;
    2316import javax.swing.JSplitPane;
    2417import javax.swing.KeyStroke;
    25 import javax.swing.ListSelectionModel;
    26 import javax.swing.event.ListSelectionEvent;
    27 import javax.swing.event.ListSelectionListener;
    2818
    2919import net.oni2.aeinstaller.backend.Settings;
    30 import net.oni2.aeinstaller.backend.SizeFormatter;
     20import net.oni2.aeinstaller.backend.oni.Installer;
    3121import net.oni2.aeinstaller.backend.packages.Package;
    32 import net.oni2.aeinstaller.backend.packages.PackageManager;
    33 import net.oni2.aeinstaller.backend.oni.Installer;
    34 import net.oni2.aeinstaller.gui.HTMLLinkLabel;
    3522import net.oni2.aeinstaller.gui.downloadwindow.Downloader;
     23import net.oni2.aeinstaller.gui.modtable.ModSelectionListener;
     24import net.oni2.aeinstaller.gui.modtable.ModTable;
     25import net.oni2.aeinstaller.gui.modtable.ModTable.ETableContentType;
     26import net.oni2.aeinstaller.gui.packageinfobox.PackageInfoBox;
    3627
    3728import org.javabuilders.BuildResult;
     
    4132 * @author Christian Illy
    4233 */
    43 public class ToolManager extends JDialog implements ListSelectionListener {
     34public class ToolManager extends JDialog implements ModSelectionListener {
    4435        private static final long serialVersionUID = 343221630538866384L;
    4536
     
    5243        private JSplitPane contents;
    5344
    54         private JList lstTools;
     45        private JScrollPane scrollTools;
     46        private ModTable tblTools;
    5547
    56         private JLabel lblTitleVal;
    57         private JLabel lblCreatorVal;
    58         private JLabel lblPlatformVal;
    59         private JLabel lblPackageNumberVal;
    60         private JLabel lblVersionNumberVal;
    61         private JLabel lblLastChangeVal;
    62         private HTMLLinkLabel lblDescriptionVal;
    63         private JLabel lblDownloadSizeVal;
    64 
     48        private PackageInfoBox pkgInfo;
    6549        private JButton btnInstall;
    6650
     
    6852        private Icon icoUninstall = null;
    6953
    70         private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     54        private Package selectedPackage = null;
    7155
    7256        /**
     
    7458         */
    7559        public ToolManager() {
    76                 setMinimumSize(new Dimension(getWidth() + 100, getHeight() + 100));
    77 
    7860                AbstractAction closeAction = new AbstractAction() {
    7961
     
    9173                getRootPane().getActionMap().put("close", closeAction);
    9274
    93                 contents.setDividerLocation(200);
     75                contents.setDividerLocation(550);
    9476                contents.setResizeWeight(0.4);
    9577
    96                 lstTools.addListSelectionListener(this);
    97                 lstTools.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     78                tblTools = new ModTable(ETableContentType.TOOLS);
     79                tblTools.reloadData();
     80                scrollTools.setViewportView(tblTools);
    9881
    99                 DefaultListModel dlm = new DefaultListModel();
    100                 TreeMap<String, Package> tools = PackageManager.getInstance().getTools();
    101                 for (String name : tools.keySet())
    102                         dlm.addElement(tools.get(name));
    103                 lstTools.setModel(dlm);
     82                tblTools.addModSelectionListener(this);
    10483
    10584                icoInstall = new ImageIcon(getClass().getResource(
     
    10988
    11089                setLocationRelativeTo(null);
    111                 lblDescriptionVal.setMargin(new Insets(-15, 0, 0, 0));
    11290        }
    11391
    11492        @SuppressWarnings("unused")
    11593        private void install() {
    116                 Object o = lstTools.getSelectedValue();
    117                 if (o instanceof Package) {
    118                         Package theMod = (Package) o;
    119 
    120                         if (theMod.isInstalled()) {
     94                if (selectedPackage != null) {
     95                        if (selectedPackage.isInstalled()) {
    12196                                TreeSet<Package> tools = new TreeSet<Package>();
    122                                 tools.add(theMod);
     97                                tools.add(selectedPackage);
    12398                                Installer.uninstallTools(tools);
    12499                        } else {
    125                                 if (!theMod.isLocalAvailable()) {
     100                                if (!selectedPackage.isLocalAvailable()) {
    126101                                        if (Settings.getInstance().isOfflineMode()) {
    127102                                                JOptionPane.showMessageDialog(this,
     
    133108
    134109                                        TreeSet<Package> toDownload = new TreeSet<Package>();
    135                                         toDownload.add(theMod);
     110                                        toDownload.add(selectedPackage);
    136111
    137112                                        Downloader dl = new Downloader(toDownload, null);
     
    146121
    147122                                TreeSet<Package> tools = new TreeSet<Package>();
    148                                 tools.add(theMod);
     123                                tools.add(selectedPackage);
    149124                                Installer.installTools(tools);
    150125                        }
    151126                }
    152                 valueChanged(null);
     127                modSelectionChanged(tblTools, selectedPackage);
    153128        }
    154129
    155130        @Override
    156         public void valueChanged(ListSelectionEvent evt) {
    157                 lblTitleVal.setText("");
    158                 lblCreatorVal.setText("");
    159                 lblDescriptionVal.setText("");
    160                 lblPlatformVal.setText("");
    161                 lblPackageNumberVal.setText("");
    162                 lblVersionNumberVal.setText("");
    163                 lblLastChangeVal.setText("");
    164                 lblDownloadSizeVal.setText("");
    165                 btnInstall.setEnabled(false);
    166                 btnInstall.setIcon(icoInstall);
     131        public void modSelectionChanged(ModTable source, Package mod) {
     132                selectedPackage = mod;
    167133
    168                 if (lstTools.getSelectedValue() instanceof Package) {
    169                         Package m = (Package) lstTools.getSelectedValue();
    170                         lblTitleVal.setText(m.getName());
    171                         lblCreatorVal.setText(m.getCreator());
    172                         lblDescriptionVal.setText(m.getDescription());
    173                         lblPlatformVal.setText(m.getPlatform().toString());
    174                         lblPackageNumberVal.setText(m.getPackageNumberString());
    175                         lblVersionNumberVal.setText(m.getVersion());
    176                         if (m.getFile() != null)
    177                                 lblLastChangeVal.setText(sdf.format(new Date(m.getFile()
    178                                                 .getTimestamp() * 1000)));
    179                         lblDownloadSizeVal.setText(SizeFormatter.format(m.getZipSize(), 3));
     134                pkgInfo.updateInfo(mod);
     135                if (mod != null) {
    180136                        btnInstall.setEnabled(true);
    181                         if (m.isInstalled()) {
     137                        if (mod.isInstalled()) {
    182138                                btnInstall.setText(bundle.getString("btnInstall.un.text"));
    183139                                btnInstall.setToolTipText(bundle
     
    188144                                btnInstall.setToolTipText(bundle
    189145                                                .getString("btnInstall.tooltip"));
     146                                btnInstall.setIcon(icoInstall);
    190147                        }
    191148                }
  • TabularUnified AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.yml

    r646 r658  
    22  name: frame
    33  title: frame.title
    4   size: packed
     4  size: 950x600
    55  locationRelativeTo: null
    66  defaultCloseOperation: disposeOnClose
     
    1010    - JSplitPane(name=contents, orientation=horizontalSplit, continuousLayout=true):
    1111        - JPanel(name=panTools):
    12             - JScrollPane(name=scrollTools, vScrollBar=always, hScrollBar=asNeeded):
    13                 JList(name=lstTools)
     12            - JScrollPane(name=scrollTools, vScrollBar=always, hScrollBar=never)
    1413            - MigLayout: |
    1514                 [grow]
    1615                 scrollTools   [grow]
    1716        - JPanel(name=panInfo):
    18             - JLabel(name=lblTitle, text=lblTitle.text)
    19             - JLabel(name=lblTitleVal)
    20             - JLabel(name=lblCreator, text=lblCreator.text)
    21             - JLabel(name=lblCreatorVal)
    22             - JLabel(name=lblPlatform, text=lblPlatform.text)
    23             - JLabel(name=lblPlatformVal)
    24             - JLabel(name=lblPackageNumber, text=lblPackageNumber.text)
    25             - JLabel(name=lblPackageNumberVal)
    26             - JLabel(name=lblVersionNumber, text=lblVersionNumber.text)
    27             - JLabel(name=lblVersionNumberVal)
    28             - JLabel(name=lblLastChange, text=lblLastChange.text)
    29             - JLabel(name=lblLastChangeVal)
    30             - JLabel(name=lblDescription, text=lblDescription.text)
    31             - JScrollPane(name=scrollDescription, vScrollBar=always, hScrollBar=asNeeded):
    32                 HTMLLinkLabel(name=lblDescriptionVal)
    33             - JLabel(name=lblDownloadSize, text=lblDownloadSize.text)
    34             - JLabel(name=lblDownloadSizeVal)
     17            - PackageInfoBox(name=pkgInfo)
    3518            - JButton(name=btnInstall, icon=img.install, text=btnInstall.text, toolTipText=btnInstall.tooltip, enabled=false, onAction=[install])
    3619            - MigLayout: |
    37                  [min]             [grow]
    38                  >lblTitle         lblTitleVal         [min]
    39                  >lblCreator       lblCreatorVal       [min]
    40                  >lblPlatform      lblPlatformVal      [min]
    41                  >lblPackageNumber lblPackageNumberVal [min]
    42                  >lblVersionNumber lblVersionNumberVal [min]
    43                  >lblLastChange    lblLastChangeVal    [min]
    44                  >^lblDescription  scrollDescription   [grow]
    45                  >lblDownloadSize  lblDownloadSizeVal  [min]
    46                  >btnInstall+*<                        [min]
     20                 [grow]
     21                 pkgInfo        [grow]
     22                 >btnInstall<   [min]
    4723    - MigLayout: |
    4824         [grow]
Note: See TracChangeset for help on using the changeset viewer.