package me.rkfg.ns2gather.client;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
public abstract class VoteButton extends Button {
private static final String VOTE = "Голосовать";
private static final String UNVOTE = "Отменить голос";
boolean voted = false;
public VoteButton() {
setText(VOTE);
addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (!voted) {
vote();
} else {
unvote();
}
}
});
}
public void switchState() {
voted = !voted;
if (voted) {
setText(UNVOTE);
} else {
setText(VOTE);
}
}
public void setState(boolean isVoted) {
voted = isVoted;
}
protected abstract void vote();
protected abstract void unvote();
}