package gminers.glasspane.prebaked;
import gminers.glasspane.GlassPane;
import gminers.glasspane.component.button.PaneButton;
import gminers.glasspane.component.text.PaneLabel;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.ToString;
import lombok.experimental.FieldDefaults;
/**
* Implements a message dialog. Designed for use with {@link GlassPane#modalOverlay()}, but works with {@link GlassPane#show()} as
* well.
*
* @author Aesen Vismea
*
*/
@FieldDefaults(level = AccessLevel.PROTECTED)
@ToString
@Getter
public class PaneOkay
extends GlassPane {
public interface OkayCallback {
void onOkay(final PaneOkay pane);
}
String text;
String okText;
OkayCallback callback;
PaneButton okButton;
public PaneOkay(final String text, final String okText, final OkayCallback callback) {
setRevertAllowed(true);
this.text = text;
this.okText = okText;
this.callback = callback;
add(PaneLabel.createTitleLabel(text));
okButton = new PaneButton(okText);
okButton.registerActivationListener(new Runnable() {
@Override
public void run() {
if (callback != null) {
callback.onOkay(PaneOkay.this);
}
revert();
}
});
okButton.setAutoPosition(true);
okButton.setRelativeX(0.5);
okButton.setRelativeY(1.0);
okButton.setRelativeXOffset(-100);
okButton.setRelativeYOffset(-25);
add(okButton);
}
}