Crossfire JXClient, Trunk
src
model
src
main
java
com
realtime
crossfire
jxclient
items
QuestsView.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.items;
24
25
import
com
.
realtime
.
crossfire
.
jxclient
.
faces
.
Face
;
26
import
com
.
realtime
.
crossfire
.
jxclient
.
faces
.
FacesManager
;
27
import
com
.
realtime
.
crossfire
.
jxclient
.
quests
.
Quest
;
28
import
com
.
realtime
.
crossfire
.
jxclient
.
quests
.
QuestsManager
;
29
import
java.util.ArrayList;
30
import
java.util.List;
31
import
org.jetbrains.annotations.NotNull;
32
import
org.jetbrains.annotations.Nullable;
33
38
public
class
QuestsView
extends
AbstractItemView
{
39
43
@NotNull
44
private
final
QuestsManager
questsManager
;
45
49
@NotNull
50
private
final
FacesManager
facesManager
;
51
55
@NotNull
56
@SuppressWarnings(
"FieldAccessedSynchronizedAndUnsynchronized"
)
57
private
QuestsFilter
filter
=
QuestsFilter
.ALL;
58
62
@NotNull
63
private final List<
CfItem
>
quests
= new ArrayList<>();
64
70
public
QuestsView
(@NotNull final
QuestsManager
questsManager
, @NotNull final
FacesManager
facesManager
) {
71
this.questsManager =
questsManager
;
72
this.facesManager =
facesManager
;
73
questsManager
.
addCrossfireQuestChangedListener
(index ->
rebuildList
());
74
facesManager
.
addFacesManagerListener
(face -> {
75
if
(
questsManager
.
displaysFace
(face.getFaceNum())) {
76
addModifiedRange(0, quests.size());
77
}
78
});
79
}
80
81
@Override
82
public
int
getSize
() {
83
synchronized
(
quests
) {
84
return
quests
.size();
85
}
86
}
87
88
@Nullable
89
@Override
90
public
CfItem
getItem
(
final
int
index) {
91
synchronized
(
quests
) {
92
try
{
93
return
quests
.get(index);
94
}
catch
(
final
IndexOutOfBoundsException ignored) {
95
return
null
;
96
}
97
}
98
}
99
100
private
void
rebuildList
() {
101
synchronized
(
quests
) {
102
quests
.clear();
103
for
(
final
Quest
quest :
questsManager
.
getQuests
()) {
104
if
(
filter
.
matches
(quest)) {
105
final
Face
face =
facesManager
.
getFace
(quest.getFace());
106
quests
.add(
new
CfItem
(0, quest.getCode(), 0, 0, face, quest.getTitle(), quest.getTitle(), 0, 0, 0, 0));
107
}
108
}
109
addModifiedRange
(0,
quests
.size()-1);
110
}
111
}
112
117
public
void
setFilter
(@NotNull
final
QuestsFilter
filter
) {
118
if
(this.filter ==
filter
) {
119
return
;
120
}
121
122
this.filter =
filter
;
123
rebuildList
();
124
}
125
126
}
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.items.QuestsFilter.matches
matches
Definition:
QuestsFilter.java:17
com.realtime.crossfire.jxclient.items.AbstractItemView
Definition:
AbstractItemView.java:35
com.realtime.crossfire.jxclient.items.QuestsView.getSize
int getSize()
Definition:
QuestsView.java:82
com.realtime.crossfire.jxclient.quests.QuestsManager.displaysFace
boolean displaysFace(final int faceNum)
Definition:
QuestsManager.java:212
com.realtime.crossfire.jxclient.faces
Definition:
AbstractFaceQueue.java:23
com.realtime.crossfire.jxclient.items.QuestsView.setFilter
void setFilter(@NotNull final QuestsFilter filter)
Definition:
QuestsView.java:117
com.realtime.crossfire.jxclient.items.QuestsFilter
Definition:
QuestsFilter.java:10
com.realtime.crossfire.jxclient.faces.FacesManager.getFace
Face getFace(int faceNum)
com.realtime.crossfire.jxclient.items.QuestsView.rebuildList
void rebuildList()
Definition:
QuestsView.java:100
com.realtime.crossfire.jxclient.quests.QuestsManager.getQuests
List< Quest > getQuests()
Definition:
QuestsManager.java:233
com.realtime.crossfire.jxclient.items.QuestsView
Definition:
QuestsView.java:38
com.realtime.crossfire.jxclient.items.AbstractItemView.addModifiedRange
void addModifiedRange(final int firstIndex, final int lastIndex)
Definition:
AbstractItemView.java:103
com.realtime.crossfire.jxclient.quests.Quest
Definition:
Quest.java:32
com.realtime.crossfire.jxclient.items.QuestsView.facesManager
final FacesManager facesManager
Definition:
QuestsView.java:50
com.realtime.crossfire.jxclient.items.CfItem
Definition:
CfItem.java:37
com.realtime.crossfire.jxclient.items.QuestsView.quests
final List< CfItem > quests
Definition:
QuestsView.java:63
com.realtime.crossfire.jxclient.quests
Definition:
Quest.java:23
com.realtime.crossfire.jxclient.faces.FacesManager.addFacesManagerListener
void addFacesManagerListener(@NotNull FacesManagerListener facesManagerListener)
com.realtime.crossfire.jxclient.faces.FacesManager
Definition:
FacesManager.java:40
com.realtime.crossfire.jxclient.quests.QuestsManager
Definition:
QuestsManager.java:41
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.items.QuestsView.getItem
CfItem getItem(final int index)
Definition:
QuestsView.java:90
com.realtime.crossfire.jxclient.items.QuestsView.filter
QuestsFilter filter
Definition:
QuestsView.java:57
com
com.realtime.crossfire.jxclient.quests.QuestsManager.addCrossfireQuestChangedListener
void addCrossfireQuestChangedListener(@NotNull final QuestsManagerListener listener)
Definition:
QuestsManager.java:120
com.realtime.crossfire.jxclient.faces.Face
Definition:
Face.java:37
com.realtime.crossfire.jxclient.items.QuestsView.questsManager
final QuestsManager questsManager
Definition:
QuestsView.java:44
Generated by
1.8.17