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.stats.ExperienceTable;
00025 import org.jetbrains.annotations.NotNull;
00026 import org.jetbrains.annotations.Nullable;
00027
00032 public abstract class GaugeUpdater {
00033
00037 @NotNull
00038 private final ExperienceTable experienceTable;
00039
00043 @Nullable
00044 private GUIGaugeListener gauge = null;
00045
00049 private final boolean hideIfEmpty;
00050
00056 protected GaugeUpdater(@NotNull final ExperienceTable experienceTable, final boolean hideIfEmpty) {
00057 this.experienceTable = experienceTable;
00058 this.hideIfEmpty = hideIfEmpty;
00059 }
00060
00064 public abstract void dispose();
00065
00070 @SuppressWarnings("NullableProblems")
00071 public void setGauge(@NotNull final GUIGaugeListener gauge) {
00072 this.gauge = gauge;
00073
00074 if (hideIfEmpty) {
00075 gauge.setHidden(true);
00076 }
00077 }
00078
00085 protected void setValues(final int curValue, final int minValue, final int maxValue) {
00086 if (gauge != null) {
00087 final String curValueString = Integer.toString(curValue);
00088 final String tooltipText;
00089 if (minValue == 0) {
00090 tooltipText = curValue+"/"+maxValue;
00091 } else {
00092 tooltipText = curValueString;
00093 }
00094 assert gauge != null;
00095 gauge.setValues(curValue, minValue, maxValue, curValueString, tooltipText);
00096 if (hideIfEmpty) {
00097 assert gauge != null;
00098 gauge.setHidden(curValue == 0 && minValue == 0 && maxValue == 0);
00099 }
00100 }
00101 }
00102
00111 protected void setValues(final int curValue, final int minValue, final int maxValue, @NotNull final String labelText, @NotNull final String tooltipText) {
00112 if (gauge != null) {
00113 gauge.setValues(curValue, minValue, maxValue, labelText, tooltipText);
00114 }
00115 }
00116
00123 protected int getPercentsToNextLevel(final int level, final long experience) {
00124 return experienceTable.getPercentsToNextLevel(level, experience);
00125 }
00126
00133 protected long getExperienceToNextLevel(final int level, final long experience) {
00134 return experienceTable.getExperienceToNextLevel(level, experience);
00135 }
00136
00137 }