00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 package com.realtime.crossfire.jxclient.items;
00022
00023 import com.realtime.crossfire.jxclient.faces.Face;
00024 import com.realtime.crossfire.jxclient.faces.FacesManager;
00025 import com.realtime.crossfire.jxclient.faces.FacesManagerListener;
00026 import com.realtime.crossfire.jxclient.quests.Quest;
00027 import com.realtime.crossfire.jxclient.quests.QuestsManager;
00028 import com.realtime.crossfire.jxclient.quests.QuestsManagerListener;
00029 import org.jetbrains.annotations.NotNull;
00030 import org.jetbrains.annotations.Nullable;
00031
00036 public class QuestsView extends AbstractItemView {
00037
00041 @NotNull
00042 private final QuestsManager questsManager;
00043
00047 @NotNull
00048 private final FacesManager facesManager;
00049
00055 public QuestsView(@NotNull final QuestsManager questsManager, @NotNull final FacesManager facesManager) {
00056 this.questsManager = questsManager;
00057 this.facesManager = facesManager;
00058 questsManager.addCrossfireQuestChangedListener(new QuestsManagerListener() {
00059 @Override
00060 public void questAdded(final int index) {
00061 addModifiedRange(index, questsManager.getQuests());
00062 }
00063 }) ;
00064 facesManager.addFacesManagerListener(new FacesManagerListener() {
00065
00066 @Override
00067 public void faceUpdated(@NotNull final Face face) {
00068 if (questsManager.displaysFace(face.getFaceNum())) {
00069 addModifiedRange(0, questsManager.getQuests());
00070 }
00071 }
00072
00073 });
00074 }
00075
00079 @Override
00080 public int getSize() {
00081 return questsManager.getQuests();
00082 }
00083
00087 @Nullable
00088 @Override
00089 public CfItem getItem(final int index) {
00090 final Quest quest = questsManager.getQuest(index);
00091 if (quest == null) {
00092 return null;
00093 }
00094 final Face face = facesManager.getFace(quest.getFace());
00095 return new CfItem(0, quest.getCode(), 0, 0, face, quest.getTitle(), quest.getTitle(), 0, 0, 0, 0);
00096 }
00097
00098 }