Changeset 3519f4d


Ignore:
Timestamp:
Mar 22, 2010, 3:12:51 PM (11 years ago)
Author:
Michael Seifert <mseifert@…>
Branches:
master
Children:
baeb36a
Parents:
0e56a7e
Message:

Improved usability;
Improved program structure

Location:
src/main/java/de/erichseifert/warp/gui
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/erichseifert/warp/gui/ReplayCellEditor.java

    r0e56a7e r3519f4d  
    1515public class ReplayCellEditor extends DefaultCellEditor {
    1616        private final JTable replayTable;
    17         private final File parentDir;
     17        private File parentDir;
    1818
    1919        private Replay replay;
    2020
    21         public ReplayCellEditor(JTable replayTable, File parentDir) {
     21        public ReplayCellEditor(JTable replayTable) {
    2222                super(new JTextField());
    2323
    2424                this.replayTable = replayTable;
    25                 this.parentDir = parentDir;
    2625        }
    2726
     
    5251                File parent = replayFile.getParentFile();
    5352                // Assemble replay path and sub-directories
    54                 String parentPath = parentDir.getPath();
     53                String parentPathNew;
     54                if (parentDir != null) {
     55                        parentPathNew = parentDir.getPath();
     56                }
     57                else {
     58                        parentPathNew = replayFile.getParent();
     59                }
    5560                String[] replayPathNewSplit = comp.getText().split(File.separator);
    5661                for (int i = 0; i < replayPathNewSplit.length-1; i++) {
    5762                        String subDir = replayPathNewSplit[i];
    58                         parentPath += File.separator + subDir;
     63                        parentPathNew += File.separator + subDir;
    5964                }
    6065                // Create sub-directories
    61                 File parentNew = new File(parentPath);
     66                File parentNew = new File(parentPathNew);
    6267                parentNew.mkdirs();
    6368
     
    8287                return super.stopCellEditing();
    8388        }
     89
     90        public File getParentDir() {
     91                return parentDir;
     92        }
     93
     94        public void setParentDir(File parentDir) {
     95                this.parentDir = parentDir;
     96        }
    8497}
  • src/main/java/de/erichseifert/warp/gui/ReplayParserGUI.java

    r0e56a7e r3519f4d  
    7777        private final DefaultTableModel replayTableModel;
    7878        private final JTable replayTable;
     79        private final ReplayCellEditor replayCellEditor;
    7980        private final TableRowSorter<TableModel> replayTableSorter;
    8081        private final ReplayRowFilter<TableModel> replayTableFilter;
     
    176177                JSplitPane splitPane = new JSplitPane();
    177178                getContentPane().add(splitPane, BorderLayout.CENTER);
    178                 splitPane.setDividerLocation(400);
     179                splitPane.setDividerLocation(450);
    179180
    180181                // Left side: Replay renderer
     
    204205                replayTable.setRowSorter(replayTableSorter);
    205206                // Set Column spacing
    206                 replayTable.getColumnModel().getColumn(0).setPreferredWidth(400);
     207                replayTable.getColumnModel().getColumn(0).setPreferredWidth(350);
    207208                // Set selection mode
    208209                replayTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     
    222223                });
    223224                // Create editor for the replay column
    224                 ReplayCellEditor replayCellEditor = new ReplayCellEditor(replayTable, replayDir);
     225                replayCellEditor = new ReplayCellEditor(replayTable);
    225226                replayColumn.setCellEditor(replayCellEditor);
    226227                replayTable.getColumnModel().getColumn(2).setCellRenderer(new DefaultTableCellRenderer() {
     
    266267        private void setReplayDir(File replayDir) {
    267268                this.replayDir = replayDir;
     269                replayTableFilter.setParentDir(replayDir);
     270                replayCellEditor.setParentDir(replayDir);
    268271                if (replayDir == null) {
    269272                        return;
  • src/main/java/de/erichseifert/warp/gui/ReplayRowFilter.java

    r0e56a7e r3519f4d  
    2222package de.erichseifert.warp.gui;
    2323
     24import java.io.File;
    2425import java.util.Collection;
    2526import java.util.HashSet;
     
    3031import de.erichseifert.warp.Player;
    3132import de.erichseifert.warp.Replay;
     33import de.erichseifert.warp.util.GUIUtil;
    3234
    3335/**
     
    7779
    7880        private final Collection<Integer> columnIndices;
     81        private File parentDir;
    7982        private String filterText;
    8083        private FilterMode filterMode;
     
    128131                                if (filterMode == FilterMode.FILE_NAME ||
    129132                                        filterMode == FilterMode.FILE_AND_PLAYER_NAME) {
    130                                         String fileName = replay.getFile().getName().toLowerCase();
    131                                         if (fileName.contains(filterText)) {
     133                                        String pathRelative = GUIUtil.getPathRelativeTo(parentDir, replay.getFile()).toLowerCase();
     134                                        if (pathRelative.contains(filterText)) {
    132135                                                return true;
    133136                                        }
     
    177180                this.filterMode = filterMode;
    178181        }
     182
     183        public File getParentDir() {
     184                return parentDir;
     185        }
     186
     187        public void setParentDir(File parentDir) {
     188                this.parentDir = parentDir;
     189        }
    179190}
  • src/main/java/de/erichseifert/warp/gui/renderers/sc2replay/SC2ReplayRenderer.java

    r0e56a7e r3519f4d  
    2525import java.awt.FlowLayout;
    2626import java.awt.GridLayout;
    27 import java.awt.event.ActionEvent;
    28 import java.awt.event.ActionListener;
     27import java.awt.event.MouseAdapter;
     28import java.awt.event.MouseEvent;
    2929
    3030import javax.swing.JCheckBox;
     
    3333import javax.swing.SwingConstants;
    3434import javax.swing.border.EmptyBorder;
     35import javax.swing.event.ChangeEvent;
     36import javax.swing.event.ChangeListener;
    3537
    3638import de.erichseifert.warp.Player;
     
    6466                        this.value = value;
    6567
    66                         playerRenderer = new PlayerRenderer();
    67                         add(playerRenderer);
    68 
    6968                        visiblityBox = new JCheckBox();
    7069                        visiblityBox.setSelected(true);
    7170                        add(visiblityBox);
    7271
     72                        playerRenderer = new PlayerRenderer();
     73                        playerRenderer.addMouseListener(new MouseAdapter() {
     74                                @Override
     75                                public void mouseClicked(MouseEvent e) {
     76                                        visiblityBox.setSelected(!visiblityBox.isSelected());
     77                                }
     78                        });
     79                        add(playerRenderer);
     80
    7381                        refresh();
    7482                }
    7583
    76                 public void addActionListener(ActionListener listener) {
    77                         visiblityBox.addActionListener(listener);
    78                 }
    79 
    80                 public void removeActionListener(ActionListener listener) {
    81                         visiblityBox.removeActionListener(listener);
     84                public void addChangeListener(ChangeListener listener) {
     85                        visiblityBox.addChangeListener(listener);
     86                }
     87
     88                public void removeAChangeListener(ChangeListener listener) {
     89                        visiblityBox.removeChangeListener(listener);
    8290                }
    8391
     
    165173                mapPreviewLabel.setIcon(value.getMapPreview());
    166174                // Refresh players
    167                 playerLabels.setLayout(new GridLayout(value.getMetaData().getPlayers().size(), 1, 0, 5));
     175                int rowCount = (int) Math.round(value.getMetaData().getPlayers().size() / 2.0);
     176                playerLabels.setLayout(new GridLayout(rowCount, 2, 5, 5));
    168177                for (final SC2Player player : value.getMetaData().getPlayers()) {
    169178                        final PlayerVisibilityEditor playerLabel = new PlayerVisibilityEditor(player);
    170                         playerLabel.addActionListener(new ActionListener() {
     179                        playerLabel.addChangeListener(new ChangeListener() {
    171180                                @Override
    172                                 public void actionPerformed(ActionEvent e) {
     181                                public void stateChanged(ChangeEvent e) {
    173182                                        chatRenderer.setPlayerVisible(player, playerLabel.isSelected());
    174183                                }
Note: See TracChangeset for help on using the changeset viewer.