Changeset 9f43973


Ignore:
Timestamp:
Jun 12, 2010, 3:01:28 PM (10 years ago)
Author:
Michael Seifert <mseifert@…>
Branches:
master
Children:
0438dfb
Parents:
84da366
Message:

Parsed replays now appear immediately in the table

File:
1 edited

Legend:

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

    r84da366 r9f43973  
    4848        private final ReplayStorage storage;
    4949        private final ReplayParserGUI gui;
     50
     51        private class ParserThread extends Thread {
     52                private final File dir;
     53
     54                public ParserThread(File dir) {
     55                        this.dir = dir;
     56                }
     57
     58                @Override
     59                public void run() {
     60                        Collection<File> replayFiles = FileUtil.walk(dir, walkDepth);
     61
     62                        for (File replayFile : replayFiles) {
     63                                Replay replay = ReplayParserFactory.getInstance().getReplayParser(replayFile);
     64                                storage.save(replay);
     65
     66                                fireReplayInfoChanged(null, replay.getDescriptor());
     67                        }
     68
     69                        // FIXME: Find better solution
     70                        replayFiles = null;
     71                        System.gc();
     72                }
     73        }
    5074
    5175        /**
     
    101125                // Store selected directory for the next startup
    102126                Settings.getInstance().setReplayDir(dir.getPath());
    103                 // Refresh replay table
    104                 Collection<File> replayFiles = FileUtil.walk(dir, walkDepth);
    105                 for (File replayFile : replayFiles) {
    106                         Replay replay = ReplayParserFactory.getInstance().getReplayParser(replayFile);
    107                         storage.save(replay);
    108127
    109                         // Notify listeners
    110                         fireReplayInfoChanged(null, replay.getDescriptor());
    111                 }
    112 
    113 
    114                 // FIXME: Find better solution
    115                 replayFiles = null;
    116                 System.gc();
     128                ParserThread parserThread = new ParserThread(dir);
     129                parserThread.start();
    117130        }
    118131
Note: See TracChangeset for help on using the changeset viewer.