Ignore:
Timestamp:
Jan 20, 2013, 6:02:07 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.96:

  • Added submitter to contents pane
  • Added jump-to-mod by keypress in table
Location:
AE/installer2/src/net/oni2/aeinstaller/gui
Files:
3 edited

Legend:

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

    r638 r639  
    88import java.awt.event.ItemListener;
    99import java.io.File;
    10 import java.io.IOException;
    1110import java.net.URL;
    1211import java.util.Date;
     
    9493        private JLabel lblDownloadSizeVal;
    9594
     95        private JLabel lblTitleVal;
    9696        private JLabel lblSubmitterVal;
    9797        private JLabel lblCreatorVal;
     
    560560        @Override
    561561        public void modSelectionChanged(ModTable source, Mod m) {
     562                lblTitleVal.setText("");
    562563                lblSubmitterVal.setText("");
    563564                lblCreatorVal.setText("");
     
    568569                lblVersionNumberVal.setText("");
    569570                if (m != null) {
    570                         lblSubmitterVal.setText(m.getName());
     571                        lblTitleVal.setText(m.getName());
     572                        lblSubmitterVal.setText(m.getSubmitter());
    571573                        lblCreatorVal.setText(m.getCreator());
    572574                        lblDescriptionVal.setText(m.getDescription());
     
    706708                try {
    707709                        Desktop.getDesktop().open(Paths.getEditionBasePath());
    708                 } catch (IOException e) {
     710                } catch (Exception e) {
    709711                        e.printStackTrace();
    710712                }
  • AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml

    r638 r639  
    6969                 lblDownloadSize,lblDownloadSizeVal     [min]
    7070        - JPanel(name=panInfo):
     71            - JLabel(name=lblTitle, text=lblTitle.text)
     72            - JLabel(name=lblTitleVal)
    7173            - JLabel(name=lblSubmitter, text=lblSubmitter.text)
    7274            - JLabel(name=lblSubmitterVal)
     
    8688            - MigLayout: |
    8789                 [min]             [grow]
     90                 >lblTitle         lblTitleVal         [min]
    8891                 >lblSubmitter     lblSubmitterVal     [min]
    8992                 >lblCreator       lblCreatorVal       [min]
  • AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java

    r637 r639  
    22
    33import java.awt.Desktop;
     4import java.awt.Rectangle;
    45import java.awt.event.ActionEvent;
    56import java.awt.event.ActionListener;
     7import java.awt.event.KeyAdapter;
     8import java.awt.event.KeyEvent;
    69import java.awt.event.MouseAdapter;
    710import java.awt.event.MouseEvent;
     
    1821import javax.swing.JPopupMenu;
    1922import javax.swing.JTable;
     23import javax.swing.JViewport;
    2024import javax.swing.ListSelectionModel;
    2125import javax.swing.RowSorter;
    2226import javax.swing.SortOrder;
    2327import javax.swing.event.ListSelectionEvent;
    24 import javax.swing.event.ListSelectionListener;
    2528import javax.swing.table.TableRowSorter;
    2629
     
    4952
    5053                setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    51                 getSelectionModel().addListSelectionListener(
    52                                 new ListSelectionListener() {
    53                                         @Override
    54                                         public void valueChanged(ListSelectionEvent e) {
    55                                                 int viewRow = getSelectedRow();
    56                                                 if (viewRow < 0) {
    57                                                         notifyModSelectionListeners(null);
    58                                                 } else {
    59                                                         Mod mod = (Mod) getValueAt(viewRow, -1);
    60                                                         notifyModSelectionListeners(mod);
    61                                                 }
    62                                         }
    63                                 });
    64                 addMouseListener(new MouseAdapter() {
    65                         private void common(MouseEvent e) {
    66                                 int r = rowAtPoint(e.getPoint());
    67                                 if (r >= 0 && r < getRowCount())
    68                                         setRowSelectionInterval(r, r);
    69                                 else
    70                                         clearSelection();
    71 
    72                                 int rowindex = getSelectedRow();
    73                                 if (rowindex >= 0) {
    74                                         if (e.isPopupTrigger()
    75                                                         && e.getComponent() instanceof JTable) {
    76                                                 final Mod mod = (Mod) getValueAt(rowindex, -1);
    77 
    78                                                 JPopupMenu popup = new JPopupMenu();
    79 
    80                                                 if (mod.isLocalAvailable()) {
    81                                                         // Open package folder item
    82                                                         JMenuItem openModFolder = new JMenuItem(
    83                                                                         bundle.getString("openModFolder.text"));
    84                                                         openModFolder
    85                                                                         .addActionListener(new ActionListener() {
    86                                                                                 @Override
    87                                                                                 public void actionPerformed(
    88                                                                                                 ActionEvent arg0) {
    89                                                                                         try {
    90                                                                                                 Desktop.getDesktop().open(
    91                                                                                                                 mod.getLocalPath());
    92                                                                                         } catch (IOException e) {
    93                                                                                                 e.printStackTrace();
    94                                                                                         }
    95                                                                                 }
    96                                                                         });
    97                                                         popup.add(openModFolder);
    98                                                 }
    99 
    100                                                 if (mod.getUrl() != null) {
    101                                                         // Open Depot page item
    102                                                         JMenuItem openDepotPage = new JMenuItem(
    103                                                                         bundle.getString("openDepotPage.text"));
    104                                                         openDepotPage
    105                                                                         .addActionListener(new ActionListener() {
    106                                                                                 @Override
    107                                                                                 public void actionPerformed(
    108                                                                                                 ActionEvent arg0) {
    109                                                                                         try {
    110                                                                                                 Desktop.getDesktop().browse(
    111                                                                                                                 mod.getUrl());
    112                                                                                         } catch (IOException e) {
    113                                                                                                 e.printStackTrace();
    114                                                                                         }
    115                                                                                 }
    116                                                                         });
    117                                                         popup.add(openDepotPage);
    118                                                 }
    119 
    120                                                 if (popup.getSubElements().length > 0)
    121                                                         popup.show(e.getComponent(), e.getX(), e.getY());
    122                                         }
    123                                 }
    124                         }
    125 
    126                         @Override
    127                         public void mousePressed(MouseEvent e) {
    128                                 common(e);
    129                         }
    130 
    131                         @Override
    132                         public void mouseReleased(MouseEvent e) {
    133                                 common(e);
    134                         }
    135                 });
     54                getSelectionModel().addListSelectionListener(this);
     55                addMouseListener(new MouseEventHandler());
     56                addKeyListener(new KeyEventHandler());
    13657                // To get checkbox-cells with background of row
    13758                ((JComponent) getDefaultRenderer(Boolean.class)).setOpaque(true);
     
    260181                sorter.setRowFilter(new ModTableFilter(type, downloadState));
    261182        }
     183
     184        @Override
     185        public void valueChanged(ListSelectionEvent e) {
     186                super.valueChanged(e);
     187                int viewRow = getSelectedRow();
     188                if (viewRow < 0) {
     189                        notifyModSelectionListeners(null);
     190                } else {
     191                        Mod mod = (Mod) getValueAt(viewRow, -1);
     192                        notifyModSelectionListeners(mod);
     193                }
     194        }
     195
     196        private class MouseEventHandler extends MouseAdapter {
     197                private void mouseEventProcessing(MouseEvent e) {
     198                        int r = rowAtPoint(e.getPoint());
     199                        if (r >= 0 && r < getRowCount())
     200                                setRowSelectionInterval(r, r);
     201                        else
     202                                clearSelection();
     203
     204                        int rowindex = getSelectedRow();
     205                        if (rowindex >= 0) {
     206                                if (e.isPopupTrigger() && e.getComponent() instanceof JTable) {
     207                                        final Mod mod = (Mod) getValueAt(rowindex, -1);
     208
     209                                        JPopupMenu popup = new JPopupMenu();
     210
     211                                        if (mod.isLocalAvailable()) {
     212                                                // Open package folder item
     213                                                JMenuItem openModFolder = new JMenuItem(
     214                                                                bundle.getString("openModFolder.text"));
     215                                                openModFolder.addActionListener(new ActionListener() {
     216                                                        @Override
     217                                                        public void actionPerformed(ActionEvent arg0) {
     218                                                                try {
     219                                                                        Desktop.getDesktop().open(
     220                                                                                        mod.getLocalPath());
     221                                                                } catch (IOException e) {
     222                                                                        e.printStackTrace();
     223                                                                }
     224                                                        }
     225                                                });
     226                                                popup.add(openModFolder);
     227                                        }
     228
     229                                        if (mod.getUrl() != null) {
     230                                                // Open Depot page item
     231                                                JMenuItem openDepotPage = new JMenuItem(
     232                                                                bundle.getString("openDepotPage.text"));
     233                                                openDepotPage.addActionListener(new ActionListener() {
     234                                                        @Override
     235                                                        public void actionPerformed(ActionEvent arg0) {
     236                                                                try {
     237                                                                        Desktop.getDesktop().browse(mod.getUrl());
     238                                                                } catch (IOException e) {
     239                                                                        e.printStackTrace();
     240                                                                }
     241                                                        }
     242                                                });
     243                                                popup.add(openDepotPage);
     244                                        }
     245
     246                                        if (popup.getSubElements().length > 0)
     247                                                popup.show(e.getComponent(), e.getX(), e.getY());
     248                                }
     249                        }
     250                }
     251
     252                @Override
     253                public void mousePressed(MouseEvent e) {
     254                        mouseEventProcessing(e);
     255                }
     256
     257                @Override
     258                public void mouseReleased(MouseEvent e) {
     259                        mouseEventProcessing(e);
     260                }
     261        }
     262
     263        private class KeyEventHandler extends KeyAdapter {
     264                @Override
     265                public void keyTyped(KeyEvent e) {
     266                        super.keyTyped(e);
     267
     268                        if (e.getModifiers() == 0) {
     269                                String key = String.valueOf(e.getKeyChar()).toLowerCase();
     270                                for (int i = 0; i < getRowCount(); i++) {
     271                                        Mod m = (Mod) getValueAt(i, -1);
     272                                        if (m.getName().toLowerCase().startsWith(key)) {
     273                                                setRowSelectionInterval(i, i);
     274                                                JViewport viewport = (JViewport) getParent();
     275                                                Rectangle rect = getCellRect(i, 0,
     276                                                                true);
     277                                                Rectangle r2 = viewport.getVisibleRect();
     278                                                scrollRectToVisible(new Rectangle(rect.x, rect.y,
     279                                                                (int) r2.getWidth(), (int) r2.getHeight()));
     280                                                break;
     281                                        }
     282                                }
     283                        }
     284                }
     285        }
    262286}
Note: See TracChangeset for help on using the changeset viewer.