Example usage for com.liferay.portal.kernel.dao.search RowChecker RowChecker

List of usage examples for com.liferay.portal.kernel.dao.search RowChecker RowChecker

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.search RowChecker RowChecker.

Prototype

public RowChecker(PortletResponse portletResponse) 

Source Link

Usage

From source file:com.liferay.content.targeting.portlet.ContentTargetingPortlet.java

License:Open Source License

protected void populateViewContext(String path, PortletRequest portletRequest, PortletResponse portletResponse,
        Template template, TemplateHashModel staticModels) throws Exception {

    HttpServletRequest request = PortalUtil.getHttpServletRequest(portletRequest);

    ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    if (Validator.isNull(path) || path.equals(ContentTargetingPath.VIEW)
            || path.equals(ContentTargetingPath.VIEW_CAMPAIGNS_RESOURCES)
            || path.equals(ContentTargetingPath.VIEW_USER_SEGMENTS_RESOURCES)) {

        template.put("actionKeys", staticModels.get(ActionKeys.class.getName()));
        template.put("campaignPermission", staticModels.get(CampaignPermission.class.getName()));
        template.put("contentTargetingPermission",
                staticModels.get(ContentTargetingPermission.class.getName()));
        template.put("userSegmentPermission", staticModels.get(UserSegmentPermission.class.getName()));

        PermissionChecker permissionChecker = (PermissionChecker) template.get("permissionChecker");

        long scopeGroupId = (Long) template.get("scopeGroupId");

        if (UserSegmentPermission.contains(permissionChecker, scopeGroupId, scopeGroupId, ActionKeys.DELETE)) {

            template.put("userSegmentsRowChecker", new RowChecker(portletResponse));
        }// w w w  .  j a  v a  2 s .  c o  m

        if (CampaignPermission.contains(permissionChecker, scopeGroupId, scopeGroupId, ActionKeys.DELETE)) {

            template.put("campaignsRowChecker", new RowChecker(portletResponse));
        }

        String keywords = ParamUtil.getString(portletRequest, "keywords");

        template.put("campaignSearchContainerIterator",
                new CampaignSearchContainerIterator(scopeGroupId, keywords));
        template.put("userSegmentSearchContainerIterator",
                new UserSegmentSearchContainerIterator(scopeGroupId, keywords));
    } else if (path.equals(ContentTargetingPath.EDIT_CAMPAIGN)) {
        long campaignId = ParamUtil.getLong(portletRequest, "campaignId");

        template.put("campaignId", campaignId);

        int priority = 1;
        long userSegmentId = -1;

        Calendar endDate = Calendar.getInstance();
        Calendar startDate = Calendar.getInstance();

        if (campaignId > 0) {
            Campaign campaign = _campaignLocalService.getCampaign(campaignId);

            template.put("campaign", campaign);

            List<UserSegment> campaignUserSegments = _userSegmentLocalService
                    .getCampaignUserSegments(campaignId);

            priority = campaign.getPriority();

            // Initially, only one user segment per campaign is supported

            if ((campaignUserSegments != null) && !campaignUserSegments.isEmpty()) {

                UserSegment campaignUserSegment = campaignUserSegments.get(0);

                userSegmentId = campaignUserSegment.getUserSegmentId();
            }

            endDate.setTime(campaign.getEndDate());
            startDate.setTime(campaign.getStartDate());
        } else {
            Date now = new Date();

            endDate.setTime(now);
            endDate.add(Calendar.DATE, 1);

            startDate.setTime(now);
        }

        template.put("endDate", endDate);
        template.put("priority", priority);
        template.put("startDate", startDate);
        template.put("userSegmentId", userSegmentId);

        long[] groupIds = ContentTargetingUtil.getAncestorsAndCurrentGroupIds(themeDisplay.getScopeGroupId());

        List<UserSegment> userSegments = _userSegmentService.getUserSegments(groupIds);

        template.put("userSegments", userSegments);

        template.put("trackingActionsRegistry", _trackingActionsRegistry);

        Map<String, TrackingAction> trackingActions = _trackingActionsRegistry.getTrackingActions();

        boolean isolated = themeDisplay.isIsolated();

        try {
            themeDisplay.setIsolated(true);

            template.put("trackingActions", trackingActions.values());

            List<TrackingActionInstance> trackingActionInstances = getTrackingActionsFromRequest(portletRequest,
                    portletResponse);

            if (trackingActionInstances.isEmpty() && (campaignId > 0)) {
                trackingActionInstances = _trackingActionInstanceService.getTrackingActionInstances(campaignId);
            }

            List<TrackingActionTemplate> addedTrackingActionTemplates = new ArrayList<TrackingActionTemplate>();

            if (!trackingActionInstances.isEmpty()) {
                template.put("trackingActionInstances", trackingActionInstances);

                InvalidTrackingActionsException itae = getInvalidTrackingActionsException(portletRequest);

                for (TrackingActionInstance instance : trackingActionInstances) {

                    TrackingAction trackingAction = _trackingActionsRegistry
                            .getTrackingAction(instance.getTrackingActionKey());

                    if (trackingAction == null) {
                        continue;
                    }

                    TrackingActionTemplate trackingActionTemplate = new TrackingActionTemplate();

                    if (instance.getTrackingActionInstanceId() > 0) {
                        trackingActionTemplate
                                .setInstanceId(String.valueOf(instance.getTrackingActionInstanceId()));
                    } else {
                        trackingActionTemplate.setInstanceId(instance.getTrackingActionGuid());
                    }

                    trackingActionTemplate.setTrackingAction(trackingAction);

                    String html = getTrackingActionHtml(trackingAction, instance, template,
                            instance.getValues(), itae.getExceptions(instance.getTrackingActionGuid()));

                    trackingActionTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                    addedTrackingActionTemplates.add(trackingActionTemplate);
                }
            }

            template.put("addedTrackingActionTemplates", addedTrackingActionTemplates);

            List<TrackingActionTemplate> trackingActionTemplates = new ArrayList<TrackingActionTemplate>();

            for (TrackingAction trackingAction : trackingActions.values()) {
                TrackingActionTemplate trackingActionTemplate = new TrackingActionTemplate();

                trackingActionTemplate.setTrackingAction(trackingAction);

                String html = getTrackingActionHtml(trackingAction, null, template, null, null);

                trackingActionTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                trackingActionTemplates.add(trackingActionTemplate);
            }

            template.put("trackingActionTemplates", trackingActionTemplates);
        } finally {
            themeDisplay.setIsolated(isolated);
        }
    } else if (path.equals(ContentTargetingPath.EDIT_USER_SEGMENT)) {
        long userSegmentId = ParamUtil.getLong(portletRequest, "userSegmentId");

        template.put("ruleCategoriesRegistry", _ruleCategoriesRegistry);
        template.put("rulesRegistry", _rulesRegistry);
        template.put("userSegmentId", userSegmentId);

        Map<String, Rule> rules = _rulesRegistry.getRules();

        boolean isolated = themeDisplay.isIsolated();

        try {
            themeDisplay.setIsolated(true);

            template.put("rules", rules.values());

            List<RuleInstance> ruleInstances = getRulesFromRequest(portletRequest, portletResponse);

            if (ruleInstances.isEmpty() && (userSegmentId > 0)) {
                ruleInstances = _ruleInstanceService.getRuleInstances(userSegmentId);
            }

            List<RuleTemplate> addedRuleTemplates = new ArrayList<RuleTemplate>();

            if (!ruleInstances.isEmpty()) {
                template.put("ruleInstances", ruleInstances);

                InvalidRulesException ire = getInvalidRulesException(portletRequest);

                for (RuleInstance ruleInstance : ruleInstances) {
                    Rule rule = _rulesRegistry.getRule(ruleInstance.getRuleKey());

                    if (rule == null) {
                        continue;
                    }

                    RuleTemplate ruleTemplate = new RuleTemplate();

                    if (ruleInstance.getRuleInstanceId() > 0) {
                        ruleTemplate.setInstanceId(String.valueOf(ruleInstance.getRuleInstanceId()));
                    } else {
                        ruleTemplate.setInstanceId(ruleInstance.getRuleGuid());
                    }

                    ruleTemplate.setRule(rule);

                    String html = getRuleHtml(rule, ruleInstance, template, ruleInstance.getValues(),
                            ire.getRuleExceptions(ruleInstance.getRuleGuid()));

                    ruleTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                    addedRuleTemplates.add(ruleTemplate);
                }
            }

            template.put("addedRuleTemplates", addedRuleTemplates);

            if (userSegmentId > 0) {
                UserSegment userSegment = _userSegmentLocalService.getUserSegment(userSegmentId);

                template.put("userSegment", userSegment);
            }

            List<RuleTemplate> ruleTemplates = new ArrayList<RuleTemplate>();

            for (Rule rule : rules.values()) {
                RuleTemplate ruleTemplate = new RuleTemplate();

                ruleTemplate.setRule(rule);

                String html = getRuleHtml(rule, null, template, null, null);

                ruleTemplate.setTemplate(HtmlUtil.escapeAttribute(html));

                ruleTemplates.add(ruleTemplate);
            }

            template.put("ruleTemplates", ruleTemplates);
        } finally {
            themeDisplay.setIsolated(isolated);
        }
    } else if (path.equals(ContentTargetingPath.VIEW_REPORT)
            || path.equals(ContentTargetingPath.VIEW_REPORTS)) {

        String className = ParamUtil.getString(portletRequest, "className");
        long classPK = ParamUtil.getLong(portletRequest, "classPK");

        template.put("className", className);
        template.put("classPK", classPK);
        template.put("reportInstanceService", _reportInstanceService);

        String name = StringPool.BLANK;

        if (className.equals(Campaign.class.getName())) {
            Campaign campaign = _campaignLocalService.getCampaign(classPK);

            name = campaign.getName(themeDisplay.getLocale());

            BreadcrumbUtil.addPortletBreadcrumbEntries(request, (RenderResponse) portletResponse, campaign);
        } else if (className.equals(UserSegment.class.getName())) {
            UserSegment userSegment = _userSegmentLocalService.getUserSegment(classPK);

            name = userSegment.getName(themeDisplay.getLocale());

            BreadcrumbUtil.addPortletBreadcrumbEntries(request, (RenderResponse) portletResponse, userSegment);
        }

        if (path.equals(ContentTargetingPath.VIEW_REPORT)) {
            template.put("name", name);

            String reportKey = ParamUtil.getString(portletRequest, "reportKey");

            Report report = _reportsRegistry.getReport(reportKey);

            template.put("report", report);
            template.put("reportHtml", report.getHTML(cloneTemplateContext(template)));

            BreadcrumbUtil.addPortletBreadcrumbEntries(request, (RenderResponse) portletResponse, report);
        }

        if (path.equals(ContentTargetingPath.VIEW_REPORTS)) {
            PortletConfig portletConfig = (PortletConfig) portletRequest
                    .getAttribute(JavaConstants.JAVAX_PORTLET_CONFIG);

            String title = LanguageUtil.format(portletConfig, themeDisplay.getLocale(), "reports-for-the-x-x",
                    new Object[] { ResourceActionsUtil.getModelResource(themeDisplay.getLocale(), className),
                            name });

            template.put("title", title);

            template.put("reportSearchContainerIterator",
                    new ReportSearchContainerIterator(themeDisplay.getScopeGroupId(), null, className));
        }
    }
}