Example usage for org.apache.wicket.markup.repeater.data DataView DataView

List of usage examples for org.apache.wicket.markup.repeater.data DataView DataView

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater.data DataView DataView.

Prototype

protected DataView(String id, IDataProvider<T> dataProvider) 

Source Link

Usage

From source file:org.sakaiproject.profile2.tool.pages.panels.MyWallPanel.java

License:Educational Community License

private void renderWallPanel(final String userUuid) {

    setOutputMarkupId(true);/*ww  w .j  ava  2s  .  c o  m*/

    // container which wraps list
    final WebMarkupContainer wallItemsContainer = new WebMarkupContainer("wallItemsContainer");

    wallItemsContainer.setOutputMarkupId(true);
    add(wallItemsContainer);

    WallItem wallItem = new WallItem();
    wallItem.setUserUuid(userUuid);
    // always post to my wall as current user, to ensure super users cannot
    // make posts as other users
    wallItem.setCreatorUuid(sakaiProxy.getCurrentUserId());
    wallItem.setType(ProfileConstants.WALL_ITEM_TYPE_POST);

    // form for posting to my wall
    Form<WallItem> form = new Form<WallItem>("myWallPostForm", new Model<WallItem>(wallItem));
    form.setOutputMarkupId(true);
    add(form);

    // form submit feedback
    final Label formFeedback = new Label("formFeedback");
    formFeedback.setOutputMarkupPlaceholderTag(true);
    form.add(formFeedback);

    final FeedbackPanel feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);

    int[] filteredErrorLevels = new int[] { FeedbackMessage.ERROR };
    feedback.setFilter(new ErrorLevelsFeedbackMessageFilter(filteredErrorLevels));

    // container for posting to my wall
    WebMarkupContainer myWallPostContainer = new WebMarkupContainer("myWallPostContainer");
    final TextArea myWallPost = new TextArea("myWallPost", new PropertyModel<String>(wallItem, "text"));
    myWallPost.setMarkupId("wallpostinput");
    myWallPost.setOutputMarkupId(true);

    myWallPostContainer.add(myWallPost);

    form.add(myWallPostContainer);

    IndicatingAjaxButton submitButton = new IndicatingAjaxButton("myWallPostSubmit", form) {
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        protected void onSubmit(AjaxRequestTarget target, Form form) {

            if (myWallPost.getValue().equals("")) {
                formFeedback.setDefaultModel(new ResourceModel("error.wall.post.empty"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
                return;
            }

            if (false == save(form, userUuid)) {
                formFeedback.setDefaultModel(new ResourceModel("error.wall.post.failed"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
            } else {

                replaceSelf(target, userUuid);
            }
        }

        //@Override
        //protected IAjaxCallDecorator getAjaxCallDecorator() {
        //   return CKEditorTextArea.getAjaxCallDecoratedToUpdateElementForAllEditorsOnPage();
        //}
    };
    submitButton.setModel(new ResourceModel("button.wall.post"));
    myWallPostContainer.add(submitButton);

    WallItemDataProvider provider = new WallItemDataProvider(userUuid);

    // if no wall items, display a message
    if (0 == provider.size()) {
        add(new Label("wallInformationMessage", new ResourceModel("text.wall.no.items")));
    } else {
        // blank label when there are items to display
        add(new Label("wallInformationMessage"));
    }

    final DataView<WallItem> wallItemsDataView = new DataView<WallItem>("wallItems", provider) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<WallItem> item) {

            WallItem wallItem = (WallItem) item.getDefaultModelObject();

            // pass reference to MyWallPanel for updating when posts are removed
            item.add(new WallItemPanel("wallItemPanel", userUuid, wallItem, MyWallPanel.this));
        }
    };

    wallItemsDataView.setOutputMarkupId(true);

    if (provider.size() <= ProfileConstants.MAX_WALL_ITEMS_PER_PAGE) {
        wallItemsContainer.add(new AjaxPagingNavigator("navigator", wallItemsDataView).setVisible(false));
    } else {
        wallItemsContainer.add(new AjaxPagingNavigator("navigator", wallItemsDataView));
    }

    wallItemsDataView.setItemsPerPage(ProfileConstants.MAX_WALL_ITEMS_PER_PAGE);

    wallItemsContainer.add(wallItemsDataView);
}

From source file:org.sakaiproject.profile2.tool.pages.panels.RequestedFriends.java

License:Educational Community License

public RequestedFriends(final String id, final String userUuid) {
    super(id);//from  w ww  . j  a  v  a 2 s  .  c  o m

    log.debug("RequestedFriends()");

    final String currentUserUuid = sakaiProxy.getCurrentUserId();

    //setup model to store the actions in the modal windows
    final FriendAction friendActionModel = new FriendAction();

    //get our list of friend requests as an IDataProvider
    RequestedFriendsDataProvider provider = new RequestedFriendsDataProvider(userUuid);

    //init number of requests
    numRequestedFriends = (int) provider.size();

    //model so we can update the number of requests
    IModel<Integer> numRequestedFriendsModel = new Model<Integer>() {
        private static final long serialVersionUID = 1L;

        public Integer getObject() {
            return numRequestedFriends;
        }
    };

    //heading
    final WebMarkupContainer requestedFriendsHeading = new WebMarkupContainer("requestedFriendsHeading");
    requestedFriendsHeading
            .add(new Label("requestedFriendsLabel", new ResourceModel("heading.friend.requests")));
    requestedFriendsHeading.add(new Label("requestedFriendsNumber", numRequestedFriendsModel));
    requestedFriendsHeading.setOutputMarkupId(true);
    add(requestedFriendsHeading);

    //container which wraps list
    final WebMarkupContainer requestedFriendsContainer = new WebMarkupContainer("requestedFriendsContainer");
    requestedFriendsContainer.setOutputMarkupId(true);

    //connection window
    final ModalWindow connectionWindow = new ModalWindow("connectionWindow");

    //search results
    DataView<Person> requestedFriendsDataView = new DataView<Person>("connections", provider) {
        private static final long serialVersionUID = 1L;

        protected void populateItem(final Item<Person> item) {

            Person person = (Person) item.getDefaultModelObject();
            final String personUuid = person.getUuid();

            //get name
            String displayName = person.getDisplayName();

            //get other objects
            ProfilePrivacy privacy = person.getPrivacy();
            ProfilePreferences prefs = person.getPreferences();

            //image wrapper, links to profile
            Link<String> friendItem = new Link<String>("connectionPhotoWrap", new Model<String>(personUuid)) {
                private static final long serialVersionUID = 1L;

                public void onClick() {
                    setResponsePage(new ViewProfile(getModelObject()));
                }
            };

            //image
            ProfileImage connectionPhoto = new ProfileImage("connectionPhoto", new Model<String>(personUuid));
            connectionPhoto.setSize(ProfileConstants.PROFILE_IMAGE_THUMBNAIL);
            friendItem.add(connectionPhoto);

            item.add(friendItem);

            //name and link to profile
            Link<String> profileLink = new Link<String>("connectionLink", new Model<String>(personUuid)) {
                private static final long serialVersionUID = 1L;

                public void onClick() {
                    setResponsePage(new ViewProfile(getModelObject()));
                }
            };
            profileLink.add(new Label("connectionName", displayName));
            item.add(profileLink);

            //status component
            ProfileStatusRenderer status = new ProfileStatusRenderer("connectionStatus", person,
                    "connection-status-msg", "connection-status-date");
            status.setOutputMarkupId(true);
            item.add(status);

            //CONFIRM FRIEND LINK AND WINDOW

            WebMarkupContainer c1 = new WebMarkupContainer("confirmConnectionContainer");
            c1.setOutputMarkupId(true);

            final AjaxLink<String> confirmConnectionLink = new AjaxLink<String>("confirmConnectionLink",
                    new Model<String>(personUuid)) {
                private static final long serialVersionUID = 1L;

                public void onClick(AjaxRequestTarget target) {

                    //get this item, and set content for modalwindow
                    String personUuid = getModelObject();
                    connectionWindow.setContent(new ConfirmFriend(connectionWindow.getContentId(),
                            connectionWindow, friendActionModel, userUuid, personUuid));

                    //modalwindow handler 
                    connectionWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
                        private static final long serialVersionUID = 1L;

                        public void onClose(AjaxRequestTarget target) {
                            if (friendActionModel.isConfirmed()) {

                                //decrement number of requests
                                numRequestedFriends--;

                                //remove friend item from display
                                target.appendJavaScript("$('#" + item.getMarkupId() + "').slideUp();");

                                //update label
                                target.add(requestedFriendsHeading);

                                //get parent panel and repaint ConfirmedFriends panel via helper method in MyFriends 
                                findParent(MyFriends.class).updateConfirmedFriends(target, userUuid);

                                //if none left, hide everything
                                if (numRequestedFriends == 0) {
                                    target.appendJavaScript(
                                            "$('#" + requestedFriendsHeading.getMarkupId() + "').fadeOut();");
                                    target.appendJavaScript(
                                            "$('#" + requestedFriendsContainer.getMarkupId() + "').fadeOut();");
                                }
                            }
                        }
                    });

                    connectionWindow.show(target);
                    target.appendJavaScript("fixWindowVertical();");
                }
            };
            //ContextImage confirmConnectionIcon = new ContextImage("confirmConnectionIcon",new Model<String>(ProfileConstants.ACCEPT_IMG));
            //confirmConnectionLink.add(confirmConnectionIcon);
            confirmConnectionLink
                    .add(new AttributeModifier("title", true, new ResourceModel("link.title.confirmfriend")));
            confirmConnectionLink.add(new AttributeModifier("alt", true, new StringResourceModel(
                    "accessibility.connection.confirm", null, new Object[] { displayName })));
            confirmConnectionLink
                    .add(new Label("confirmConnectionLabel", new ResourceModel("link.friend.confirm"))
                            .setOutputMarkupId(true));
            c1.add(confirmConnectionLink);
            item.add(c1);

            //IGNORE FRIEND LINK AND WINDOW

            WebMarkupContainer c2 = new WebMarkupContainer("ignoreConnectionContainer");
            c2.setOutputMarkupId(true);

            final AjaxLink<String> ignoreConnectionLink = new AjaxLink<String>("ignoreConnectionLink",
                    new Model<String>(personUuid)) {
                private static final long serialVersionUID = 1L;

                public void onClick(AjaxRequestTarget target) {

                    //get this item, and set content for modalwindow
                    String personUuid = getModelObject();
                    connectionWindow.setContent(new IgnoreFriend(connectionWindow.getContentId(),
                            connectionWindow, friendActionModel, userUuid, personUuid));

                    //modalwindow handler 
                    connectionWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
                        private static final long serialVersionUID = 1L;

                        public void onClose(AjaxRequestTarget target) {
                            if (friendActionModel.isIgnored()) {

                                //decrement number of requests
                                numRequestedFriends--;

                                //remove friend item from display
                                target.appendJavaScript("$('#" + item.getMarkupId() + "').slideUp();");

                                //update label
                                target.add(requestedFriendsHeading);

                                //if none left, hide everything
                                if (numRequestedFriends == 0) {
                                    target.appendJavaScript(
                                            "$('#" + requestedFriendsHeading.getMarkupId() + "').fadeOut();");
                                    target.appendJavaScript(
                                            "$('#" + requestedFriendsContainer.getMarkupId() + "').fadeOut();");
                                }
                            }
                        }
                    });

                    connectionWindow.show(target);
                    target.appendJavaScript("fixWindowVertical();");
                }
            };
            //ContextImage ignoreConnectionIcon = new ContextImage("ignoreConnectionIcon",new Model<String>(ProfileConstants.CANCEL_IMG));
            //ignoreConnectionLink.add(ignoreConnectionIcon);
            ignoreConnectionLink
                    .add(new AttributeModifier("title", true, new ResourceModel("link.title.ignorefriend")));
            ignoreConnectionLink.add(new AttributeModifier("alt", true, new StringResourceModel(
                    "accessibility.connection.ignore", null, new Object[] { displayName })));
            ignoreConnectionLink.add(new Label("ignoreConnectionLabel", new ResourceModel("link.friend.ignore"))
                    .setOutputMarkupId(true));
            c2.add(ignoreConnectionLink);
            item.add(c2);

            WebMarkupContainer c3 = new WebMarkupContainer("viewFriendsContainer");
            c3.setOutputMarkupId(true);

            final AjaxLink<String> viewFriendsLink = new AjaxLink<String>("viewFriendsLink") {
                private static final long serialVersionUID = 1L;

                public void onClick(AjaxRequestTarget target) {
                    // always ViewFriends because a user isn't connected to himself
                    setResponsePage(new ViewFriends(personUuid));
                }
            };
            final Label viewFriendsLabel = new Label("viewFriendsLabel",
                    new ResourceModel("link.view.friends"));
            viewFriendsLink.add(viewFriendsLabel);

            //hide if not allowed
            if (!privacyLogic.isActionAllowed(userUuid, currentUserUuid,
                    PrivacyType.PRIVACY_OPTION_MYFRIENDS)) {
                viewFriendsLink.setEnabled(false);
                c3.setVisible(false);
            }
            viewFriendsLink.setOutputMarkupId(true);
            c3.add(viewFriendsLink);
            item.add(c3);

            WebMarkupContainer c4 = new WebMarkupContainer("emailContainer");
            c4.setOutputMarkupId(true);

            ExternalLink emailLink = new ExternalLink("emailLink", "mailto:" + person.getProfile().getEmail(),
                    new ResourceModel("profile.email").getObject());

            c4.add(emailLink);

            // friend=false
            if (StringUtils.isBlank(person.getProfile().getEmail())
                    || false == privacyLogic.isActionAllowed(person.getUuid(), currentUserUuid,
                            PrivacyType.PRIVACY_OPTION_CONTACTINFO)) {

                c4.setVisible(false);
            }
            item.add(c4);

            WebMarkupContainer c5 = new WebMarkupContainer("websiteContainer");
            c5.setOutputMarkupId(true);

            // TODO home page, university profile URL or academic/research URL (see PRFL-35)
            ExternalLink websiteLink = new ExternalLink("websiteLink", person.getProfile().getHomepage(),
                    new ResourceModel("profile.homepage").getObject()).setPopupSettings(new PopupSettings());

            c5.add(websiteLink);

            // friend=false
            if (StringUtils.isBlank(person.getProfile().getHomepage())
                    || false == privacyLogic.isActionAllowed(person.getUuid(), currentUserUuid,
                            PrivacyType.PRIVACY_OPTION_CONTACTINFO)) {

                c5.setVisible(false);
            }
            item.add(c5);

            // not a friend yet, so friend=false
            if (true == privacyLogic.isActionAllowed(person.getUuid(), sakaiProxy.getCurrentUserId(),
                    PrivacyType.PRIVACY_OPTION_BASICINFO)) {

                item.add(new Label("connectionSummary", StringUtils
                        .abbreviate(ProfileUtils.stripHtml(person.getProfile().getPersonalSummary()), 200)));
            } else {
                item.add(new Label("connectionSummary", ""));
            }

            item.setOutputMarkupId(true);
        }

    };
    requestedFriendsDataView.setOutputMarkupId(true);
    requestedFriendsContainer.add(requestedFriendsDataView);

    //add results container
    add(requestedFriendsContainer);

    //add window
    add(connectionWindow);

    //initially, if no requests, hide everything
    if (numRequestedFriends == 0) {
        this.setVisible(false);
    }

}

From source file:org.sakaiproject.profile2.tool.pages.panels.ViewWallPanel.java

License:Educational Community License

public ViewWallPanel(String panelId, final String userUuid) {

    super(panelId);

    setOutputMarkupId(true);//w w w .ja v  a2s .c  om

    final String currentUserId = sakaiProxy.getCurrentUserId();

    // container which wraps list
    final WebMarkupContainer wallItemsContainer = new WebMarkupContainer("wallItemsContainer");

    wallItemsContainer.setOutputMarkupId(true);
    add(wallItemsContainer);

    WallItem wallItem = new WallItem();
    wallItem.setUserUuid(userUuid);
    // always post to my wall as current user, to ensure super users cannot
    // make posts as other users
    wallItem.setCreatorUuid(sakaiProxy.getCurrentUserId());
    wallItem.setType(ProfileConstants.WALL_ITEM_TYPE_POST);

    // form for posting to my wall
    Form<WallItem> form = new Form<WallItem>("viewWallPostForm", new Model<WallItem>(wallItem));
    form.setOutputMarkupId(true);
    add(form);

    if (false == privacyLogic.isActionAllowed(userUuid, sakaiProxy.getCurrentUserId(),
            PrivacyType.PRIVACY_OPTION_MYWALL)) {
        form.setEnabled(false);
        form.setVisible(false);
    }

    // form submit feedback
    final Label formFeedback = new Label("formFeedback");
    formFeedback.setOutputMarkupPlaceholderTag(true);
    form.add(formFeedback);

    final FeedbackPanel feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);

    int[] filteredErrorLevels = new int[] { FeedbackMessage.ERROR };
    feedback.setFilter(new ErrorLevelsFeedbackMessageFilter(filteredErrorLevels));

    // container for posting to my wall
    WebMarkupContainer viewWallPostContainer = new WebMarkupContainer("viewWallPostContainer");
    final TextArea myWallPost = new TextArea("viewWallPost", new PropertyModel<String>(wallItem, "text"));

    viewWallPostContainer.add(myWallPost);

    form.add(viewWallPostContainer);

    IndicatingAjaxButton submitButton = new IndicatingAjaxButton("viewWallPostSubmit", form) {
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        protected void onSubmit(AjaxRequestTarget target, Form form) {

            if (myWallPost.getValue().equals("")) {
                formFeedback.setDefaultModel(new ResourceModel("error.wall.post.empty"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
                return;
            }

            if (false == save(form, userUuid)) {
                formFeedback.setDefaultModel(new ResourceModel("error.wall.post.failed"));
                formFeedback.add(new AttributeModifier("class", true, new Model<String>("alertMessage")));
                target.add(formFeedback);
            } else {
                ViewWallPanel newPanel = new ViewWallPanel(ViewWallPanel.this.getId(), userUuid);
                newPanel.setOutputMarkupId(true);
                ViewWallPanel.this.replaceWith(newPanel);
                if (null != target) {
                    target.add(newPanel);
                    target.appendJavaScript("setMainFrameHeight(window.name);");
                }
            }
        }

        //@Override
        //protected IAjaxCallDecorator getAjaxCallDecorator() {
        //   return CKEditorTextArea.getAjaxCallDecoratedToUpdateElementForAllEditorsOnPage();
        //}
    };
    submitButton.setModel(new ResourceModel("button.wall.post"));
    viewWallPostContainer.add(submitButton);

    // note: privacy check is handled by the logic component
    WallItemDataProvider provider = new WallItemDataProvider(userUuid);

    // if no wall items, display a message
    if (0 == provider.size()) {
        if (privacyLogic.isActionAllowed(userUuid, currentUserId, PrivacyType.PRIVACY_OPTION_MYWALL)) {

            // this user has no items on their wall
            add(new Label("wallInformationMessage",
                    new StringResourceModel("text.view.wall.nothing", null,
                            new Object[] { sakaiProxy.getUserDisplayName(userUuid) }))
                                    .setEscapeModelStrings(false));
        } else {
            // wall privacy is set to connections
            add(new Label("wallInformationMessage",
                    new StringResourceModel("text.view.wall.restricted", null,
                            new Object[] { sakaiProxy.getUserDisplayName(userUuid) }))
                                    .setEscapeModelStrings(false));
        }
    } else {
        // blank label when there are items to display
        add(new Label("wallInformationMessage"));
    }

    DataView<WallItem> wallItemsDataView = new DataView<WallItem>("wallItems", provider) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<WallItem> item) {

            WallItem wallItem = (WallItem) item.getDefaultModelObject();
            item.add(new WallItemPanel("wallItemPanel", userUuid, wallItem));

            if (ProfileConstants.WALL_ITEM_TYPE_STATUS == wallItem.getType()) {
                // only show if a super user or non-super user is permitted
                if (!sakaiProxy.isSuperUser() && !privacyLogic.isActionAllowed(wallItem.getCreatorUuid(),
                        currentUserId, PrivacyType.PRIVACY_OPTION_MYSTATUS)) {

                    item.setVisible(false);
                }
            }
        }
    };

    wallItemsDataView.setOutputMarkupId(true);

    if (provider.size() <= ProfileConstants.MAX_WALL_ITEMS_PER_PAGE) {
        wallItemsContainer.add(new AjaxPagingNavigator("navigator", wallItemsDataView).setVisible(false));
    } else {
        wallItemsContainer.add(new AjaxPagingNavigator("navigator", wallItemsDataView));
    }

    wallItemsDataView.setItemsPerPage(ProfileConstants.MAX_WALL_ITEMS_PER_PAGE);

    wallItemsContainer.add(wallItemsDataView);
}

From source file:org.sakaiproject.sitestats.tool.wicket.pages.ReportsPage.java

License:Educational Community License

private void renderBody() {
    boolean isSiteStatsAdminPage = Locator.getFacade().getStatsAuthz().isSiteStatsAdminPage();
    boolean isAdministering = isSiteStatsAdminPage && realSiteId.equals(siteId);
    boolean isFilteringReportsWithToolsInSite = !isAdministering;

    // menu/*from w  w w.ja  v a  2 s  .co  m*/
    add(new Menus("menu", siteId));

    // model
    setDefaultModel(new CompoundPropertyModel(this));

    add(new Label("pageTitle"));

    // last job run
    add(new LastJobRun("lastJobRun", siteId));

    // form
    Form form = new Form("reportsForm");
    add(form);

    // feedback panel (messages)
    form.add(new CSSFeedbackPanel("messages"));

    // my reports
    WebMarkupContainer myReportsContainer = new WebMarkupContainer("myReportsContainer");
    // new report link
    Link lnkNewReport = new Link("lnkNewReport") {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            PageParameters pageParameters = new PageParameters().set("siteId", siteId).set("predefined",
                    "false");
            setResponsePage(new ReportsEditPage(null, pageParameters, ReportsPage.this));
        }
    };
    myReportsContainer.add(lnkNewReport);
    // table
    final WebMarkupContainer noReports = new WebMarkupContainer("noReports");
    myReportsContainer.add(noReports);
    final ReportDefsProvider myReportsProvider = new ReportDefsProvider(siteId,
            ReportDefsProvider.MODE_MYREPORTS, true, false);
    DataView myReports = new DataView("myReports", myReportsProvider) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item item) {
            final ReportDefModel model = (ReportDefModel) item.getModel();
            item.add(new ReportRowFragment("reportRow", model, ReportDefsProvider.MODE_MYREPORTS));
            if (((ReportDef) model.getObject()).isHidden()) {
                item.add(new AttributeModifier("class", new Model("hiddenReport")));
            }
        }

        @Override
        protected void onBeforeRender() {
            noReports.setVisible(getRowCount() == 0);
            super.onBeforeRender();
        }
    };
    myReportsContainer.add(myReports);
    form.add(myReportsContainer);

    // predefined reports
    WebMarkupContainer predefinedReportsContainer = new WebMarkupContainer("predefinedReportsContainer");
    final WebMarkupContainer noPredefReports = new WebMarkupContainer("noReports");
    predefinedReportsContainer.add(noPredefReports);
    WebMarkupContainer adminAddContainer = new WebMarkupContainer("adminAddContainer");
    adminAddContainer.setVisible(isAdministering);
    predefinedReportsContainer.add(adminAddContainer);
    // new predefined report link
    Link lnkPDNewReport = new Link("lnkNewReport") {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            PageParameters pageParameters = new PageParameters().set("siteId", siteId).set("predefined",
                    "true");
            setResponsePage(new ReportsEditPage(null, pageParameters, ReportsPage.this));
        }
    };
    adminAddContainer.add(lnkPDNewReport);
    final ReportDefsProvider predefinedReportsProvider = new ReportDefsProvider(siteId,
            ReportDefsProvider.MODE_PREDEFINED_REPORTS, isFilteringReportsWithToolsInSite, isAdministering);
    DataView predefinedReports = new DataView("predefinedReports", predefinedReportsProvider) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item item) {
            final ReportDefModel model = (ReportDefModel) item.getModel();
            item.add(new ReportRowFragment("reportRow", model, ReportDefsProvider.MODE_PREDEFINED_REPORTS));
            if (((ReportDef) model.getObject()).isHidden()) {
                item.add(new AttributeModifier("class", new Model("hiddenReport")));
            }
        }

        @Override
        protected void onBeforeRender() {
            noPredefReports.setVisible(getRowCount() == 0);
            super.onBeforeRender();
        }
    };
    predefinedReportsContainer.add(predefinedReports);
    predefinedReportsContainer.setVisible(isSiteStatsAdminPage || predefinedReportsProvider.size() != 0);
    form.add(predefinedReportsContainer);

}

From source file:org.wicketstuff.objectautocomplete.example.BaseExamplePage.java

License:Apache License

private void initExample() {
    ObjectAutoCompleteBuilder<O, I> builder = new ObjectAutoCompleteBuilder<O, I>(this);
    initBuilder(builder);/* w  ww. ja v a  2 s  . co  m*/

    acField = builder.build("acField", getModel());

    final Form<Void> form = new Form<Void>("form");
    add(form);
    form.add(acField);
    form.add(new Label("acLabel", getAutoCompleteFieldLabel()));

    // Add code sample and list of sample data
    add(new Label("acCodeSample", getCodeSample()));
    add(new Label("acHtmlSample", getHtmlSample()));

    add(new DataView<O>("acData", new ListDataProvider<O>(getAllChoices())) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<O> item) {
            O object = item.getModelObject();
            item.add(new Label("id", PropertyResolver.getValue(getIdProperty(), object).toString()));
            item.add(new Label("name", PropertyResolver.getValue(getNameProperty(), object).toString()));
        }
    });

    WebMarkupContainer wac = new WebMarkupContainer("submitButtonPanel") {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return needsFormButton();
        }
    };
    Button submitButton = new Button("submitButton") {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            System.out.println("Clicked");
            super.onSubmit();
        }
    };
    wac.add(submitButton);
    form.add(wac);
    add(new FeedbackPanel("feedbackPanel"));
}

From source file:org.wicketTutorial.pagedata.HomePage.java

License:Apache License

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

    List<String[]> countries = loadCountriesFromCsv();
    ListDataProvider<String[]> listDataProvider = new ListDataProvider<String[]>(countries);

    DataView<String[]> dataView = new DataView<String[]>("rows", listDataProvider) {

        @Override/*from   w  ww .  j  a v  a 2 s.co m*/
        protected void populateItem(Item<String[]> item) {
            String[] countriesArr = item.getModelObject();
            RepeatingView repeatingView = new RepeatingView("dataRow");

            for (int i = 0; i < countriesArr.length; i++) {
                repeatingView.add(new Label(repeatingView.newChildId(), countriesArr[i]));
            }
            item.add(repeatingView);
        }
    };

    dataView.setItemsPerPage(15);

    add(dataView);
    add(new PagingNavigator("pagingNavigator", dataView));
}

From source file:org.xaloon.wicket.component.classifier.panel.ClassifiersItemPanel.java

License:Apache License

@Override
protected void onInitialize(EmptyPlugin plugin, AbstractPluginBean pluginBean) {
    PageParameters params = getPageRequestParameters();
    if (params.isEmpty()) {
        setVisible(false);//from ww  w  .j  a  va2 s.co m
        setResponsePage(ClassifiersPage.class);
        return;
    }

    final String classifierType = params.get(ClassifiersPanel.PARAM_CLASSIFIER_TYPE).toString();
    String parentClassifierItem = null;
    if (params.get(ClassifierConstants.PARENT_ITEM) != null) {
        parentClassifierItem = params.get(ClassifierConstants.PARENT_ITEM).toString();
    }

    // Add data container
    final DecoratedPagingNavigatorContainer<ClassifierItem> dataContainer = new DecoratedPagingNavigatorContainer<ClassifierItem>(
            "container", getCurrentRedirectLink());
    add(dataContainer);

    // Add data view
    final DataView<ClassifierItem> classifierDataView = new DataView<ClassifierItem>("item-list",
            new ClassifierDataProvider(classifierType, parentClassifierItem)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<ClassifierItem> item) {
            ClassifierItem classifierItem = item.getModelObject();

            // Add link
            PageParameters pageParameters = new PageParameters();
            pageParameters.set(ClassifiersPanel.PARAM_CLASSIFIER_TYPE, classifierType);
            pageParameters.add(ClassifierConstants.PARENT_ITEM, classifierItem.getCode());
            BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>("link-item",
                    ClassifiersItemPage.class, pageParameters);
            item.add(link);
            link.add(new Label("code", new Model<String>(classifierItem.getCode())));

            // Add name
            item.add(new Label("name", new Model<String>(classifierItem.getName())));
        }
    };
    dataContainer.addAbstractPageableView(classifierDataView);
    dataContainer.setVisible(true);
    classifierDataView.setItemReuseStrategy(ReuseIfModelsEqualStrategy.getInstance());

    // Create modal window to create new classifier
    final ModalWindow addNewClassifierModalWindow = new CustomModalWindow("modal-new-item", "title") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void addComponentsToRefresh(java.util.List<Component> components) {
            components.add(dataContainer);
        };
    };
    addNewClassifierModalWindow.setContent(
            new NewClassifierItemPanel<ClassifierItem, Classifier>(addNewClassifierModalWindow, params));

    add(addNewClassifierModalWindow);

    // add create new classifier link
    add(new AjaxLink<Void>("link-add-new-item") {
        private static final long serialVersionUID = 1L;

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

From source file:org.xaloon.wicket.component.classifier.panel.ClassifiersPanel.java

License:Apache License

@Override
protected void onInitialize(EmptyPlugin plugin, AbstractPluginBean pluginBean) {
    // Add data container
    final DecoratedPagingNavigatorContainer<Classifier> dataContainer = new DecoratedPagingNavigatorContainer<Classifier>(
            "container", getCurrentRedirectLink());
    add(dataContainer);//from   w w  w  .j  a v  a 2  s .co  m

    // Add data view
    final DataView<Classifier> classifierDataView = new DataView<Classifier>("item-list",
            new ClassifierDataProvider()) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<Classifier> item) {
            Classifier classifier = item.getModelObject();

            // Add link
            PageParameters pageParameters = new PageParameters();
            pageParameters.set(PARAM_CLASSIFIER_TYPE, classifier.getType());
            BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>("link-item",
                    ClassifiersItemPage.class, pageParameters);
            item.add(link);
            link.add(new Label("type", new Model<String>(classifier.getType())));

            // Add name
            item.add(new Label("name", new Model<String>(classifier.getName())));
        }
    };
    dataContainer.addAbstractPageableView(classifierDataView);
    classifierDataView.setItemReuseStrategy(ReuseIfModelsEqualStrategy.getInstance());
    dataContainer.setVisible(true);

    // Create modal window to create new classifier
    final ModalWindow addNewClassifierModalWindow = new CustomModalWindow("modal-new-item", "title") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void addComponentsToRefresh(java.util.List<Component> components) {
            components.add(dataContainer);
        };
    };
    addNewClassifierModalWindow.setContent(
            new NewClassifierPanel<Classifier>(addNewClassifierModalWindow, getPageRequestParameters()));
    add(addNewClassifierModalWindow);

    // add create new classifier link
    add(new AjaxLink<Void>("link-add-new-item") {
        private static final long serialVersionUID = 1L;

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

From source file:org.xaloon.wicket.plugin.comment.panel.CommentListPanel.java

License:Apache License

@Override
protected void onInitialize(CommentPlugin plugin, CommentPluginBean pluginBean) {
    final PageParameters pageParameters = getPageRequestParameters();
    Commentable commentable = (Commentable) getDefaultModelObject();
    final DecoratedPagingNavigatorContainer<Comment> dataContainer = new DecoratedPagingNavigatorContainer<Comment>(
            "container", getCurrentRedirectLink());
    add(dataContainer);/*  ww w .  java2 s.com*/

    final DataView<Comment> commentListDataView = new DataView<Comment>("comment-list",
            new CommentListDataProvider(commentable)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<Comment> item) {
            final Comment comment = item.getModelObject();
            WebMarkupContainer externalLink;
            if (getPluginBean().isWebsiteVisible()
                    && !StringUtils.isEmpty(comment.getFromUser().getWebsite())) {
                externalLink = new ExternalLink("external-link", comment.getFromUser().getWebsite());
            } else {
                externalLink = new WebMarkupContainer("external-link");
            }
            item.add(externalLink);
            FileDescriptor authorPhoto = comment.getFromUser().getPhotoThumbnail();

            item.add(new ImageLink("image-link", (authorPhoto != null) ? authorPhoto.getPath() : null)
                    .setVisible(authorPhoto != null));
            externalLink
                    .add(new Label("displayName", new Model<String>(comment.getFromUser().getDisplayName())));
            item.add(
                    new Label("message", new Model<String>(TextUtil.prepareStringForHTML(comment.getMessage())))
                            .setEscapeModelStrings(false));
            item.add(new Label("comment-timestamp",
                    new Model<String>(dateService.formatWithLongDate(comment.getCreateDate()))));

            // Delete comment link
            StatelessLink<Void> deleteLink = new StatelessLink<Void>("delete-comment") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    commentDao.delete(comment);
                    throw new RestartResponseException(getPage().getClass(), pageParameters);
                }
            };
            deleteLink.setVisible(getSecurityFacade().isAdministrator());
            deleteLink.add(AttributeModifier.replace("onClick", "if(!confirm('"
                    + CommentListPanel.this.getString(DELETE_CONFIRMATION) + "')) return false;"));

            item.add(deleteLink);

            // Add inappropriate flag
            StatelessLink<Void> inappropriateFlag = new StatelessLink<Void>("inappropriateFlag") {
                private static final long serialVersionUID = 1L;

                @SuppressWarnings("unchecked")
                @Override
                public void onClick() {
                    // First mark comment as inappropriate
                    commentDao.markAsInappropriate(comment, true);

                    // Then send email if possible
                    if (getPluginBean().isSendEmail()) {
                        String absolutePath = UrlUtils
                                .toAbsolutePath((Class<? extends Page>) getParentPageClass(), pageParameters);
                        InappropriateFlagEmailTemplatePage commentMessage = new InappropriateFlagEmailTemplatePage(
                                absolutePath, comment.getFromUser().getDisplayName(), comment.getMessage());
                        emailFacade.sendMailToSystem(commentMessage.getSource(),
                                comment.getFromUser().getEmail(), comment.getFromUser().getDisplayName());
                    }

                    // And redirect
                    throw new RestartResponseException(getPage().getClass(), pageParameters);
                }
            };
            inappropriateFlag.setVisible(securityFacade.isLoggedIn() && !comment.isInappropriate());
            item.add(inappropriateFlag);
        }
    };
    dataContainer.addAbstractPageableView(commentListDataView);
}

From source file:org.xaloon.wicket.plugin.user.admin.panel.GroupsPanel.java

License:Apache License

@Override
protected void onBeforeRender() {
    super.onBeforeRender();
    removeAll();/*from   ww w. j a  v a 2 s .  c  o  m*/

    // Add paging navigation container with navigation toolbar
    final DecoratedPagingNavigatorContainer<SecurityGroup> dataContainer = new DecoratedPagingNavigatorContainer<SecurityGroup>(
            "container", getCurrentRedirectLink());
    dataContainer.setOutputMarkupId(true);
    addOrReplace(dataContainer);

    // Add blog list data view
    final DataView<SecurityGroup> securityGroupDataView = new DataView<SecurityGroup>("security-groups",
            new JpaSecurityGroupDataProvider()) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<SecurityGroup> item) {
            final SecurityGroup group = item.getModelObject();

            PageParameters pageParams = new PageParameters();
            pageParams.add(Bookmarkable.PARAM_PATH, group.getPath());
            BookmarkablePageLink<Void> groupLink = new BookmarkablePageLink<Void>("groupDetails",
                    GroupDetailPage.class, pageParams);
            item.add(groupLink);
            groupLink.add(new Label("name", new Model<String>(group.getName())));

            item.add(new ConfirmationAjaxLink<Void>("delete") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    groupService.delete(group);
                    target.add(dataContainer);
                }
            });
        }

    };
    dataContainer.addAbstractPageableView(securityGroupDataView);

    // Add the modal window to create new group
    final ModalWindow addNewGroupModalWindow = new CustomModalWindow("modal-new-group", "New group") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void addComponentsToRefresh(java.util.List<Component> components) {
            components.add(GroupsPanel.this);
        };
    };
    addNewGroupModalWindow.setContent(new CreateNewEntityPanel<SecurityGroup>(
            addNewGroupModalWindow.getContentId(), new Model<SecurityGroup>(groupService.newAuthority())) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onNewEntitySubmit(AjaxRequestTarget target, SecurityGroup entity) {
            groupService.save(entity);
            addNewGroupModalWindow.close(target);
        }
    });
    add(addNewGroupModalWindow);

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

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