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.gui.gauge;
00023
00024 import com.realtime.crossfire.jxclient.skills.Skill;
00025 import com.realtime.crossfire.jxclient.skills.SkillListener;
00026 import com.realtime.crossfire.jxclient.stats.ExperienceTable;
00027 import org.jetbrains.annotations.NotNull;
00028
00033 public class SkillGaugeUpdater extends GaugeUpdater {
00034
00038 @NotNull
00039 private final Skill skill;
00040
00044 @NotNull
00045 private final SkillListener skillListener = new SkillListener() {
00046
00047 @Override
00048 public void gainedSkill() {
00049 changedSkill();
00050 }
00051
00052 @Override
00053 public void lostSkill() {
00054 setValues(0, 0, 0, "", "");
00055 }
00056
00057 @Override
00058 public void changedSkill() {
00059 final int percents = getPercentsToNextLevel(skill.getLevel(), skill.getExperience());
00060 setValues(percents, 0, 99, Integer.toString(skill.getLevel()), percents+"% "+skill.getExperience()+" (lvl "+skill.getLevel()+")");
00061 }
00062
00063 };
00064
00070 public SkillGaugeUpdater(@NotNull final ExperienceTable experienceTable, @NotNull final Skill skill) {
00071 super(experienceTable, false);
00072 this.skill = skill;
00073 this.skill.addSkillListener(skillListener);
00074 }
00075
00079 @Override
00080 public void dispose() {
00081 skill.removeSkillListener(skillListener);
00082 }
00083
00084 }