00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.faces;
00023
00024 import org.jetbrains.annotations.NotNull;
00025
00032 public class FacesQueue extends AbstractFaceQueue {
00033
00038 @NotNull
00039 private final FileCacheFaceQueue fileCacheFaceQueue;
00040
00045 @NotNull
00046 private final FaceQueue faceQueue;
00047
00051 @NotNull
00052 private final FaceQueueListener fileCacheFaceQueueListener = new FaceQueueListener() {
00053
00054 @Override
00055 public void faceLoaded(@NotNull final Face face, @NotNull final FaceImages faceImages) {
00056 fireFaceLoaded(face, faceImages);
00057 }
00058
00059 @Override
00060 public void faceFailed(@NotNull final Face face) {
00061 faceQueue.loadFace(face);
00062 }
00063
00064 };
00065
00069 @NotNull
00070 private final FaceQueueListener askfaceFaceQueueListener = new FaceQueueListener() {
00071
00072 @Override
00073 public void faceLoaded(@NotNull final Face face, @NotNull final FaceImages faceImages) {
00074 fireFaceLoaded(face, faceImages);
00075 fileCacheFaceQueue.saveFace(face, faceImages);
00076 }
00077
00078 @Override
00079 public void faceFailed(@NotNull final Face face) {
00080 fireFaceFailed(face);
00081 }
00082
00083 };
00084
00095 public FacesQueue(@NotNull final FaceQueue faceQueue, @NotNull final ImageCache imageCacheOriginal, @NotNull final ImageCache imageCacheScaled, @NotNull final ImageCache imageCacheMagicMap) {
00096 fileCacheFaceQueue = new FileCacheFaceQueue(imageCacheOriginal, imageCacheScaled, imageCacheMagicMap);
00097 this.faceQueue = faceQueue;
00098 fileCacheFaceQueue.addFaceQueueListener(fileCacheFaceQueueListener);
00099 faceQueue.addFaceQueueListener(askfaceFaceQueueListener);
00100 }
00101
00105 @Override
00106 public void reset() {
00107 fileCacheFaceQueue.reset();
00108 faceQueue.reset();
00109 }
00110
00114 @Override
00115 public void loadFace(@NotNull final Face face) {
00116 fileCacheFaceQueue.loadFace(face);
00117 }
00118
00119 }