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

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

Introduction

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

Prototype

public ModalWindow setWindowClosedCallback(final WindowClosedCallback callback) 

Source Link

Document

Sets the @{link WindowClosedCallback instance.

Usage

From source file:com.doculibre.constellio.wicket.panels.admin.elevate.ElevateQueryListPanel.java

License:Open Source License

public ElevateQueryListPanel(String id) {
    super(id);/* ww  w .  java2s . com*/

    add(new DocIdsPanel("excludedDocIdsPanel", null, false));

    IModel elevateQueriesModel = new LoadableDetachableModel() {
        @Override
        protected Object load() {
            AdminCollectionPanel collectionAdminPanel = (AdminCollectionPanel) findParent(
                    AdminCollectionPanel.class);
            RecordCollection collection = collectionAdminPanel.getCollection();
            String solrCoreName = collection.getName();

            ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices();
            return elevateServices.getQueries(solrCoreName);
        }
    };

    add(new ListView("queries", elevateQueriesModel) {
        @Override
        protected void populateItem(ListItem item) {
            final String queryText = (String) item.getModelObject();
            ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices();
            final SimpleSearch querySimpleSearch = elevateServices.toSimpleSearch(queryText);

            int nbDocs = elevateServices.getElevatedDocIds(querySimpleSearch).size();
            item.add(new Label("nbDocs", "" + nbDocs));

            final ModalWindow detailsModal = new ModalWindow("detailsModal");
            item.add(detailsModal);
            detailsModal.setInitialHeight(SingleColumnCRUDPanel.MODAL_HEIGHT);
            detailsModal.setCssClassName(ModalWindow.CSS_CLASS_GRAY);

            WebMarkupContainer detailsLink = new AjaxLink("detailsLink") {
                @Override
                public void onClick(AjaxRequestTarget target) {
                    detailsModal
                            .setContent(new ElevateQueryDocIdsPanel(detailsModal.getContentId(), queryText));
                    //                  detailsModal.setTitle(queryText);
                    detailsModal.setWindowClosedCallback(new WindowClosedCallback() {
                        @Override
                        public void onClose(AjaxRequestTarget target) {
                            target.addComponent(ElevateQueryListPanel.this);
                        }
                    });
                    detailsModal.show(target);
                }
            };
            item.add(detailsLink);
            detailsLink.add(new SimpleSearchQueryPanel("queryText", querySimpleSearch));

            WebMarkupContainer deleteLink = new AjaxLink("deleteLink") {
                @Override
                public void onClick(AjaxRequestTarget target) {
                    ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices();
                    elevateServices.deleteQuery(querySimpleSearch);
                    target.addComponent(ElevateQueryListPanel.this);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    return new AjaxCallDecorator() {
                        @Override
                        public CharSequence decorateScript(CharSequence script) {
                            String confirmMsg = getLocalizer().getString("confirmDelete",
                                    ElevateQueryListPanel.this);
                            return "if (confirm('" + confirmMsg + "')) {" + script + "} else { return false; }";
                        }
                    };
                }
            };
            item.add(deleteLink);
        }
    });
}

From source file:com.evolveum.midpoint.gui.api.page.PageBase.java

License:Apache License

protected ModalWindow createModalWindow(final String id, IModel<String> title, int width, int height) {
    final ModalWindow modal = new ModalWindow(id);
    add(modal);/*  w ww .  jav a  2 s. c o  m*/

    modal.setResizable(false);
    modal.setTitle(title);
    modal.setCookieName(PageBase.class.getSimpleName() + ((int) (Math.random() * 100)));

    modal.setInitialWidth(width);
    modal.setWidthUnit("px");
    modal.setInitialHeight(height);
    modal.setHeightUnit("px");

    modal.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {

        @Override
        public boolean onCloseButtonClicked(AjaxRequestTarget target) {
            return true;
        }
    });

    modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        @Override
        public void onClose(AjaxRequestTarget target) {
            modal.close(target);
        }
    });

    modal.add(new AbstractDefaultAjaxBehavior() {

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            response.render(OnDomReadyHeaderItem.forScript("Wicket.Window.unloadConfirmation = false;"));
            response.render(JavaScriptHeaderItem.forScript(
                    "$(document).ready(function() {\n" + "  $(document).bind('keyup', function(evt) {\n"
                            + "    if (evt.keyCode == 27) {\n" + getCallbackScript() + "\n"
                            + "        evt.preventDefault();\n" + "    }\n" + "  });\n" + "});",
                    id));
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            modal.close(target);
        }
    });

    return modal;
}

From source file:com.evolveum.midpoint.web.component.util.SimplePanel.java

License:Apache License

protected ModalWindow createModalWindow(final String id, IModel<String> title, int width, int height) {
    final ModalWindow modal = new ModalWindow(id);
    add(modal);//from  w  w  w  . j a va 2 s  .c o m

    modal.setResizable(false);
    modal.setTitle(title);
    modal.setCookieName(PageBase.class.getSimpleName() + ((int) (Math.random() * 100)));

    modal.setInitialWidth(width);
    modal.setWidthUnit("px");
    modal.setInitialHeight(height);
    modal.setHeightUnit("px");

    modal.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {

        @Override
        public boolean onCloseButtonClicked(AjaxRequestTarget target) {
            return true;
        }
    });

    modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        @Override
        public void onClose(AjaxRequestTarget target) {
            modal.close(target);
        }
    });

    modal.add(new AbstractDefaultAjaxBehavior() {

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            response.render(OnDomReadyHeaderItem.forScript("Wicket.Window.unloadConfirmation = false;"));
            response.render(JavaScriptHeaderItem.forScript(
                    "$(document).ready(function() {\n" + "  $(document).bind('keyup', function(evt) {\n"
                            + "    if (evt.keyCode == 27) {\n" + getCallbackScript() + "\n"
                            + "        evt.preventDefault();\n" + "    }\n" + "  });\n" + "});",
                    id));
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            modal.close(target);

        }
    });

    return modal;
}

From source file:com.evolveum.midpoint.web.page.admin.configuration.component.ObjectSelectionPage.java

License:Apache License

public static <T extends ObjectType> void prepareDialog(ModalWindow dialog,
        ObjectSelectionPanel.Context context, final Component callingComponent, String titleResourceKey,
        final String idToRefresh) {
    dialog.setPageCreator(new ObjectSelectionPage.PageCreator(dialog, context));
    dialog.setInitialWidth(800);/*  w ww.  ja va  2s  . c  om*/
    dialog.setInitialHeight(500);
    dialog.setTitle(PageBase.createStringResourceStatic(callingComponent, titleResourceKey));
    dialog.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        // We are not able to refresh targets residing in the parent page
        // from inside the modal window -> so we have to do it in this
        // context, when the modal window is being closed.
        public void onClose(AjaxRequestTarget target) {
            target.add(callingComponent.get(idToRefresh));
        }
    });
    dialog.showUnloadConfirmation(false);
    dialog.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
    dialog.setCookieName(ObjectSelectionPanel.class.getSimpleName() + ((int) (Math.random() * 100)));
    dialog.setWidthUnit("px");
}

From source file:com.evolveum.midpoint.web.page.PageTemplate.java

License:Apache License

protected ModalWindow createModalWindow(final String id, IModel<String> title, int width, int height) {
    final ModalWindow modal = new ModalWindow(id);
    add(modal);/*from ww w .java  2 s.c o m*/

    modal.setResizable(false);
    modal.setTitle(title);
    modal.setCookieName(PageTemplate.class.getSimpleName() + ((int) (Math.random() * 100)));

    modal.setInitialWidth(width);
    modal.setWidthUnit("px");
    modal.setInitialHeight(height);
    modal.setHeightUnit("px");

    modal.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {

        @Override
        public boolean onCloseButtonClicked(AjaxRequestTarget target) {
            return true;
        }
    });

    modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        @Override
        public void onClose(AjaxRequestTarget target) {
            modal.close(target);
        }
    });

    modal.add(new AbstractDefaultAjaxBehavior() {

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            response.render(OnDomReadyHeaderItem.forScript("Wicket.Window.unloadConfirmation = false;"));
            response.render(JavaScriptHeaderItem.forScript(
                    "$(document).ready(function() {\n" + "  $(document).bind('keyup', function(evt) {\n"
                            + "    if (evt.keyCode == 27) {\n" + getCallbackScript() + "\n"
                            + "        evt.preventDefault();\n" + "    }\n" + "  });\n" + "});",
                    id));
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            modal.close(target);
        }
    });

    return modal;
}

From source file:com.socialsite.course.NewCoursePanel.java

License:Open Source License

public NewCoursePanel(String id) {
    super(id);/*from www. j  a va2 s .c  o  m*/
    final ModalWindow courseModal;
    add(courseModal = new ModalWindow("coursemodal"));

    courseModal.setContent(new NewCourseModal(courseModal.getContentId()));
    courseModal.setTitle("Create new Course");
    courseModal.setCookieName("coursemodal");

    courseModal.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public boolean onCloseButtonClicked(AjaxRequestTarget target) {
            return true;
        }
    });

    courseModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public void onClose(AjaxRequestTarget target) {

        }
    });

    add(new AjaxLink<Void>("newcourse") {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            courseModal.show(target);
        }
    });
}

From source file:com.socialsite.image.ImagePanel.java

License:Open Source License

/**
 * /*from   w  ww  . j  av a2  s .c o  m*/
 * @param component
 *            component id
 * @param id
 *            id used to fetch the image
 * @param imageType
 *            type of the image (userimage , courseimage etc)
 * @param thumb
 *            will show thumb image if true
 * @param lastModified
 *            lastmodified date of the image
 */
public ImagePanel(final String component, final long id, final ImageType imageType, final Date lastModified,
        final boolean thumb, final boolean changeLink) {
    super(component);

    this.changeLink = changeLink;

    // allow the modal window to update the panel
    setOutputMarkupId(true);
    final ResourceReference imageResource = new ResourceReference(imageType.name());
    final Image userImage;
    final ValueMap valueMap = new ValueMap();
    valueMap.add("id", id + "");

    // the version is used to change the url dynamically if the image is
    // changed. This will allow the browser to cache images
    // reference http://code.google.com/speed/page-speed/docs/caching.html
    // #Use fingerprinting to dynamically enable caching.
    valueMap.add("version", lastModified.getTime() + "");
    if (thumb) {
        valueMap.add("thumb", "true");
    }
    add(userImage = new Image("userimage", imageResource, valueMap));
    userImage.setOutputMarkupId(true);

    final ModalWindow modal;
    add(modal = new ModalWindow("modal"));

    modal.setContent(new UploadPanel(modal.getContentId()) {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        public String onFileUploaded(final FileUpload upload) {

            if (upload == null || upload.getSize() == 0) {
                // No image was provided
                error("Please upload an image.");
            } else if (!checkContentType(upload.getContentType())) {
                error("Only images of types png, jpg, and gif are allowed.");
            } else {
                saveImage(upload.getBytes());
            }

            return null;
        }

        @Override
        public void onUploadFinished(final AjaxRequestTarget target, final String filename,
                final String newFileUrl) {

            final ResourceReference imageResource = new ResourceReference(imageType.name());

            final ValueMap valueMap = new ValueMap();
            valueMap.add("id", id + "");
            // change the image lively
            valueMap.add("version", new Date().getTime() + "");
            if (thumb) {
                valueMap.add("thumb", "true");
            }

            userImage.setImageResourceReference(imageResource, valueMap);
            // update the image after the user changes it
            target.addComponent(userImage);
        }
    });
    modal.setTitle(" Select the image ");
    modal.setCookieName("modal");

    modal.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public boolean onCloseButtonClicked(final AjaxRequestTarget target) {
            return true;
        }
    });

    modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public void onClose(final AjaxRequestTarget target) {
        }
    });

    add(new AjaxLink<Void>("changeimage") {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            if (changeLink) {
                // TODO allow admins to change the university image and
                // allow
                // staffs to change the course image
                // it. don't show it for thumb images
                return hasRole(SocialSiteRoles.OWNER) || hasRole(SocialSiteRoles.STAFF);
            }
            return false;

        }

        @Override
        public void onClick(final AjaxRequestTarget target) {
            modal.show(target);
        }
    });
}

From source file:com.userweave.pages.configuration.project.projectbrowser.MyProjectListViewPanel.java

License:Open Source License

/**
 * Create a dialog to create a new project.
 * //from   w  w  w  .  j  a  v  a 2s  . c o m
 * @return
 *       A CustomModalWindow
 */
private ModalWindow createNewProjectModalWindow(final Project parentProject, final EventHandler callback) {
    final ModalWindow projectModalWindow = new CustomModalWindow("createNewProjectModalWindow");

    projectModalWindow.setTitle(new StringResourceModel("newProject", MyProjectListViewPanel.this, null));

    projectModalWindow.setPageCreator(new ModalWindow.PageCreator() {
        private static final long serialVersionUID = 1L;

        @Override
        public Page createPage() {
            return new EditProjectPage(projectModalWindow) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onFinish(AjaxRequestTarget target, String projectName) {
                    Project project = projectService.createPreConfiguredProject(projectName);

                    /**
                     * @see #933. User can add subproject, so there must be
                     * getUser(project) called
                     */
                    projectDao.finalizeProject(project, UserWeaveSession.get().getUser());

                    UserWeaveSession.get().setCreatedEntityId(project.getId());
                }

            };
        }
    });

    projectModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClose(AjaxRequestTarget target) {
            Integer projectId = UserWeaveSession.get().getCreatedEntityId();

            if (projectId != null) {
                EntityEvent.Selected(target, projectDao.findById(projectId)).fire(callback);

                projectId = null;
            }
        }
    });

    return projectModalWindow;
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.forms.wizard.AddExperimentScenarioForm.java

License:Apache License

private void addModalWindowAndButton(MarkupContainer container, final String cookieName,
        final String buttonName, final String targetClass, final ModalWindow window) {

    window.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

        private static final long serialVersionUID = 1L;

        @Override/*from  w  ww  . j  ava  2  s . c o  m*/
        public void onClose(AjaxRequestTarget target) {
            ChoiceRenderer<Person> renderer = new ChoiceRenderer<Person>("fullName", "personId");
            List<Person> choices = personFacade.getAllRecords();
            Collections.sort(choices);
            coexperimenters.setChoiceRenderer(renderer);
            coexperimenters.setChoices(choices);

            ChoiceRenderer<ResearchGroup> groupRenderer = new ChoiceRenderer<ResearchGroup>("title",
                    "researchGroupId");
            List<ResearchGroup> groupChoices = researchGroupFacade
                    .getResearchGroupsWhereAbleToWriteInto(EEGDataBaseSession.get().getLoggedUser());
            researchGroupChoice.setChoiceRenderer(groupRenderer);
            researchGroupChoice.setChoices(groupChoices);

            licenses.clear();
            licenses.addAll(model.getObject().getExperimentLicences());
            licenses.addAll(EEGDataBaseSession.get().getCreateExperimentLicenseMap().values());

            target.add(AddExperimentScenarioForm.this);
        }

    });

    AjaxButton ajaxButton = new AjaxButton(buttonName) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            window.setCookieName(cookieName);
            window.setPageCreator(new ModalWindow.PageCreator() {

                private static final long serialVersionUID = 1L;

                @Override
                @SuppressWarnings("serial")
                public Page createPage() {
                    try {
                        Constructor<?> cons = null;
                        if (targetClass.equals(AddLicensePage.class.getName())) {
                            p = new AddLicensePage(getPage().getPageReference(), window, model) {
                                @Override
                                protected void onSubmitAction(IModel<ExperimentLicence> experimentLicenseModel,
                                        Integer licenseId, AjaxRequestTarget target, Form<?> form) {
                                    ExperimentLicence experimentLicense = experimentLicenseModel.getObject();
                                    EEGDataBaseSession.get().addLicenseToCreateLicenseMap(licenseId,
                                            experimentLicense);
                                    ModalWindow.closeCurrent(target);
                                }
                            };
                            return (Page) p;
                        } else {
                            cons = Class.forName(targetClass).getConstructor(PageReference.class,
                                    ModalWindow.class);
                            return (Page) cons.newInstance(getPage().getPageReference(), window);
                        }
                    } catch (NoSuchMethodException e) {
                        log.error(e.getMessage(), e);
                    } catch (IllegalAccessException e) {
                        log.error(e.getMessage(), e);
                    } catch (InstantiationException e) {
                        log.error(e.getMessage(), e);
                    } catch (InvocationTargetException e) {
                        log.error(e.getMessage(), e);
                    } catch (ClassNotFoundException e) {
                        log.error(e.getMessage(), e);
                    }
                    return null;
                }
            });
            window.show(target);
        }
    };

    ajaxButton.setDefaultFormProcessing(false);
    container.add(ajaxButton);
}

From source file:de.jetwick.ui.UserPanel.java

License:Apache License

public UserPanel(String id, final TweetSearchPage tweetSearchRef) {
    super(id);/*from w ww.j  a v a 2 s .  c o  m*/

    ExternalLink profileImageLink = new ExternalLink("profileImageLink",
            new PropertyModel(this, "profileLink"));
    profileImageLink.add(new ContextImage("profileImage", new PropertyModel(this, "imageUrl")));
    profileImageLink.add(new AttributeAppender("title", new PropertyModel(this, "title"), " "));
    add(profileImageLink);

    add(new WebMarkupContainer("gojetslideLink") {

        @Override
        public boolean isVisible() {
            return !tweetSearchRef.getMySession().hasLoggedIn();
        }
    });
    Link loginLink = new Link("loginLink") {

        @Override
        public void onClick() {
            setResponsePage(Login.class);
        }
    };
    add(loginLink);

    if (!tweetSearchRef.getMySession().hasLoggedIn()) {
        add(new WebMarkupContainer("loginContainer").setVisible(false));
        add(new AttributeModifier("class", "logged-in", new Model("logged-out")));
        return;
    }

    title = tweetSearchRef.getMySession().getUser().getScreenName();
    imageUrl = tweetSearchRef.getMySession().getUser().getProfileImageUrl();
    profileLink = Helper.TURL + "/" + title;
    loginLink.setVisible(false);
    WebMarkupContainer container = new WebMarkupContainer("loginContainer") {

        {
            final JUser user = tweetSearchRef.getMySession().getUser();
            String name = user.getRealName();
            if (name == null)
                name = user.getScreenName();
            add(new Label("loginText", "Hi " + name + "!"));
            add(new Link("logout") {

                @Override
                public void onClick() {
                    onLogout();
                }
            });

            add(new AjaxFallbackLink("showHomeline") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    onHomeline(target, user.getScreenName());
                }
            });

            add(new AjaxFallbackLink("showTweets") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    onShowTweets(target, user.getScreenName());
                }
            });

            final ModalWindow modalW = new ModalWindow("userModal");
            add(modalW);
            add(new AjaxLink("grabTweets") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    modalW.show(target);
                }
            });
            modalW.setTitle("Specify the user and the number of tweets you want to grab");

            final GrabTweetsDialog dialog = new GrabTweetsDialog(modalW.getContentId(), user.getScreenName()) {

                @Override
                public TwitterSearch getTwitterSearch() {
                    return tweetSearchRef.getTwitterSearch();
                }

                @Override
                public void updateAfterAjax(AjaxRequestTarget target) {
                    UserPanel.this.updateAfterAjax(target);
                }

                @Override
                public void onClose(AjaxRequestTarget target) {
                    modalW.close(target);
                }

                @Override
                protected Collection<String> getUserChoices(String input) {
                    return UserPanel.this.getUserChoices(input);
                }
            };

            modalW.setContent(dialog);
            modalW.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() {

                @Override
                public boolean onCloseButtonClicked(AjaxRequestTarget target) {
                    logger.info("cancel grabber archiving thread!");
                    dialog.interruptGrabber();
                    modalW.close(target);
                    return true;
                }
            });
            modalW.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

                @Override
                public void onClose(AjaxRequestTarget target) {
                    logger.info("closed dialog");
                }
            });
            modalW.setCookieName("user-modal");
        }
    };
    add(container);
}