private final void doDelete(final TreeNode node, final String confirmMsg) {
final Workbench wb = (Workbench) Registry.get(Workbench.ID);
XUser admin = wb.getUser();
if (admin != null) {
final XObject xObj = node.getXObject();
WPaloAdminServiceProvider.getInstance().mayDelete(wb.getUser().getSessionId(), xObj,
new Callback<String[]>(null) {
private final void reallyDoDelete() {
WPaloAdminServiceProvider.getInstance().delete(wb.getUser().getSessionId(), xObj,
new Callback<Void>(null) {
public void onSuccess(Void v) {
treeStore.remove(node.getParent(), node);
Dispatcher.forwardEvent(new AppEvent<TreeNode>(
WPaloEvent.DELETED_ITEM, node));
}
});
}
public void onSuccess(String[] result) {
if (result == null || result.length == 0) {
MessageBox.confirm(constants.deleteMessageHeader(), confirmMsg,
new Listener<WindowEvent>() {
public void handleEvent(WindowEvent we) {
Dialog dialog = (Dialog) we.component;
Button btn = dialog.getButtonPressed();
if(btn.getItemId().equalsIgnoreCase(Dialog.YES))
reallyDoDelete();
}
});
} else {
if (result[0].equals("_NO_ACCOUNT_ERROR_")) {
if (xObj.getType().equals(XUser.TYPE)) {
String message = constants.impossibleToDeleteUser();
message += "<br/>" + constants.views() + ":<br/>";
for (int i = 1; i < result.length; i++) {
message += result[i] + "<br/>";
}