Crossfire JXClient, Trunk
DefaultFacesManager.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.faces;
24 
26 import java.io.IOException;
27 import java.util.concurrent.atomic.AtomicBoolean;
28 import org.jetbrains.annotations.NotNull;
29 import org.jetbrains.annotations.Nullable;
30 
41 
45  @NotNull
46  private final FaceQueue faceQueue;
47 
51  @NotNull
53 
57  @NotNull
58  private final FaceImages emptyFaceImages;
59 
63  @NotNull
64  @SuppressWarnings("FieldCanBeLocal")
66 
67  @Override
68  public void faceLoaded(@NotNull final Face face, @NotNull final FaceImages faceImages) {
69  face.setFaceImages(faceImages);
70  fireFaceUpdated(face);
71  }
72 
73  @Override
74  public void faceFailed(@NotNull final Face face) {
75  face.setFaceImages(unknownFaceImages);
76  fireFaceUpdated(face);
77  }
78 
79  };
80 
87  public DefaultFacesManager(@NotNull final FaceCache faceCache, @NotNull final FaceQueue faceQueue) throws IOException {
88  super(faceCache);
89  this.faceQueue = faceQueue;
91 
94  }
95 
103  @NotNull
104  @Override
105  protected FaceImages getFaceImages(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage) {
106  if (faceNum == 0) {
107  if (returnIsUnknownImage != null) {
108  returnIsUnknownImage.set(false);
109  }
110  return emptyFaceImages;
111  }
112 
113  final Face face = lookupFace(faceNum);
114  final FaceImages faceImages = face.getFaceImages();
115  if (faceImages != null) {
116  if (returnIsUnknownImage != null) {
117  returnIsUnknownImage.set(false);
118  }
119  return faceImages;
120  }
121 
122  faceQueue.loadFace(face);
123  if (returnIsUnknownImage != null) {
124  returnIsUnknownImage.set(true);
125  }
126  return unknownFaceImages;
127  }
128 
129  @Override
130  public void reset() {
131  super.reset();
132  faceQueue.reset();
133  }
134 
135 }
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.reset
void reset()
Definition: DefaultFacesManager.java:130
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.faces.FaceImagesUtils.newFaceImages
static FaceImages newFaceImages(@NotNull final ImageIcon originalImageIcon)
Definition: FaceImagesUtils.java:51
com.realtime.crossfire.jxclient.faces.FaceImagesUtils.newEmptyFaceImages
static FaceImages newEmptyFaceImages()
Definition: FaceImagesUtils.java:62
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.lookupFace
Face lookupFace(final int faceNum)
Definition: AbstractFacesManager.java:124
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.faceQueue
final FaceQueue faceQueue
Definition: DefaultFacesManager.java:46
com.realtime.crossfire.jxclient.faces.FaceQueue.addFaceQueueListener
void addFaceQueueListener(@NotNull FaceQueueListener faceQueueListener)
com.realtime.crossfire.jxclient.faces.Face.getFaceImages
FaceImages getFaceImages()
Definition: Face.java:115
com.realtime.crossfire.jxclient.util.ResourceUtils.UNKNOWN_PNG
static final String UNKNOWN_PNG
Definition: ResourceUtils.java:40
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.faceQueueListener
final FaceQueueListener faceQueueListener
Definition: DefaultFacesManager.java:65
com.realtime.crossfire.jxclient.faces.DefaultFacesManager
Definition: DefaultFacesManager.java:40
com.realtime.crossfire.jxclient.util.ResourceUtils.loadImage
static ImageIcon loadImage(@NotNull final String name)
Definition: ResourceUtils.java:79
com.realtime.crossfire.jxclient.faces.FaceQueue.reset
void reset()
com.realtime.crossfire.jxclient.faces.FaceQueueListener
Definition: FaceQueueListener.java:32
com.realtime.crossfire.jxclient.faces.AbstractFacesManager
Definition: AbstractFacesManager.java:35
com.realtime.crossfire.jxclient.util.ResourceUtils
Definition: ResourceUtils.java:34
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.DefaultFacesManager
DefaultFacesManager(@NotNull final FaceCache faceCache, @NotNull final FaceQueue faceQueue)
Definition: DefaultFacesManager.java:87
com.realtime.crossfire.jxclient.util
Definition: Codec.java:23
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.fireFaceUpdated
void fireFaceUpdated(@NotNull final Face face)
Definition: AbstractFacesManager.java:73
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.emptyFaceImages
final FaceImages emptyFaceImages
Definition: DefaultFacesManager.java:58
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.faceCache
final FaceCache faceCache
Definition: AbstractFacesManager.java:48
com
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.unknownFaceImages
final FaceImages unknownFaceImages
Definition: DefaultFacesManager.java:52
com.realtime.crossfire.jxclient.faces.FaceCache
Definition: FaceCache.java:33
com.realtime.crossfire.jxclient.faces.FaceImagesUtils
Definition: FaceImagesUtils.java:36
com.realtime.crossfire.jxclient.faces.FaceQueue.loadFace
void loadFace(@NotNull Face face)
com.realtime.crossfire.jxclient.faces.Face
Definition: Face.java:37
com.realtime.crossfire.jxclient.faces.FaceImages
Definition: FaceImages.java:32
com.realtime.crossfire.jxclient.faces.DefaultFacesManager.getFaceImages
FaceImages getFaceImages(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage)
Definition: DefaultFacesManager.java:105
com.realtime.crossfire.jxclient.faces.FaceQueue
Definition: FaceQueue.java:31