use of org.apache.syncope.client.console.panels.RealmChoicePanel.ChosenRealm in project syncope by apache.
the class Realms method updateRealmContent.
private WebMarkupContainer updateRealmContent(final RealmTO realmTO, final int selectedIndex) {
if (realmTO == null) {
return content;
}
content.addOrReplace(new Realm("body", realmTO, Realms.this.getPageReference(), selectedIndex) {
private static final long serialVersionUID = 8221398624379357183L;
@Override
protected void onClickTemplate(final AjaxRequestTarget target) {
templates.setTargetObject(realmTO);
templates.toggle(target, true);
}
@Override
protected void setWindowClosedReloadCallback(final BaseModal<?> modal) {
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
private static final long serialVersionUID = 8804221891699487139L;
@Override
public void onClose(final AjaxRequestTarget target) {
if (modal.getContent() instanceof ResultPage) {
Serializable result = ResultPage.class.cast(modal.getContent()).getResult();
RealmTO newRealmTO = RealmTO.class.cast(ProvisioningResult.class.cast(result).getEntity());
// reload realmChoicePanel label too - SYNCOPE-1151
target.add(realmChoicePanel.reloadRealmTree(target, Model.of(newRealmTO)));
realmChoicePanel.setCurrentRealm(newRealmTO);
send(Realms.this, Broadcast.DEPTH, new ChosenRealm<>(newRealmTO, target));
} else {
target.add(realmChoicePanel.reloadRealmTree(target));
}
target.add(content);
modal.show(false);
}
});
}
@Override
protected void onClickCreate(final AjaxRequestTarget target) {
this.wizardBuilder.setParentPath(realmChoicePanel.getCurrentRealm().getFullPath());
send(this, Broadcast.EXACT, new AjaxWizard.NewItemActionEvent<RealmTO>(new RealmTO(), target) {
@Override
public String getEventDescription() {
return "realm.new";
}
});
}
@Override
protected void onClickEdit(final AjaxRequestTarget target, final RealmTO realmTO) {
this.wizardBuilder.setParentPath(realmTO.getFullPath());
send(this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<RealmTO>(realmTO, target) {
@Override
public String getEventDescription() {
return "realm.edit";
}
});
}
@Override
protected void onClickDelete(final AjaxRequestTarget target, final RealmTO realmTO) {
try {
if (realmTO.getKey() == null) {
throw new Exception("Root realm cannot be deleted");
}
realmRestClient.delete(realmTO.getFullPath());
RealmTO parent = realmChoicePanel.moveToParentRealm(realmTO.getKey());
target.add(realmChoicePanel.reloadRealmTree(target));
SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
updateRealmContent(parent, selectedIndex);
target.add(content);
} catch (Exception e) {
LOG.error("While deleting realm", e);
// Escape line breaks
SyncopeConsoleSession.get().error(e.getMessage().replace("\n", " "));
}
((BasePage) Realms.this.getPage()).getNotificationPanel().refresh(target);
}
});
return content;
}
Aggregations