Example usage for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow ModalWindow

List of usage examples for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow ModalWindow

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow ModalWindow.

Prototype

public ModalWindow(final String id) 

Source Link

Document

Creates a new modal window component.

Usage

From source file:org.syncope.console.pages.BasePage.java

License:Apache License

private void pageSetup() {
    ((SyncopeApplication) getApplication()).setupNavigationPane(this, xmlRolesReader, true, version);

    feedbackPanel = new FeedbackPanel("feedback");
    feedbackPanel.setOutputMarkupId(true);
    add(feedbackPanel);//from w  ww  .ja v a 2 s . co  m

    final String kind = getClass().getSimpleName().toLowerCase();
    final BookmarkablePageLink kindLink = (BookmarkablePageLink) get(kind);
    if (kindLink != null) {
        kindLink.add(new Behavior() {

            private static final long serialVersionUID = 1469628524240283489L;

            @Override
            public void onComponentTag(final Component component, final ComponentTag tag) {

                tag.put("class", kind);
            }
        });

        Component kindIcon = kindLink.get(0);
        if (kindIcon != null) {
            kindIcon.add(new Behavior() {

                private static final long serialVersionUID = 1469628524240283489L;

                @Override
                public void onComponentTag(final Component component, final ComponentTag tag) {

                    tag.put("src",
                            "../.." + SyncopeApplication.IMG_PREFIX + kind + SyncopeApplication.IMG_SUFFIX);
                }
            });
        }
    }

    // Modal window for editing user profile
    final ModalWindow editProfileModalWin = new ModalWindow("editProfileModal");
    editProfileModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    editProfileModalWin.setInitialHeight(EDIT_PROFILE_WIN_HEIGHT);
    editProfileModalWin.setInitialWidth(EDIT_PROFILE_WIN_WIDTH);
    editProfileModalWin.setCookieName("edit-profile-modal");
    add(editProfileModalWin);

    add(new Label("username", SyncopeSession.get().getUserId()));

    Fragment editProfileFrag;
    if ("admin".equals(SyncopeSession.get().getUserId())) {
        editProfileFrag = new Fragment("editProfile", "adminEmptyFrag", this);
    } else {
        final UserTO userTO = SyncopeSession.get().isAuthenticated() ? profileRestClient.readProfile()
                : new UserTO();

        editProfileFrag = new Fragment("editProfile", "editProfileFrag", this);

        AjaxLink editProfileLink = new IndicatingAjaxLink("link") {

            private static final long serialVersionUID = -7978723352517770644L;

            @Override
            public void onClick(final AjaxRequestTarget target) {
                editProfileModalWin.setPageCreator(new ModalWindow.PageCreator() {

                    @Override
                    public Page createPage() {
                        return new UserRequestModalPage(BasePage.this.getPageReference(), editProfileModalWin,
                                userTO);
                    }
                });

                editProfileModalWin.show(target);
            }
        };
        editProfileLink.add(new Label("linkTitle", getString("editProfile")));

        Panel panel = new LinkPanel("editProfile", new ResourceModel("editProfile"));
        panel.add(editProfileLink);
        editProfileFrag.add(panel);
    }
    add(editProfileFrag);
}

From source file:org.syncope.console.pages.Configuration.java

License:Apache License

public Configuration(final PageParameters parameters) {
    super(parameters);

    add(createConfigWin = new ModalWindow("createConfigurationWin"));
    add(editConfigWin = new ModalWindow("editConfigurationWin"));
    setupSyncopeConf();//from w  ww.j  a  v  a  2  s  .c om

    add(new PoliciesPanel("passwordPoliciesPanel", PolicyType.PASSWORD));
    add(new PoliciesPanel("accountPoliciesPanel", PolicyType.ACCOUNT));
    add(new PoliciesPanel("syncPoliciesPanel", PolicyType.SYNC));

    add(createNotificationWin = new ModalWindow("createNotificationWin"));
    add(editNotificationWin = new ModalWindow("editNotificationWin"));
    setupNotification();

    // Workflow definition stuff
    final WorkflowDefinitionTO workflowDef = wfRestClient.getDefinition();

    WebMarkupContainer workflowDefContainer = new WebMarkupContainer("workflowDefContainer");

    Form wfForm = new Form("workflowDefForm", new CompoundPropertyModel(workflowDef));

    TextArea<WorkflowDefinitionTO> workflowDefArea = new TextArea<WorkflowDefinitionTO>("workflowDefArea",
            new PropertyModel<WorkflowDefinitionTO>(workflowDef, "xmlDefinition"));
    wfForm.add(workflowDefArea);

    IndicatingAjaxButton submit = new IndicatingAjaxButton("apply", new Model<String>(getString("submit"))) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form form) {

            try {
                wfRestClient.updateDefinition(workflowDef);
                info(getString("operation_succeded"));
            } catch (SyncopeClientCompositeErrorException scee) {
                error(getString("error") + ":" + scee.getMessage());
            }
            target.add(feedbackPanel);
        }

        @Override
        protected void onError(final AjaxRequestTarget target, final Form form) {

            target.add(feedbackPanel);
        }
    };

    MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE,
            xmlRolesReader.getAllAllowedRoles("Configuration", "workflowDefUpdate"));
    wfForm.add(submit);

    workflowDefContainer.add(wfForm);

    MetaDataRoleAuthorizationStrategy.authorize(workflowDefContainer, ENABLE,
            xmlRolesReader.getAllAllowedRoles("Configuration", "workflowDefRead"));
    add(workflowDefContainer);

    // Logger stuff
    PropertyListView coreLoggerList = new LoggerPropertyList(null, "corelogger", confRestClient.getLoggers());
    WebMarkupContainer coreLoggerContainer = new WebMarkupContainer("coreLoggerContainer");
    coreLoggerContainer.add(coreLoggerList);
    coreLoggerContainer.setOutputMarkupId(true);

    MetaDataRoleAuthorizationStrategy.authorize(coreLoggerContainer, ENABLE,
            xmlRolesReader.getAllAllowedRoles("Configuration", "loggerList"));
    add(coreLoggerContainer);

    ConsoleLoggerController consoleLoggerController = new ConsoleLoggerController();
    PropertyListView consoleLoggerList = new LoggerPropertyList(consoleLoggerController, "consolelogger",
            consoleLoggerController.getLoggers());
    WebMarkupContainer consoleLoggerContainer = new WebMarkupContainer("consoleLoggerContainer");
    consoleLoggerContainer.add(consoleLoggerList);
    consoleLoggerContainer.setOutputMarkupId(true);

    MetaDataRoleAuthorizationStrategy.authorize(consoleLoggerContainer, ENABLE,
            xmlRolesReader.getAllAllowedRoles("Configuration", "loggerList"));
    add(consoleLoggerContainer);
}

From source file:org.syncope.console.pages.Login.java

License:Apache License

public Login(final PageParameters parameters) {
    super(parameters);

    form = new Form("login");

    userIdField = new TextField("userId", new Model());
    userIdField.setMarkupId("userId");
    form.add(userIdField);//w w  w .  j  a  va 2  s. c  o  m

    passwordField = new PasswordTextField("password", new Model());
    passwordField.setMarkupId("password");
    form.add(passwordField);

    languageSelect = new LocaleDropDown("language",
            Arrays.asList(new Locale[] { Locale.ENGLISH, Locale.ITALIAN }));

    form.add(languageSelect);

    Button submitButton = new Button("submit", new Model(getString("submit"))) {

        private static final long serialVersionUID = 429178684321093953L;

        @Override
        public void onSubmit() {
            String[] entitlements = authenticate(userIdField.getRawInput(), passwordField.getRawInput());

            if (entitlements == null) {
                error(getString("login-error"));
            } else {
                SyncopeSession.get().setUserId(userIdField.getRawInput());
                SyncopeSession.get().setEntitlements(entitlements);
                SyncopeSession.get().setCoreVersion(getCoreVersion());

                setResponsePage(WelcomePage.class, parameters);
            }
        }
    };

    submitButton.setDefaultFormProcessing(false);
    form.add(submitButton);

    add(form);
    add(new FeedbackPanel("feedback"));

    // Modal window for self registration
    final ModalWindow editProfileModalWin = new ModalWindow("selfRegModal");
    editProfileModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    editProfileModalWin.setInitialHeight(SELF_REG_WIN_HEIGHT);
    editProfileModalWin.setInitialWidth(SELF_REG_WIN_WIDTH);
    editProfileModalWin.setCookieName("self-reg-modal");
    add(editProfileModalWin);

    Fragment selfRegFrag;
    if (isSelfRegistrationAllowed()) {
        selfRegFrag = new Fragment("selfRegistration", "selfRegAllowed", this);

        AjaxLink selfRegLink = new IndicatingAjaxLink("link") {

            private static final long serialVersionUID = -7978723352517770644L;

            @Override
            public void onClick(final AjaxRequestTarget target) {
                editProfileModalWin.setPageCreator(new ModalWindow.PageCreator() {

                    private static final long serialVersionUID = -7834632442532690940L;

                    @Override
                    public Page createPage() {
                        return new UserRequestModalPage(Login.this.getPageReference(), editProfileModalWin,
                                new UserTO());
                    }
                });

                editProfileModalWin.show(target);
            }
        };
        selfRegLink.add(new Label("linkTitle", getString("selfRegistration")));

        Panel panel = new LinkPanel("selfRegistration", new ResourceModel("selfRegistration"));
        panel.add(selfRegLink);
        selfRegFrag.add(panel);
    } else {
        selfRegFrag = new Fragment("selfRegistration", "selfRegNotAllowed", this);
    }
    add(selfRegFrag);
}

From source file:org.syncope.console.pages.panels.NotificationTasks.java

License:Apache License

public NotificationTasks(String id) {
    super(id);//from   w ww.  j a v a2  s .  c om

    add(window = new ModalWindow("taskWin"));

    paginatorRows = prefMan.getPaginatorRows(getWebRequest(), Constants.PREF_NOTIFICATION_TASKS_PAGINATOR_ROWS);

    List<IColumn<TaskTO>> columns = new ArrayList<IColumn<TaskTO>>();

    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));
    columns.add(new PropertyColumn(new ResourceModel("sender"), "sender", "sender"));
    columns.add(new PropertyColumn(new ResourceModel("recipients"), "recipients", "recipients"));
    columns.add(new PropertyColumn(new ResourceModel("subject"), "subject", "subject"));
    columns.add(new PropertyColumn(new ResourceModel("traceLevel"), "traceLevel", "traceLevel"));
    columns.add(
            new PropertyColumn(new ResourceModel("latestExecStatus"), "latestExecStatus", "latestExecStatus"));

    columns.add(new AbstractColumn<TaskTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<TaskTO>> cellItem, final String componentId,
                final IModel<TaskTO> model) {

            final TaskTO taskTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    window.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new NotificationTaskModalPage(taskTO);
                        }
                    });

                    window.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Tasks", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), false);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(getPage().get("feedback"));
                    target.add(container);
                }
            }, ActionLink.ActionType.EXECUTE, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.delete(taskTO.getId());
                        info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }
                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DELETE, "Tasks", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable<TaskTO> table = new AjaxFallbackDefaultDataTable<TaskTO>("datatable",
            columns, new TasksProvider(restClient, paginatorRows, getId(), NotificationTaskTO.class),
            paginatorRows);

    container = new WebMarkupContainer("container");
    container.add(table);
    container.setOutputMarkupId(true);

    add(container);

    window.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        private static final long serialVersionUID = 8804221891699487139L;

        @Override
        public void onClose(final AjaxRequestTarget target) {
            target.add(container);
            if (operationResult) {
                info(getString("operation_succeded"));
                target.add(getPage().get("feedback"));
                operationResult = false;
            }
        }
    });

    window.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    window.setInitialHeight(WIN_HEIGHT);
    window.setInitialWidth(WIN_WIDTH);
    window.setCookieName("view-task-win");

    Form paginatorForm = new Form("PaginatorForm");

    final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser",
            new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());

    rowsChooser.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            prefMan.set(getWebRequest(), (WebResponse) getResponse(),
                    Constants.PREF_NOTIFICATION_TASKS_PAGINATOR_ROWS, String.valueOf(paginatorRows));

            table.setItemsPerPage(paginatorRows);

            target.add(container);
        }
    });

    paginatorForm.add(rowsChooser);
    add(paginatorForm);
}

From source file:org.syncope.console.pages.panels.PoliciesPanel.java

License:Apache License

public PoliciesPanel(final String id, final PolicyType policyType) {
    super(id);/*from   w ww  . ja  v a 2  s  . c  om*/

    this.policyType = policyType;

    // Modal window for editing user attributes
    final ModalWindow mwindow = new ModalWindow("editModalWin");
    mwindow.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    mwindow.setInitialHeight(MODAL_WIN_HEIGHT);
    mwindow.setInitialWidth(MODAL_WIN_WIDTH);
    mwindow.setCookieName("policy-modal");
    add(mwindow);

    // Container for user list
    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);

    setWindowClosedCallback(mwindow, container);

    final List<IColumn> columns = new ArrayList<IColumn>();

    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));

    columns.add(new PropertyColumn(new ResourceModel("description"), "description", "description"));

    columns.add(new AbstractColumn<PolicyTO>(new ResourceModel("type")) {

        private static final long serialVersionUID = 8263694778917279290L;

        @Override
        public void populateItem(final Item<ICellPopulator<PolicyTO>> cellItem, final String componentId,
                final IModel<PolicyTO> model) {

            cellItem.add(new Label(componentId, getString(model.getObject().getType().name())));
        }
    });

    columns.add(new AbstractColumn<PolicyTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<PolicyTO>> cellItem, final String componentId,
                final IModel<PolicyTO> model) {

            final PolicyTO accountPolicyTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    mwindow.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            final PolicyModalPage page = new PolicyModalPage(mwindow, accountPolicyTO);
                            return page;
                        }
                    });

                    mwindow.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Policies", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {

                        policyRestClient.delete(accountPolicyTO.getId());
                        info(getString("operation_succeded"));

                    } catch (SyncopeClientCompositeErrorException e) {
                        error(getString("operation_error"));

                        LOG.error("While deleting resource {}({})",
                                new Object[] { accountPolicyTO.getId(), accountPolicyTO.getDescription() }, e);
                    }

                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DELETE, "Policies", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable table = new AjaxFallbackDefaultDataTable("datatable", columns,
            new PolicyDataProvider(), paginatorRows);

    container.add(table);

    final IndicatingAjaxLink createButton = new IndicatingAjaxLink("createLink") {

        private static final long serialVersionUID = -7978723352517770644L;

        @Override
        public void onClick(final AjaxRequestTarget target) {

            mwindow.setPageCreator(new ModalWindow.PageCreator() {

                private static final long serialVersionUID = -7834632442532690940L;

                @Override
                public Page createPage() {
                    final PolicyModalPage page = new PolicyModalPage(mwindow, getPolicyTOInstance(policyType));
                    return page;
                }
            });

            mwindow.show(target);
        }
    };

    add(createButton);

    MetaDataRoleAuthorizationStrategy.authorize(createButton, ENABLE,
            xmlRolesReader.getAllAllowedRoles("Policies", "create"));

    final Form paginatorForm = new Form("PaginatorForm");

    final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser",
            new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());

    rowsChooser.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            prefMan.set(getWebRequest(), (WebResponse) getResponse(), Constants.PREF_POLICY_PAGINATOR_ROWS,
                    String.valueOf(paginatorRows));
            table.setItemsPerPage(paginatorRows);

            target.add(container);
        }
    });

    paginatorForm.add(rowsChooser);
    add(paginatorForm);
}

From source file:org.syncope.console.pages.panels.PropagationTasks.java

License:Apache License

public PropagationTasks(final String id) {
    super(id);/*w w w . j  a  v  a2 s.com*/

    add(window = new ModalWindow("taskWin"));

    paginatorRows = prefMan.getPaginatorRows(getWebRequest(), Constants.PREF_PROPAGATION_TASKS_PAGINATOR_ROWS);

    List<IColumn<TaskTO>> columns = new ArrayList<IColumn<TaskTO>>();

    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));

    columns.add(new PropertyColumn(new ResourceModel("resource"), "resource", "resource"));

    columns.add(new PropertyColumn(new ResourceModel("accountId"), "accountId", "accountId"));

    columns.add(new PropertyColumn(new ResourceModel("propagationMode"), "propagationMode", "propagationMode"));

    columns.add(new PropertyColumn(new ResourceModel("propagationOperation"), "propagationOperation",
            "propagationOperation"));

    columns.add(
            new PropertyColumn(new ResourceModel("latestExecStatus"), "latestExecStatus", "latestExecStatus"));

    columns.add(new AbstractColumn<TaskTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<TaskTO>> cellItem, final String componentId,
                final IModel<TaskTO> model) {

            final TaskTO taskTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    window.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new PropagationTaskModalPage(taskTO);
                        }
                    });

                    window.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Tasks", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), false);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(getPage().get("feedback"));
                    target.add(container);
                }
            }, ActionLink.ActionType.EXECUTE, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.delete(taskTO.getId());
                        info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }
                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DELETE, "Tasks", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable<TaskTO> table = new AjaxFallbackDefaultDataTable<TaskTO>("datatable",
            columns, new TasksProvider(restClient, paginatorRows, getId(), PropagationTaskTO.class),
            paginatorRows);

    container = new WebMarkupContainer("container");
    container.add(table);
    container.setOutputMarkupId(true);

    add(container);

    window.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        private static final long serialVersionUID = 8804221891699487139L;

        @Override
        public void onClose(final AjaxRequestTarget target) {
            target.add(container);
            if (operationResult) {
                info(getString("operation_succeded"));
                target.add(getPage().get("feedback"));
                operationResult = false;
            }
        }
    });

    window.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    window.setInitialHeight(WIN_HEIGHT);
    window.setInitialWidth(WIN_WIDTH);
    window.setCookieName("view-task-win");

    Form paginatorForm = new Form("PaginatorForm");

    final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser",
            new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());

    rowsChooser.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            prefMan.set(getWebRequest(), (WebResponse) getResponse(),
                    Constants.PREF_PROPAGATION_TASKS_PAGINATOR_ROWS, String.valueOf(paginatorRows));

            table.setItemsPerPage(paginatorRows);

            target.add(container);
        }
    });

    paginatorForm.add(rowsChooser);
    add(paginatorForm);
}

From source file:org.syncope.console.pages.panels.RolesPanel.java

License:Apache License

public RolesPanel(final String id, final UserTO userTO, final boolean templateMode) {

    super(id);/*w  w  w  . j a  v  a2  s  . c o m*/
    this.userTO = userTO;

    final WebMarkupContainer membershipsContainer = new WebMarkupContainer("membershipsContainer");
    membershipsContainer.setOutputMarkupId(true);
    add(membershipsContainer);

    final ModalWindow membershipWin = new ModalWindow("membershipWin");
    membershipWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    membershipWin.setCookieName("create-membership-modal");
    add(membershipWin);

    BaseTree tree = new LinkTree("treeTable", roleTreeBuilder.build()) {

        private static final long serialVersionUID = -5514696922119256101L;

        @Override
        protected IModel getNodeTextModel(final IModel model) {
            return new PropertyModel(model, "userObject.displayName");
        }

        @Override
        protected void onNodeLinkClicked(final Object node, final BaseTree tree,
                final AjaxRequestTarget target) {

            final RoleTO roleTO = (RoleTO) ((DefaultMutableTreeNode) node).getUserObject();

            membershipWin.setPageCreator(new ModalWindow.PageCreator() {

                private static final long serialVersionUID = 7661763358801821185L;

                private MembershipTO membershipTO;

                @Override
                public Page createPage() {

                    for (MembershipTO memberTO : membershipsView.getList()) {

                        if (memberTO.getRoleId() == roleTO.getId()) {
                            return new MembershipModalPage(getPage().getPageReference(), membershipWin,
                                    memberTO, templateMode);
                        }
                    }
                    membershipTO = new MembershipTO();
                    membershipTO.setRoleId(roleTO.getId());
                    membershipTO.setRoleName(roleTO.getName());

                    return new MembershipModalPage(getPage().getPageReference(), membershipWin, membershipTO,
                            templateMode);
                }
            });
            membershipWin.show(target);
        }
    };

    tree.setOutputMarkupId(true);
    tree.getTreeState().expandAll();

    add(tree);

    membershipsView = new ListView<MembershipTO>("memberships",
            new PropertyModel<List<? extends MembershipTO>>(userTO, "memberships")) {

        private static final long serialVersionUID = 9101744072914090143L;

        @Override
        protected void populateItem(final ListItem item) {
            final MembershipTO membershipTO = (MembershipTO) item.getDefaultModelObject();

            item.add(new Label("roleId", new Model(membershipTO.getRoleId())));
            item.add(new Label("roleName", new Model(membershipTO.getRoleName())));

            AjaxLink editLink = new IndicatingAjaxLink("editLink") {

                private static final long serialVersionUID = -7978723352517770644L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    membershipWin.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new MembershipModalPage(getPage().getPageReference(), membershipWin,
                                    membershipTO, templateMode);

                        }
                    });
                    membershipWin.show(target);
                }
            };
            item.add(editLink);

            AjaxLink deleteLink = new IndicatingDeleteOnConfirmAjaxLink("deleteLink") {

                private static final long serialVersionUID = -7978723352517770644L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    userTO.removeMembership(membershipTO);
                    target.add(membershipsContainer);
                }
            };
            item.add(deleteLink);
        }
    };

    membershipsContainer.add(membershipsView);

    setWindowClosedCallback(membershipWin, membershipsContainer);
}

From source file:org.syncope.console.pages.panels.SchedTasks.java

License:Apache License

public SchedTasks(final String id, final PageReference callerPageRef) {

    super(id);// w ww.  jav a 2 s .  c o  m

    container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);

    window = new ModalWindow("taskWin");
    window.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    window.setInitialHeight(WIN_HEIGHT);
    window.setInitialWidth(WIN_WIDTH);
    window.setCookieName("view-task-win");
    add(window);

    ((Tasks) callerPageRef.getPage()).setWindowClosedCallback(window, container);

    paginatorRows = prefMan.getPaginatorRows(getWebRequest(), Constants.PREF_SCHED_TASKS_PAGINATOR_ROWS);

    List<IColumn<SchedTaskTO>> columns = new ArrayList<IColumn<SchedTaskTO>>();

    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));

    columns.add(new PropertyColumn(new ResourceModel("class"), "jobClassName", "jobClassName"));

    columns.add(new DatePropertyColumn(new ResourceModel("lastExec"), "lastExec", "lastExec"));

    columns.add(new DatePropertyColumn(new ResourceModel("nextExec"), "nextExec", "nextExec"));

    columns.add(
            new PropertyColumn(new ResourceModel("latestExecStatus"), "latestExecStatus", "latestExecStatus"));

    columns.add(new AbstractColumn<SchedTaskTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<SchedTaskTO>> cellItem, final String componentId,
                final IModel<SchedTaskTO> model) {

            final SchedTaskTO taskTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    window.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new SchedTaskModalPage(window, taskTO, callerPageRef);
                        }
                    });

                    window.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Tasks", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), false);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(getPage().get("feedback"));
                    target.add(container);
                }
            }, ActionLink.ActionType.EXECUTE, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), true);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(getPage().get("feedback"));
                    target.add(container);
                }
            }, ActionLink.ActionType.DRYRUN, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.delete(taskTO.getId());
                        info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }
                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DELETE, "Tasks", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable<SchedTaskTO> table = new AjaxFallbackDefaultDataTable<SchedTaskTO>(
            "datatable", columns, new TasksProvider(restClient, paginatorRows, getId(), SchedTaskTO.class),
            paginatorRows);
    container.add(table);

    Form paginatorForm = new Form("PaginatorForm");

    final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser",
            new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());

    rowsChooser.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            prefMan.set(getWebRequest(), (WebResponse) getResponse(), Constants.PREF_SCHED_TASKS_PAGINATOR_ROWS,
                    String.valueOf(paginatorRows));

            table.setItemsPerPage(paginatorRows);

            target.add(container);
        }
    });

    paginatorForm.add(rowsChooser);
    add(paginatorForm);

    AjaxLink createLink = new IndicatingAjaxLink("createLink") {

        private static final long serialVersionUID = -7978723352517770644L;

        @Override
        public void onClick(final AjaxRequestTarget target) {
            window.setPageCreator(new ModalWindow.PageCreator() {

                private static final long serialVersionUID = -7834632442532690940L;

                @Override
                public Page createPage() {
                    return new SchedTaskModalPage(window, new SchedTaskTO(), callerPageRef);
                }
            });

            window.show(target);
        }
    };

    MetaDataRoleAuthorizationStrategy.authorize(createLink, RENDER,
            xmlRolesReader.getAllAllowedRoles("Tasks", "create"));

    add(createLink);
}

From source file:org.syncope.console.pages.panels.SyncTasks.java

License:Apache License

public SyncTasks(String id, final PageReference callerPageRef) {
    super(id);// ww w .j  a v a  2  s  .  c  o m

    container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);

    window = new ModalWindow("taskWin");
    window.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    window.setInitialHeight(WIN_HEIGHT);
    window.setInitialWidth(WIN_WIDTH);
    window.setCookieName("view-task-win");
    add(window);

    ((Tasks) callerPageRef.getPage()).setWindowClosedCallback(window, container);

    paginatorRows = prefMan.getPaginatorRows(getWebRequest(), Constants.PREF_SYNC_TASKS_PAGINATOR_ROWS);

    List<IColumn<SyncTaskTO>> columns = new ArrayList<IColumn<SyncTaskTO>>();

    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));

    columns.add(new PropertyColumn(new ResourceModel("resourceName"), "resource", "resource"));

    columns.add(new DatePropertyColumn(new ResourceModel("lastExec"), "lastExec", "lastExec"));

    columns.add(new DatePropertyColumn(new ResourceModel("nextExec"), "nextExec", "nextExec"));

    columns.add(
            new PropertyColumn(new ResourceModel("latestExecStatus"), "latestExecStatus", "latestExecStatus"));

    columns.add(new AbstractColumn<SyncTaskTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<SyncTaskTO>> cellItem, final String componentId,
                final IModel<SyncTaskTO> model) {

            final SyncTaskTO taskTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    window.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new SyncTaskModalPage(window, taskTO, callerPageRef);
                        }
                    });

                    window.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Tasks", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {

                    window.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new UserTemplateModalPage(callerPageRef, window, taskTO);
                        }
                    });

                    window.show(target);
                }
            }, ActionLink.ActionType.TEMPLATE, "Tasks", "read");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), false);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.EXECUTE, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.startExecution(taskTO.getId(), true);
                        getSession().info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DRYRUN, "Tasks", "execute");

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.delete(taskTO.getId());
                        info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }
                    target.add(container);
                    target.add(getPage().get("feedback"));
                }
            }, ActionLink.ActionType.DELETE, "Tasks", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable<SyncTaskTO> table = new AjaxFallbackDefaultDataTable<SyncTaskTO>(
            "datatable", columns, new TasksProvider(restClient, paginatorRows, id, SyncTaskTO.class),
            paginatorRows);
    container.add(table);

    Form paginatorForm = new Form("PaginatorForm");

    final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser",
            new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());

    rowsChooser.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            prefMan.set(getWebRequest(), (WebResponse) getResponse(), Constants.PREF_SYNC_TASKS_PAGINATOR_ROWS,
                    String.valueOf(paginatorRows));

            table.setItemsPerPage(paginatorRows);

            target.add(container);
        }
    });

    paginatorForm.add(rowsChooser);
    add(paginatorForm);

    // create new user
    AjaxLink createLink = new IndicatingAjaxLink("createLink") {

        private static final long serialVersionUID = -7978723352517770644L;

        @Override
        public void onClick(final AjaxRequestTarget target) {
            window.setPageCreator(new ModalWindow.PageCreator() {

                private static final long serialVersionUID = -7834632442532690940L;

                @Override
                public Page createPage() {
                    return new SyncTaskModalPage(window, new SyncTaskTO(), callerPageRef);
                }
            });

            window.show(target);
        }
    };

    MetaDataRoleAuthorizationStrategy.authorize(createLink, RENDER,
            xmlRolesReader.getAllAllowedRoles("Tasks", "create"));

    add(createLink);
}

From source file:org.syncope.console.pages.ReportModalPage.java

License:Apache License

private void setupExecutions() {
    final WebMarkupContainer executions = new WebMarkupContainer("executions");
    executions.setOutputMarkupId(true);/*from   ww w .j a v a2  s  .c om*/
    form.add(executions);

    final ModalWindow reportExecMessageWin = new ModalWindow("reportExecMessageWin");
    reportExecMessageWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    reportExecMessageWin.setCookieName("report-exec-message-win-modal");
    add(reportExecMessageWin);

    final ModalWindow reportExecExportWin = new ModalWindow("reportExecExportWin");
    reportExecExportWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    reportExecExportWin.setCookieName("report-exec-export-win-modal");
    reportExecExportWin.setInitialHeight(EXEC_EXPORT_WIN_HEIGHT);
    reportExecExportWin.setInitialWidth(EXEC_EXPORT_WIN_WIDTH);
    reportExecExportWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        private static final long serialVersionUID = 8804221891699487139L;

        @Override
        public void onClose(final AjaxRequestTarget target) {
            AjaxExportDownloadBehavior behavior = new AjaxExportDownloadBehavior(
                    ReportModalPage.this.exportFormat, ReportModalPage.this.exportExecId);
            executions.add(behavior);
            behavior.initiate(target);
        }
    });
    add(reportExecExportWin);

    final List<IColumn> columns = new ArrayList<IColumn>();
    columns.add(new PropertyColumn(new ResourceModel("id"), "id", "id"));
    columns.add(new DatePropertyColumn(new ResourceModel("startDate"), "startDate", "startDate"));
    columns.add(new DatePropertyColumn(new ResourceModel("endDate"), "endDate", "endDate"));
    columns.add(new PropertyColumn(new ResourceModel("status"), "status", "status"));
    columns.add(new AbstractColumn<ReportExecTO>(new ResourceModel("actions", "")) {

        private static final long serialVersionUID = 2054811145491901166L;

        @Override
        public String getCssClass() {
            return "action";
        }

        @Override
        public void populateItem(final Item<ICellPopulator<ReportExecTO>> cellItem, final String componentId,
                final IModel<ReportExecTO> model) {

            final ReportExecTO taskExecutionTO = model.getObject();

            final ActionLinksPanel panel = new ActionLinksPanel(componentId, model);

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    reportExecMessageWin.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            return new ExecMessageModalPage(model.getObject().getMessage());
                        }
                    });
                    reportExecMessageWin.show(target);
                }
            }, ActionLink.ActionType.EDIT, "Reports", "read",
                    StringUtils.hasText(model.getObject().getMessage()));

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    reportExecExportWin.setPageCreator(new ModalWindow.PageCreator() {

                        private static final long serialVersionUID = -7834632442532690940L;

                        @Override
                        public Page createPage() {
                            ReportModalPage.this.exportExecId = model.getObject().getId();
                            return new ReportExecResultDownloadModalPage(reportExecExportWin,
                                    ReportModalPage.this.getPageReference());
                        }
                    });
                    reportExecExportWin.show(target);
                }
            }, ActionLink.ActionType.EXPORT, "Reports", "read",
                    ReportExecStatus.SUCCESS.name().equals(model.getObject().getStatus()));

            panel.add(new ActionLink() {

                private static final long serialVersionUID = -3722207913631435501L;

                @Override
                public void onClick(final AjaxRequestTarget target) {
                    try {
                        restClient.deleteExecution(taskExecutionTO.getId());

                        reportTO.removeExecution(taskExecutionTO);

                        info(getString("operation_succeded"));
                    } catch (SyncopeClientCompositeErrorException scce) {
                        error(scce.getMessage());
                    }

                    target.add(feedbackPanel);
                    target.add(executions);
                }
            }, ActionLink.ActionType.DELETE, "Reports", "delete");

            cellItem.add(panel);
        }
    });

    final AjaxFallbackDefaultDataTable table = new AjaxFallbackDefaultDataTable("executionsTable", columns,
            new ReportExecutionsProvider(reportTO), 10);
    executions.add(table);
}