de.hybris.platform.commerceorgaddon.breadcrumb.impl.MyCompanyBreadcrumbBuilder.java Source code

Java tutorial

Introduction

Here is the source code for de.hybris.platform.commerceorgaddon.breadcrumb.impl.MyCompanyBreadcrumbBuilder.java

Source

/*
 * [y] hybris Platform
 *
 * Copyright (c) 2000-2016 hybris AG
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of hybris
 * ("Confidential Information"). You shall not disclose such Confidential
 * Information and shall use it only in accordance with the terms of the
 * license agreement you entered into with hybris.
 *
 *  
 */
package de.hybris.platform.commerceorgaddon.breadcrumb.impl;

import de.hybris.platform.acceleratorstorefrontcommons.breadcrumb.Breadcrumb;
import de.hybris.platform.servicelayer.i18n.I18NService;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.context.MessageSource;

/**
 * MyCompanyBreadcrumbBuilder implementation for account related pages
 */
public class MyCompanyBreadcrumbBuilder {
    protected static final String MANAGE_COSTCENTERS_VIEW_URL = "/my-company/organization-management/manage-costcenters/view/?costCenterCode=%s";
    protected static final String MANAGE_PERMISSIONS_VIEW_URL = "/my-company/organization-management/manage-permissions/view/?permissionCode=%s";

    private MessageSource messageSource;
    private I18NService i18nService;

    public List<Breadcrumb> getBreadcrumbs(final String resourceKey) throws IllegalArgumentException {
        final List<Breadcrumb> breadcrumbs = new ArrayList<Breadcrumb>();

        if (StringUtils.isNotBlank(resourceKey)) {
            breadcrumbs.add(new Breadcrumb("#",
                    getMessageSource().getMessage(resourceKey, null, getI18nService().getCurrentLocale()), null));
        }

        return breadcrumbs;
    }

    protected I18NService getI18nService() {
        return i18nService;
    }

    @Required
    public void setI18nService(final I18NService i18nService) {
        this.i18nService = i18nService;
    }

    protected MessageSource getMessageSource() {
        return messageSource;
    }

    @Required
    public void setMessageSource(final MessageSource messageSource) {
        this.messageSource = messageSource;
    }

    public List<Breadcrumb> createManageUnitsBreadcrumbs() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(new Breadcrumb("/my-company/organization-management/manage-units/",
                messageSource.getMessage("text.company.manage.units", null, i18nService.getCurrentLocale()), null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageUnitsDetailsBreadcrumbs(final String uid) {
        final List<Breadcrumb> breadcrumbs = this.createManageUnitsBreadcrumbs();
        breadcrumbs.add(new Breadcrumb(
                String.format("/my-company/organization-management/manage-units/details/?unit=%s", urlEncode(uid)),
                messageSource.getMessage("text.company.manage.units.details", new Object[] { uid },
                        "View Unit: {0} ", i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageCostCenterBreadCrumbs() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(new Breadcrumb("/my-company/organization-management/manage-costcenters",
                messageSource.getMessage("text.company.manageCostCenters", null, i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageUserBreadcrumb() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(new Breadcrumb("/my-company/organization-management/manage-users",
                messageSource.getMessage("text.company.manageUsers", null, i18nService.getCurrentLocale()), null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageUserDetailsBreadcrumb(final String uid) {
        final List<Breadcrumb> breadcrumbs = createManageUserBreadcrumb();
        breadcrumbs.add(new Breadcrumb(
                String.format("/my-company/organization-management/manage-users/details?user=%s", urlEncode(uid)),
                messageSource.getMessage("text.company.manageUsers.details.breadcrumb", new Object[] { uid },
                        "Manage {0} Customer", i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageBudgetsBreadCrumbs() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(new Breadcrumb("/my-company/organization-management/manage-budgets",
                messageSource.getMessage("text.company.manageBudgets", null, i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManagePermissionsBreadcrumb() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(new Breadcrumb("/my-company/organization-management/manage-permissions",
                messageSource.getMessage("text.company.managePermissions", null, i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageUserGroupBreadCrumbs() {
        final List<Breadcrumb> breadcrumbs = this.getBreadcrumbs(null);
        breadcrumbs.add(
                new Breadcrumb("/my-company/organization-management/manage-usergroups", messageSource.getMessage(
                        "text.company.manageUsergroups.breadcrumb", null, i18nService.getCurrentLocale()), null));
        return breadcrumbs;
    }

    public List<Breadcrumb> createManageUserGroupDetailsBreadCrumbs(final String uid) {
        final List<Breadcrumb> breadcrumbs = createManageUserGroupBreadCrumbs();
        breadcrumbs.add(new Breadcrumb(
                String.format("/my-company/organization-management/manage-usergroups/details?usergroup=%s",
                        urlEncode(uid)),
                messageSource.getMessage("text.company.manageUsergroups.details", new Object[] { uid },
                        "Manage {0} Usergroup details", i18nService.getCurrentLocale()),
                null));
        return breadcrumbs;
    }

    public void addViewCostCenterBreadCrumbs(final List<Breadcrumb> breadcrumbs, final String costCenterCode) {
        breadcrumbs.add(new Breadcrumb(String.format(MANAGE_COSTCENTERS_VIEW_URL, urlEncode(costCenterCode)),
                messageSource.getMessage("text.company.costCenter.viewPage", new Object[] { costCenterCode },
                        "View Cost Center: {0}", i18nService.getCurrentLocale()),
                null));
    }

    public void addViewBudgetBreadCrumbs(final List<Breadcrumb> breadcrumbs, final String budgetCode) {
        breadcrumbs.add(new Breadcrumb(
                String.format("/my-company/organization-management/manage-budgets/view/?budgetCode=%s",
                        urlEncode(budgetCode)),
                messageSource.getMessage("text.company.budget.viewPage", new Object[] { budgetCode },
                        "View Budget: {0}", i18nService.getCurrentLocale()),
                null));
    }

    public void addViewPermissionBreadCrumbs(final List<Breadcrumb> breadcrumbs, final String permissionCode) {
        breadcrumbs.add(new Breadcrumb(String.format(MANAGE_PERMISSIONS_VIEW_URL, urlEncode(permissionCode)),
                getMessageSource().getMessage("text.company.managePermissions.view.page",
                        new Object[] { permissionCode }, "View Permission {0}",
                        getI18nService().getCurrentLocale()),
                null));
    }

    protected String urlEncode(final String url) {
        try {
            return URLEncoder.encode(url, "UTF-8");
        } catch (final UnsupportedEncodingException e) {
            return url;
        }
    }
}