Search in sources :

Example 1 with ChosenRealm

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;
}
Also used : Serializable(java.io.Serializable) RealmTO(org.apache.syncope.common.lib.to.RealmTO) WindowClosedCallback(org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) ResultPage(org.apache.syncope.client.console.wizards.any.ResultPage) Realm(org.apache.syncope.client.console.panels.Realm) ChosenRealm(org.apache.syncope.client.console.panels.RealmChoicePanel.ChosenRealm)

Aggregations

Serializable (java.io.Serializable)1 Realm (org.apache.syncope.client.console.panels.Realm)1 ChosenRealm (org.apache.syncope.client.console.panels.RealmChoicePanel.ChosenRealm)1 ResultPage (org.apache.syncope.client.console.wizards.any.ResultPage)1 RealmTO (org.apache.syncope.common.lib.to.RealmTO)1 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)1 WindowClosedCallback (org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback)1