package com.giftoftheembalmer.gotefarm.client;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.SimpleCheckBox;
abstract class BadgeAndRoleClickHandler implements ClickHandler {
String flavor1; // e.g., role
private FlexTable flex;
private int row;
protected ChrBadgeAndRole role;
public BadgeAndRoleClickHandler(String flavor1, FlexTable flex, int row, ChrBadgeAndRole role) {
this.flavor1 = flavor1;
this.flex = flex;
this.row = row;
this.role = role;
}
public void onClick(ClickEvent event) {
SimpleCheckBox hasrole = (SimpleCheckBox)event.getSource();
boolean adding = true;
if (hasrole.isChecked()) {
if (role.isRestricted()) {
flex.setText(row, 2, "pending admin approval");
}
}
else {
adding = false;
flex.setText(row, 2, "");
// user is unchecking a role, confirm this action
// if the role is restricted
if (role.isRestricted()) {
if (role.isApproved()) {
if (!Window.confirm("This " + flavor1 + " will need to be approved by an admin if you decide to add it back, are you sure you want to remove it?")) {
hasrole.setChecked(true);
return;
}
}
}
}
updateCharacterRole(adding);
}
public abstract void updateCharacterRole(boolean adding);
}