Changeset 01152f8
- Timestamp:
- Jul 26, 2010, 3:07:31 PM (8 years ago)
- Branches:
- master
- Children:
- c90b0d6
- Parents:
- 60de382
- Files:
-
- 1 added
- 13 edited
- 13 moved
Legend:
- Unmodified
- Added
- Removed
-
core/src/main/java/de/erichseifert/warp/core/ActionFilterFactory.java
r60de382 r01152f8 70 70 } 71 71 try { 72 Map<String, List<String>> mappedFilters = FileUtil.parse File(stream);72 Map<String, List<String>> mappedFilters = FileUtil.parseProperties(stream); 73 73 for (Map.Entry<String, List<String>> entry : mappedFilters.entrySet()) { 74 74 String actionClassName = entry.getKey(); -
core/src/main/java/de/erichseifert/warp/core/WARP.java
r60de382 r01152f8 23 23 24 24 import java.io.File; 25 import java.lang.reflect.Constructor;26 25 import java.util.Collection; 27 26 import java.util.Map; 28 27 import java.util.Set; 29 28 30 import de.erichseifert.warp.core.gui.WARPGUI;31 29 import de.erichseifert.warp.core.io.BufferedStorage; 32 30 import de.erichseifert.warp.core.io.ReplayStorage; … … 36 34 import de.erichseifert.warp.core.io.search.indices.Index.Range; 37 35 import de.erichseifert.warp.core.replays.ReplayParserFactory; 36 import de.erichseifert.warp.core.ui.CLI; 37 import de.erichseifert.warp.core.ui.WARPUI; 38 38 import de.erichseifert.warp.core.util.FileUtil; 39 39 … … 46 46 47 47 private final ReplayStorage storage; 48 private final WARPGUI gui;48 private WARPUI ui; 49 49 50 50 /** … … 100 100 * Creates a <code>WARP</code> object. 101 101 */ 102 public WARP(Class<? extends WARPGUI> guiClass) throws InstantiationException, IllegalAccessException, SecurityException, NoSuchMethodException { 103 if (guiClass == null) { 104 System.exit(-1); 105 } 106 ReplayStorage serStorage = new SerializingStorage(); 107 storage = new BufferedStorage(serStorage); 108 109 Constructor<? extends WARPGUI> guiConstructor = guiClass.getConstructor(WARP.class); 110 gui = guiClass.newInstance(); 111 112 gui.setReplays(storage.getDescriptors()); 113 102 public WARP() { 103 this(new BufferedStorage(new SerializingStorage()), new CLI()); 104 } 105 106 public WARP(WARPUI ui) { 107 this(new BufferedStorage(new SerializingStorage()), ui); 108 } 109 110 public WARP(ReplayStorage storage, WARPUI ui) { 111 this.storage = storage; 112 this.ui = ui; 113 114 ui.setReplays(storage.getDescriptors()); 114 115 boolean parsingComplete = Settings.getInstance().isParsingComplete(); 115 116 if (!parsingComplete) { 116 gui.resumeParsing();117 ui.resumeParsing(); 117 118 } 118 119 } … … 122 123 */ 123 124 public static void main(String[] args) { 124 Class<? extends WARPGUI> guiClass = null; 125 if (args.length > 1) { 126 String guiClassName = args[0]; 127 try { 128 guiClass = (Class<? extends WARPGUI>) Class.forName(guiClassName); 129 } catch (ClassNotFoundException e) { 130 // TODO Auto-generated catch block 131 e.printStackTrace(); 132 } 133 } 134 try { 135 new WARP(guiClass); 136 } catch (SecurityException e) { 137 // TODO Auto-generated catch block 138 e.printStackTrace(); 139 } catch (InstantiationException e) { 140 // TODO Auto-generated catch block 141 e.printStackTrace(); 142 } catch (IllegalAccessException e) { 143 // TODO Auto-generated catch block 144 e.printStackTrace(); 145 } catch (NoSuchMethodException e) { 146 // TODO Auto-generated catch block 147 e.printStackTrace(); 148 } 125 new WARP(); 149 126 } 150 127 /** … … 160 137 161 138 String oldDir = Settings.getInstance().getReplayDir(); 162 if ( !oldDir.equals(dir)) {139 if (oldDir != null && !oldDir.equals(dir)) { 163 140 // Clear storage 164 141 storage.clear(); … … 225 202 storage.removeReplayDataChangeListener(listener); 226 203 } 204 205 public void setUi(WARPUI ui) { 206 // TODO Dispose old UI 207 this.ui = ui; 208 } 227 209 } -
core/src/main/java/de/erichseifert/warp/core/io/AbstractReplayStorage.java
r60de382 r01152f8 38 38 39 39 @Override 40 public void save(Replay... replays) { 41 for (Replay replay : replays) { 42 ReplayDescriptor descriptor = replay.getDescriptor(); 43 fireReplayDataChanged(null, descriptor); 44 } 40 public void save(Replay replay) { 41 ReplayDescriptor descriptor = replay.getDescriptor(); 42 fireReplayDataChanged(null, descriptor); 45 43 } 46 44 47 45 @Override 48 public void delete(long... ids) { 49 for (long id : ids) { 50 ReplayDescriptor descriptorOld = load(id).get(0); 51 fireReplayDataChanged(descriptorOld, null); 52 } 46 public void delete(long id) { 47 ReplayDescriptor descriptorOld = load(id); 48 fireReplayDataChanged(descriptorOld, null); 53 49 } 54 50 -
core/src/main/java/de/erichseifert/warp/core/io/BufferedStorage.java
r60de382 r01152f8 24 24 import java.io.File; 25 25 import java.util.LinkedHashMap; 26 import java.util.List;27 26 import java.util.Map; 28 27 import java.util.Set; … … 96 95 97 96 @Override 98 public List<ReplayDescriptor> load(long... ids) {99 return storage.load(id s);97 public ReplayDescriptor load(long id) { 98 return storage.load(id); 100 99 } 101 100 102 101 @Override 103 public void save(Replay ...replays) {102 public void save(Replay replays) { 104 103 storage.save(replays); 105 104 } … … 114 113 115 114 @Override 116 public void delete(long ... ids) {117 storage.delete(id s);115 public void delete(long id) { 116 storage.delete(id); 118 117 } 119 118 -
core/src/main/java/de/erichseifert/warp/core/io/MemoryStorage.java
r60de382 r01152f8 25 25 import java.util.HashMap; 26 26 import java.util.HashSet; 27 import java.util.LinkedList;28 import java.util.List;29 27 import java.util.Map; 30 28 import java.util.Set; … … 60 58 61 59 @Override 62 public void save(Replay... replays) { 63 for (Replay replay : replays) { 64 cache.put(replay.getDescriptor().getId(), replay); 65 } 66 super.save(replays); 60 public void save(Replay replay) { 61 cache.put(replay.getDescriptor().getId(), replay); 62 super.save(replay); 67 63 } 68 64 69 65 @Override 70 public void delete(long... ids) { 71 for (long id : ids) { 72 cache.remove(id); 73 } 74 super.delete(ids); 66 public void delete(long id) { 67 cache.remove(id); 68 super.delete(id); 75 69 } 76 70 … … 117 111 118 112 @Override 119 public List<ReplayDescriptor> load(long... ids) { 120 List<ReplayDescriptor> descriptors = new LinkedList<ReplayDescriptor>(); 121 for (long id : ids) { 122 Replay replay = cache.get(id); 123 descriptors.add(replay.getDescriptor()); 124 } 125 return descriptors; 113 public ReplayDescriptor load(long id) { 114 Replay replay = cache.get(id); 115 return replay.getDescriptor(); 126 116 } 127 117 -
core/src/main/java/de/erichseifert/warp/core/io/ReplayStorage.java
r60de382 r01152f8 23 23 24 24 import java.io.File; 25 import java.util.List;26 25 import java.util.Map; 27 26 import java.util.Set; … … 40 39 41 40 /** 42 * Returns the parsed replay s which belong to the specified file paths.43 * @param id s IDsof the unparsed replay files.44 * @return Descriptor s of the parsed replays in the same order as the specified paths.41 * Returns the parsed replay which belongs to the specified id. 42 * @param id ID of the unparsed replay files. 43 * @return Descriptor of the parsed replay. 45 44 */ 46 List<ReplayDescriptor> load(long... ids);45 ReplayDescriptor load(long id); 47 46 /** 48 * Stores the specified replay s.49 * @param replay s Replaysto be stored.47 * Stores the specified replay. 48 * @param replay Replay to be stored. 50 49 */ 51 void save(Replay ... replays);50 void save(Replay replay); 52 51 /** 53 * Removes the specified replay s.54 * @param id s Replay ids.52 * Removes the specified replay. 53 * @param id Replay id. 55 54 */ 56 void delete(long ... ids);55 void delete(long id); 57 56 58 57 Replay getReplay(ReplayDescriptor descriptor); -
core/src/main/java/de/erichseifert/warp/core/io/SerializingStorage.java
r60de382 r01152f8 31 31 import java.util.HashMap; 32 32 import java.util.HashSet; 33 import java.util.LinkedList;34 import java.util.List;35 33 import java.util.Map; 36 34 import java.util.Set; … … 196 194 // FIXME: Throw exception 197 195 @Override 198 public void save(Replay... replays) { 196 public void save(Replay replay) { 197 if (replay == null) { 198 return; 199 } 199 200 if (!storageDir.exists()) { 200 201 storageDir.mkdir(); … … 204 205 initIndexer(); 205 206 206 // Save replays 207 for (Replay replay : replays) { 208 if (replay == null) { 209 continue; 210 } 211 String replayFilePath = getSerializationPath(storageDir, replay.getDescriptor()); 212 serialize(replay, replayFilePath); 213 descriptorsById.put(replay.getDescriptor().getId(), replay.getDescriptor()); 214 lastSavedReplay = replay; 215 } 216 217 super.save(replays); 207 // Save replay 208 String replayFilePath = getSerializationPath(storageDir, replay.getDescriptor()); 209 serialize(replay, replayFilePath); 210 descriptorsById.put(replay.getDescriptor().getId(), replay.getDescriptor()); 211 lastSavedReplay = replay; 212 213 super.save(replay); 218 214 219 215 // Serialize replay descriptors … … 245 241 246 242 @Override 247 public void delete(long ... ids) {243 public void delete(long id) { 248 244 initDescriptorCache(); 249 245 initStatistics(); 250 246 initIndexer(); 251 247 252 super.delete(ids); 253 254 for (long id : ids) { 255 ReplayDescriptor descriptor = load(id).get(0); 256 String serPath = getSerializationPath(storageDir, descriptor); 257 File serializedFile = new File(serPath); 258 serializedFile.delete(); 259 260 descriptorsById.remove(descriptor.getId()); 261 } 248 super.delete(id); 249 250 ReplayDescriptor descriptor = load(id); 251 String serPath = getSerializationPath(storageDir, descriptor); 252 File serializedFile = new File(serPath); 253 serializedFile.delete(); 254 255 descriptorsById.remove(descriptor.getId()); 262 256 263 257 // Serialize replay descriptors … … 344 338 345 339 @Override 346 public List<ReplayDescriptor> load(long... ids) { 347 List<ReplayDescriptor> descriptors = new LinkedList<ReplayDescriptor>(); 348 for (long id : ids) { 349 ReplayDescriptor descriptor = descriptorsById.get(id); 350 descriptors.add(descriptor); 351 } 352 return descriptors; 340 public ReplayDescriptor load(long id) { 341 ReplayDescriptor descriptor = descriptorsById.get(id); 342 return descriptor; 353 343 } 354 344 -
core/src/main/java/de/erichseifert/warp/core/io/search/DefaultReplayIndexer.java
r60de382 r01152f8 191 191 // The parent element of an index hierarchy must be a replay 192 192 long replayID = resultNode.getRootNode().getId(); 193 ReplayDescriptor descriptor = storage.load(replayID) .get(0);193 ReplayDescriptor descriptor = storage.load(replayID); 194 194 results.add(descriptor); 195 195 } … … 210 210 for (Node pathNode : node.getPath()) { 211 211 if ("#replay".equals(pathNode.getPropertyGetterName())) { 212 ReplayDescriptor descriptor = storage.load(pathNode.getId()) .get(0);212 ReplayDescriptor descriptor = storage.load(pathNode.getId()); 213 213 parentObj = storage.getReplay(descriptor); 214 214 continue; -
core/src/main/java/de/erichseifert/warp/core/replays/ReplayParserFactory.java
r60de382 r01152f8 61 61 } 62 62 try { 63 Map<String, List<String>> mappedParsers = FileUtil.parse File(stream);63 Map<String, List<String>> mappedParsers = FileUtil.parseProperties(stream); 64 64 for (Map.Entry<String, List<String>> entry : mappedParsers.entrySet()) { 65 65 String fileExtension = entry.getKey().toLowerCase(); -
core/src/main/java/de/erichseifert/warp/core/ui/WARPUI.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp.core. gui;22 package de.erichseifert.warp.core.ui; 23 23 24 24 import java.util.Set; … … 26 26 import de.erichseifert.warp.core.ReplayDescriptor; 27 27 28 public interface WARP GUI {28 public interface WARPUI { 29 29 void resumeParsing(); 30 30 -
core/src/main/java/de/erichseifert/warp/core/util/FileUtil.java
r60de382 r01152f8 32 32 import java.util.HashMap; 33 33 import java.util.HashSet; 34 import java.util.LinkedList; 34 35 import java.util.List; 35 36 import java.util.Map; … … 45 46 } 46 47 48 public static List<String> parseLines(InputStream stream) throws IOException { 49 InputStreamReader ifs = new InputStreamReader(stream); 50 BufferedReader br = new BufferedReader(ifs); 51 List<String> lines = new LinkedList<String>(); 52 String line; 53 while ((line = br.readLine()) != null) { 54 if (!line.isEmpty()) { 55 lines.add(line); 56 } 57 } 58 ifs.close(); 59 return lines; 60 } 61 47 62 /** 48 63 * Parses properties that contain multiple values per key from the … … 52 67 * @throws IOException 53 68 */ 54 public static final Map<String, List<String>> parseFile(InputStream stream) throws IOException {69 public static Map<String, List<String>> parseProperties(InputStream stream) throws IOException { 55 70 InputStreamReader ifs = new InputStreamReader(stream); 56 71 BufferedReader br = new BufferedReader(ifs); -
core/src/test/java/de/erichseifert/warp/core/util/FileUtilTest.java
r60de382 r01152f8 81 81 Map<String, List<String>> properties = null; 82 82 try { 83 properties = FileUtil.parse File(in);83 properties = FileUtil.parseProperties(in); 84 84 } catch (IOException e) { 85 85 // TODO Auto-generated catch block -
gui.swing/pom.xml
r60de382 r01152f8 9 9 <artifactId>gui.swing</artifactId> 10 10 <version>0.6</version> 11 12 <build> 13 <plugins> 14 <plugin> 15 <artifactId>maven-jar-plugin</artifactId> 16 <configuration> 17 <archive> 18 <manifest> 19 <addClasspath>true</addClasspath> 20 <mainClass>de.erichseifert.warp.gui.swing.WARP</mainClass> 21 </manifest> 22 </archive> 23 </configuration> 24 </plugin> 25 </plugins> 26 </build> 11 27 12 28 <dependencies> -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/APMPlot.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.BorderLayout; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/AboutWindow.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.BorderLayout; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/DefaultChatRenderer.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.BorderLayout; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/DefaultPlayerRenderer.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.Component; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/DefaultReplayRenderer.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.BorderLayout; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/ExpandableSplitPane.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import javax.swing.JSplitPane; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/ItemRenderer.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.Component; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/ReplayCellEditor.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.Component; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/ReplayParserGUI.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 import java.awt.BorderLayout; … … 90 90 import de.erichseifert.warp.core.io.Settings; 91 91 import de.erichseifert.warp.core.io.search.indices.Index.Range; 92 import de.erichseifert.warp.core.ui.WARPUI; 92 93 import de.erichseifert.warp.core.util.FileUtil; 93 94 … … 98 99 * to display important information. Both components are organized in a <code>JSplitPane</code>. 99 100 */ 100 public class ReplayParserGUI extends JFrame implements ReplayDataChangeListener, ProgressListener {101 public class ReplayParserGUI extends JFrame implements ReplayDataChangeListener, ProgressListener, WARPUI { 101 102 private static enum State { 102 103 PARSING(true, false, "Parsing replays..."), … … 223 224 super("WARP"); 224 225 225 parsedDir = new File(Settings.getInstance().getReplayDir()); 226 String parsedDirPath = Settings.getInstance().getReplayDir(); 227 if (parsedDirPath != null) { 228 parsedDir = new File(parsedDirPath); 229 } 230 else { 231 parsedDir = null; 232 } 226 233 227 234 this.warp = warp; -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/VisibilityChangeEvent.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 public class VisibilityChangeEvent<T> { -
gui.swing/src/main/java/de/erichseifert/warp/gui/swing/VisibilityChangeListener.java
r60de382 r01152f8 20 20 */ 21 21 22 package de.erichseifert.warp. java.swing;22 package de.erichseifert.warp.gui.swing; 23 23 24 24 public interface VisibilityChangeListener<T> { -
sc2replay/src/main/java/de/erichseifert/warp/sc2replay/renderers/SC2ReplayRenderer.java
r60de382 r01152f8 32 32 33 33 import de.erichseifert.warp.core.Player; 34 import de.erichseifert.warp. java.swing.DefaultReplayRenderer;35 import de.erichseifert.warp. java.swing.VisibilityChangeEvent;36 import de.erichseifert.warp. java.swing.VisibilityChangeListener;34 import de.erichseifert.warp.gui.swing.DefaultReplayRenderer; 35 import de.erichseifert.warp.gui.swing.VisibilityChangeEvent; 36 import de.erichseifert.warp.gui.swing.VisibilityChangeListener; 37 37 import de.erichseifert.warp.sc2replay.SC2Replay; 38 38
Note: See TracChangeset
for help on using the changeset viewer.