Crossfire JXClient, Trunk
AbstractFacesManager.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.util.concurrent.atomic.AtomicBoolean;
27 import javax.swing.ImageIcon;
28 import org.jetbrains.annotations.NotNull;
29 import org.jetbrains.annotations.Nullable;
30 
35 public abstract class AbstractFacesManager implements FacesManager {
36 
41  @NotNull
43 
47  @NotNull
48  private final FaceCache faceCache;
49 
54  protected AbstractFacesManager(@NotNull final FaceCache faceCache) {
55  this.faceCache = faceCache;
56  }
57 
58  @Override
59  public void addFacesManagerListener(@NotNull final FacesManagerListener facesManagerListener) {
60  facesManagerListeners.add(facesManagerListener);
61  }
62 
63  @Override
64  public void removeFacesManagerListener(@NotNull final FacesManagerListener facesManagerListener) {
65  facesManagerListeners.remove(facesManagerListener);
66  }
67 
73  protected void fireFaceUpdated(@NotNull final Face face) {
74  for (FacesManagerListener facesManagerListener : facesManagerListeners) {
75  facesManagerListener.faceUpdated(face);
76  }
77  }
78 
79  @NotNull
80  @Override
81  public ImageIcon getOriginalImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage) {
82  return getFaceImages(faceNum, returnIsUnknownImage).getOriginalImageIcon();
83  }
84 
85  @NotNull
86  @Override
87  public ImageIcon getScaledImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage) {
88  return getFaceImages(faceNum, returnIsUnknownImage).getScaledImageIcon();
89  }
90 
91  @NotNull
92  @Override
93  public ImageIcon getMagicMapImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage) {
94  return getFaceImages(faceNum, returnIsUnknownImage).getMagicMapImageIcon();
95  }
96 
97  @NotNull
98  @Override
99  public Face getFace(final int faceNum) {
100  getFaceImages(faceNum, null);
101  return faceCache.getFace(faceNum);
102  }
103 
113  @NotNull
114  protected abstract FaceImages getFaceImages(final int faceNum, @Nullable AtomicBoolean returnIsUnknownImage);
115 
123  @NotNull
124  protected Face lookupFace(final int faceNum) {
125  return faceCache.getFace(faceNum);
126  }
127 
128  @Nullable
129  @Override
130  public Face getFace2(final int faceNum) {
131  if (faceNum == 0) {
132  return null;
133  }
134 
135  getFaceImages(faceNum, null);
136  return faceCache.getFace(faceNum);
137  }
138 
139  @Override
140  public void reset() {
141  faceCache.reset();
142  }
143 
144 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.getOriginalImageIcon
ImageIcon getOriginalImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage)
Definition: AbstractFacesManager.java:81
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.lookupFace
Face lookupFace(final int faceNum)
Definition: AbstractFacesManager.java:124
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.getMagicMapImageIcon
ImageIcon getMagicMapImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage)
Definition: AbstractFacesManager.java:93
com.realtime.crossfire.jxclient.faces.FaceImages.getMagicMapImageIcon
ImageIcon getMagicMapImageIcon()
Definition: FaceImages.java:87
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.getFace2
Face getFace2(final int faceNum)
Definition: AbstractFacesManager.java:130
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.reset
void reset()
Definition: AbstractFacesManager.java:140
com.realtime.crossfire.jxclient.util.EventListenerList2
Definition: EventListenerList2.java:37
com.realtime.crossfire.jxclient.faces.FacesManagerListener
Definition: FacesManagerListener.java:32
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.facesManagerListeners
final EventListenerList2< FacesManagerListener > facesManagerListeners
Definition: AbstractFacesManager.java:42
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.addFacesManagerListener
void addFacesManagerListener(@NotNull final FacesManagerListener facesManagerListener)
Definition: AbstractFacesManager.java:59
com.realtime.crossfire.jxclient.faces.FaceCache.reset
void reset()
Definition: FaceCache.java:77
com.realtime.crossfire.jxclient.faces.FaceImages.getOriginalImageIcon
ImageIcon getOriginalImageIcon()
Definition: FaceImages.java:69
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.removeFacesManagerListener
void removeFacesManagerListener(@NotNull final FacesManagerListener facesManagerListener)
Definition: AbstractFacesManager.java:64
com.realtime.crossfire.jxclient.faces.FaceImages.getScaledImageIcon
ImageIcon getScaledImageIcon()
Definition: FaceImages.java:78
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.getScaledImageIcon
ImageIcon getScaledImageIcon(final int faceNum, @Nullable final AtomicBoolean returnIsUnknownImage)
Definition: AbstractFacesManager.java:87
com.realtime.crossfire.jxclient.faces.AbstractFacesManager
Definition: AbstractFacesManager.java:35
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.AbstractFacesManager.getFace
Face getFace(final int faceNum)
Definition: AbstractFacesManager.java:99
com.realtime.crossfire.jxclient.faces.FacesManager
Definition: FacesManager.java:40
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.faceCache
final FaceCache faceCache
Definition: AbstractFacesManager.java:48
com.realtime.crossfire.jxclient.faces.FaceCache.getFace
Face getFace(final int faceNum)
Definition: FaceCache.java:62
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.getFaceImages
abstract FaceImages getFaceImages(final int faceNum, @Nullable AtomicBoolean returnIsUnknownImage)
com
com.realtime.crossfire.jxclient.faces.AbstractFacesManager.AbstractFacesManager
AbstractFacesManager(@NotNull final FaceCache faceCache)
Definition: AbstractFacesManager.java:54
com.realtime.crossfire.jxclient.faces.FaceCache
Definition: FaceCache.java:33
com.realtime.crossfire.jxclient.faces.Face
Definition: Face.java:37
com.realtime.crossfire.jxclient.faces.FaceImages
Definition: FaceImages.java:32