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.settings.options;
00023
00024 import org.jetbrains.annotations.NotNull;
00025
00031 public abstract class CheckBoxOption extends Option {
00032
00036 @NotNull
00037 private final String tooltipText;
00038
00042 private boolean checked = false;
00043
00048 protected CheckBoxOption(@NotNull final String tooltipText) {
00049 this.tooltipText = tooltipText;
00050 }
00051
00056 public boolean isChecked() {
00057 return checked;
00058 }
00059
00064 public void setChecked(final boolean checked) {
00065 if (this.checked == checked) {
00066 return;
00067 }
00068
00069 this.checked = checked;
00070 fireStateChangedEvent();
00071 }
00072
00076 public void toggleChecked() {
00077 setChecked(!checked);
00078 }
00079
00085 protected abstract void execute(final boolean checked);
00086
00090 @Override
00091 protected void fireStateChangedEvent() {
00092 execute(checked);
00093 super.fireStateChangedEvent();
00094 }
00095
00100 public abstract boolean isDefaultChecked();
00101
00106 @NotNull
00107 public String getTooltipText() {
00108 return tooltipText;
00109 }
00110
00111 }