示例#1
0
    /**
     * Retrieve additional html and put it at the end of element html
     *
     * @return string
     */
    public function getAfterElementHtml()
    {
        $html = parent::getAfterElementHtml();
        if ($this->getIsWysiwygEnabled()) {
            $disabled = $this->getDisabled() || $this->getReadonly();
            $html .= $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button', '', array('data' => array('label' => __('WYSIWYG Editor'), 'type' => 'button', 'disabled' => $disabled, 'class' => $disabled ? 'disabled action-wysiwyg' : 'action-wysiwyg', 'onclick' => 'catalogWysiwygEditor.open(\'' . $this->_backendData->getUrl('catalog/product/wysiwyg') . '\', \'' . $this->getHtmlId() . '\')')))->toHtml();
            $html .= <<<HTML
<script type="text/javascript">
jQuery('#{$this->getHtmlId()}')
    .addClass('wysiwyg-editor')
    .data(
        'wysiwygEditor',
        new tinyMceWysiwygSetup(
            '{$this->getHtmlId()}',
             {
                settings: {
                    theme_advanced_buttons1 : 'bold,italic,|,justifyleft,justifycenter,justifyright,|,' +
                        'fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code',
                    theme_advanced_buttons2: null,
                    theme_advanced_buttons3: null,
                    theme_advanced_buttons4: null,
                    theme_advanced_statusbar_location: null
                }
            }
        ).turnOn()
    );
</script>
HTML;
        }
        return $html;
    }
示例#2
0
 protected function setUp()
 {
     parent::setUp();
     $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface');
     $this->_theme = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Framework\\View\\Design\\ThemeInterface');
     $this->_theme->setType(\Magento\Framework\View\Design\ThemeInterface::TYPE_VIRTUAL);
     $this->_block = $this->_layout->createBlock('Magento\\Theme\\Block\\Adminhtml\\System\\Design\\Theme\\Edit\\Tab\\General');
 }
 /**
  * Adds Google Experiment tab to the category edit page
  *
  * @param EventObserver $observer
  * @return void
  */
 public function execute(EventObserver $observer)
 {
     if ($this->_helper->isGoogleExperimentActive()) {
         $block = $this->_layout->createBlock('Magento\\GoogleOptimizer\\Block\\Adminhtml\\Catalog\\Category\\Edit\\Tab\\Googleoptimizer', 'google-experiment-form');
         /** @var $tabs \Magento\Catalog\Block\Adminhtml\Category\Tabs */
         $tabs = $observer->getEvent()->getTabs();
         $tabs->addTab('google-experiment-tab', ['label' => __('Category View Optimization'), 'content' => $block->toHtml()]);
     }
 }
示例#4
0
 protected function setUp()
 {
     $this->_payment = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\RecurringPayment\\Model\\Payment');
     /** @var $objectManager \Magento\TestFramework\ObjectManager */
     $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
     $objectManager->get('Magento\\Framework\\Registry')->register('current_recurring_payment', $this->_payment);
     $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface');
     $this->_block = $this->_layout->createBlock('Magento\\RecurringPayment\\Block\\Payment\\View', 'block');
 }
 /**
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @param \Magento\LayeredNavigation\Block\Navigation\FilterRenderer $subject
  * @param \Closure $proceed
  * @param \Magento\Catalog\Model\Layer\Filter\FilterInterface $filter
  * @return mixed
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function aroundRender(\Magento\LayeredNavigation\Block\Navigation\FilterRenderer $subject, \Closure $proceed, \Magento\Catalog\Model\Layer\Filter\FilterInterface $filter)
 {
     if ($filter->hasAttributeModel()) {
         if ($this->swatchHelper->isSwatchAttribute($filter->getAttributeModel())) {
             return $this->layout->createBlock($this->block)->setSwatchFilter($filter)->toHtml();
         }
     }
     return $proceed($filter);
 }
示例#6
0
 /**
  * Get renderer for element
  *
  * @param string $elementClassName
  * @param string $rendererName
  * @return RendererInterface
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function create($elementClassName, $rendererName)
 {
     if (!isset($this->_rendererByElement[$elementClassName])) {
         throw new \Magento\Framework\Exception\LocalizedException(__('No renderer registered for elements of class "%1"', $elementClassName));
     }
     $rendererClass = $this->_rendererByElement[$elementClassName];
     $renderer = $this->_layout->createBlock($rendererClass, $rendererName);
     return $renderer;
 }
示例#7
0
 protected function setUp()
 {
     parent::setUp();
     $this->_layoutMock = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface');
     $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Backend\\Block\\Template\\Context', ['layout' => $this->_layoutMock]);
     $this->_block = $this->_layoutMock->createBlock('Magento\\Backend\\Block\\Widget\\Grid\\Extended', 'grid', ['context' => $context]);
     $this->_block->addColumn('column1', ['id' => 'columnId1']);
     $this->_block->addColumn('column2', ['id' => 'columnId2']);
 }
示例#8
0
 /**
  * Prepares content block
  *
  * @return string
  */
 public function getContentHtml()
 {
     /* @var $content \Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Gallery\Content */
     $content = $this->_layout->createBlock('Magento\\Catalog\\Block\\Adminhtml\\Product\\Helper\\Form\\Gallery\\Content');
     $content->setId($this->getHtmlId() . '_content')->setElement($this);
     $galleryJs = $content->getJsObjectName();
     $content->getUploader()->getConfig()->setMegiaGallery($galleryJs);
     return $content->toHtml();
 }
示例#9
0
 /**
  * @covers \Magento\Sales\Block\Adminhtml\Report\Filter\Form\Coupon::_afterToHtml
  */
 public function testAfterToHtml()
 {
     /** @var $block \Magento\Sales\Block\Adminhtml\Report\Filter\Form\Coupon */
     $block = $this->_layout->createBlock('Magento\\Sales\\Block\\Adminhtml\\Report\\Filter\\Form\\Coupon');
     $block->setFilterData(new \Magento\Framework\DataObject());
     $html = $block->toHtml();
     $expectedStrings = ['FormElementDependenceController', 'sales_report_rules_list', 'sales_report_price_rule_type'];
     foreach ($expectedStrings as $expectedString) {
         $this->assertContains($expectedString, $html);
     }
 }
示例#10
0
 /**
  * @magentoDataFixture Magento/Customer/_files/customer_group.php
  */
 public function testDeleteButtonExistInCustomGroup()
 {
     $builder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\FilterBuilder');
     /** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteria */
     $searchCriteria = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\SearchCriteriaBuilder')->addFilters([$builder->setField('code')->setValue('custom_group')->create()])->create();
     $customerGroup = $this->groupRepository->getList($searchCriteria)->getItems()[0];
     $this->getRequest()->setParam('id', $customerGroup->getId());
     $this->registry->register(RegistryConstants::CURRENT_GROUP_ID, $customerGroup->getId());
     /** @var $block Edit */
     $block = $this->layout->createBlock('Magento\\Customer\\Block\\Adminhtml\\Group\\Edit', 'block');
     $buttonsHtml = $block->getButtonsHtml();
     $this->assertContains('delete', $buttonsHtml);
 }
示例#11
0
 /**
  * Assign custom renderer for product create/edit form weee attribute element
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return $this
  */
 public function setWeeeRendererInForm(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Framework\Data\Form $form */
     $form = $observer->getEvent()->getForm();
     $attributes = $this->_weeeTax->getWeeeAttributeCodes(true);
     foreach ($attributes as $code) {
         $weeeTax = $form->getElement($code);
         if ($weeeTax) {
             $weeeTax->setRenderer($this->_layout->createBlock('Magento\\Weee\\Block\\Renderer\\Weee\\Tax'));
         }
     }
     return $this;
 }
示例#12
0
    /**
     * Retrieve additional html and put it at the end of element html
     *
     * @return string
     */
    public function getAfterElementHtml()
    {
        $config = $this->_wysiwygConfig->getConfig();
        $config = json_encode($config->getData());
        $html = parent::getAfterElementHtml();
        if ($this->getIsWysiwygEnabled()) {
            $disabled = $this->getDisabled() || $this->getReadonly();
            $html .= $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button', '', ['data' => ['label' => __('WYSIWYG Editor'), 'type' => 'button', 'disabled' => $disabled, 'class' => 'action-wysiwyg', 'onclick' => 'catalogWysiwygEditor.open(\'' . $this->_backendData->getUrl('catalog/product/wysiwyg') . '\', \'' . $this->getHtmlId() . '\')']])->toHtml();
            $html .= <<<HTML
<script>
require([
    'jquery',
    'mage/adminhtml/wysiwyg/tiny_mce/setup'
], function(jQuery){

var config = {$config},
    editor;

jQuery.extend(config, {
    settings: {
        theme_advanced_buttons1 : 'bold,italic,|,justifyleft,justifycenter,justifyright,|,' +
            'fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code',
        theme_advanced_buttons2: null,
        theme_advanced_buttons3: null,
        theme_advanced_buttons4: null,
        theme_advanced_statusbar_location: null
    },
    files_browser_window_url: false
});

editor = new tinyMceWysiwygSetup(
    '{$this->getHtmlId()}',
    config
);

editor.turnOn();

jQuery('#{$this->getHtmlId()}')
    .addClass('wysiwyg-editor')
    .data(
        'wysiwygEditor',
        editor
    );
});
</script>
HTML;
        }
        return $html;
    }
示例#13
0
 /**
  * @return \Magento\Framework\View\Element\Template
  */
 public function createElementHtmlOutputBlock()
 {
     /** @var \Magento\Framework\View\Element\Template $block */
     $block = $this->layout->createBlock('Magento\\Framework\\View\\Element\\Template', 'product.details.form.base.image.element');
     $block->setTemplate(self::ELEMENT_OUTPUT_TEMPLATE);
     return $block;
 }
示例#14
0
 /**
  * Retrieve Block html directive
  *
  * @param array $construction
  * @return string
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function blockDirective($construction)
 {
     $skipParams = ['class', 'id', 'output'];
     $blockParameters = $this->_getIncludeParameters($construction[2]);
     $block = null;
     if (isset($blockParameters['class'])) {
         $block = $this->_layout->createBlock($blockParameters['class'], null, ['data' => $blockParameters]);
     } elseif (isset($blockParameters['id'])) {
         $block = $this->_layout->createBlock('Magento\\Cms\\Block\\Block');
         if ($block) {
             $block->setBlockId($blockParameters['id']);
         }
     }
     if (!$block) {
         return '';
     }
     $block->setBlockParams($blockParameters);
     foreach ($blockParameters as $k => $v) {
         if (in_array($k, $skipParams)) {
             continue;
         }
         $block->setDataUsingMethod($k, $v);
     }
     if (isset($blockParameters['output'])) {
         $method = $blockParameters['output'];
     }
     if (!isset($method) || !is_string($method) || !method_exists($block, $method) || !is_callable([$block, $method])) {
         $method = 'toHtml';
     }
     return $block->{$method}();
 }
示例#15
0
 /**
  * @magentoDataFixture Magento/Customer/_files/customer_group.php
  */
 public function testGetFormExistInCustomGroup()
 {
     $builder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\FilterBuilder');
     /** @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $searchCriteria */
     $searchCriteria = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\SearchCriteriaBuilder')->addFilter([$builder->setField('code')->setValue('custom_group')->create()])->create();
     /** @var CustomerGroup $customerGroup */
     $customerGroup = $this->customerGroupService->searchGroups($searchCriteria)->getItems()[0];
     $this->registry->register(RegistryConstants::CURRENT_GROUP_ID, $customerGroup->getId());
     /** @var $block Form */
     $block = $this->layout->createBlock('Magento\\Customer\\Block\\Adminhtml\\Group\\Edit\\Form', 'block');
     $form = $block->getForm();
     $this->assertEquals('edit_form', $form->getId());
     $this->assertEquals('post', $form->getMethod());
     $baseFieldSet = $form->getElement('base_fieldset');
     $this->assertNotNull($baseFieldSet);
     $groupCodeElement = $form->getElement('customer_group_code');
     $this->assertNotNull($groupCodeElement);
     $taxClassIdElement = $form->getElement('tax_class_id');
     $this->assertNotNull($taxClassIdElement);
     $idElement = $form->getElement('id');
     $this->assertNotNull($idElement);
     $this->assertEquals($customerGroup->getId(), $idElement->getValue());
     $this->assertEquals($customerGroup->getTaxClassId(), $taxClassIdElement->getValue());
     /** @var \Magento\Tax\Model\TaxClass\Source\Customer $taxClassCustomer */
     $taxClassCustomer = Bootstrap::getObjectManager()->get('Magento\\Tax\\Model\\TaxClass\\Source\\Customer');
     $this->assertEquals($taxClassCustomer->toOptionArray(false), $taxClassIdElement->getData('values'));
     $this->assertEquals($customerGroup->getCode(), $groupCodeElement->getValue());
 }
示例#16
0
 /**
  * Retrieve payment information block
  *
  * @param Info $info
  * @return Template
  */
 public function getInfoBlock(Info $info)
 {
     $blockType = $info->getMethodInstance()->getInfoBlockType();
     $block = $this->_layout->createBlock($blockType);
     $block->setInfo($info);
     return $block;
 }
示例#17
0
 /**
  * Retrieve inline script code
  *
  * Create block to render script and html with
  * added inline translation content.
  *
  * @return string
  */
 protected function getInlineScript()
 {
     /** @var $block \Magento\Framework\View\Element\Template */
     $block = $this->layout->createBlock('Magento\\Framework\\View\\Element\\Template');
     $block->setAjaxUrl($this->getAjaxUrl());
     $block->setTemplate($this->templateFileName);
     return $block->toHtml();
 }
示例#18
0
 /**
  * Create block instance
  *
  * @param string|\Magento\Framework\View\Element\AbstractBlock $block
  * @return \Magento\Framework\View\Element\AbstractBlock
  * @throws \Magento\Framework\Model\Exception
  */
 public function createBlock($block)
 {
     if (is_string($block)) {
         if (class_exists($block)) {
             $block = $this->_layout->createBlock($block);
         }
     }
     if (!$block instanceof \Magento\Framework\View\Element\AbstractBlock) {
         throw new \Magento\Framework\Model\Exception(__('Invalid block type: %1', $block));
     }
     return $block;
 }
示例#19
0
 /**
  * Return HTML block with product price
  *
  * @param \Magento\Catalog\Model\Product $product
  * @return string
  */
 public function getProductPriceHtml(\Magento\Catalog\Model\Product $product)
 {
     $price = '';
     /** @var \Magento\Framework\Pricing\Render $priceRender */
     $priceRender = $this->layout->getBlock('product.price.render.default');
     if (!$priceRender) {
         $priceRender = $this->layout->createBlock('Magento\\Framework\\Pricing\\Render', 'product.price.render.default', ['data' => ['price_render_handle' => 'catalog_product_prices']]);
     }
     if ($priceRender) {
         $price = $priceRender->render('wishlist_configured_price', $product, ['zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST]);
     }
     return $price;
 }
示例#20
0
    /**
     * Attach category suggest widget initialization
     *
     * @return string
     */
    public function getAfterElementHtml()
    {
        $htmlId = $this->getHtmlId();
        $suggestPlaceholder = __('start typing to search category');
        $selectorOptions = $this->_jsonEncoder->encode($this->_getSelectorOptions());
        $newCategoryCaption = __('New Category');
        $button = $this->_layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").dialog("open")', 'disabled' => $this->getDisabled()]);
        $return = <<<HTML
    <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" />
    <script>
        jQuery('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions});
    </script>
HTML;
        return $return . $button->toHtml();
    }
示例#21
0
    /**
     * Attach category suggest widget initialization
     * @return string
     */
    public function getAfterElementHtml()
    {
        if (!$this->isAllowed()) {
            return '';
        }
        $htmlId = $this->getHtmlId();
        $suggestPlaceholder = __('start typing to search category');
        $selectorOptions = $this->jsonEncoder->encode($this->_getSelectorOptions());
        $newCategoryCaption = __('New Category');
        /** @var Magento\Backend\Block\Widget\Button $button */
        $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").modal("openModal")', 'disabled' => $this->getDisabled()]);
        $return = <<<HTML
    <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" />
    <script>
        require(["jquery", "mage/mage"], function(\$){
            \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions});
        });
    </script>
HTML;
        return $return . $button->toHtml();
    }
    /**
     * Attach Category suggest widget initialization
     *
     * @return string
     */
    public function getAfterElementHtml()
    {
        $htmlId = $this->getHtmlId();
        $suggestPlaceholder = __('start typing to search Category');
        $selectorOptions = $this->jsonEncoder->encode($this->getSelectorOptions());
        $newCategoryCaption = __('New Category');
        /** @var \Magento\Backend\Block\Widget\Button $button */
        $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").trigger("openModal")', 'disabled' => $this->getDisabled()]);
        //TODO: move this somewhere else when magento team decides to move it.
        $return = <<<HTML
        <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" />
        <script type="text/javascript">
            require(["jquery","mage/mage"],function(\$) {  // waiting for dependencies at first
                \$(function(){ // waiting for page to load to have '#category_ids-template' available
                    \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions});
                });
            });
        </script>
HTML;
        return $return . $button->toHtml();
    }
示例#23
0
    /**
     * Attach category suggest widget initialization
     * @return string
     */
    public function getAfterElementHtml()
    {
        $htmlId = $this->getHtmlId();
        $suggestPlaceholder = __('start typing to search category');
        $selectorOptions = $this->jsonEncoder->encode($this->_getSelectorOptions());
        $newCategoryCaption = __('New Category');
        /** @var \Magento\Backend\Block\Widget\Button $button */
        $button = $this->layout->createBlock('Magento\\Backend\\Block\\Widget\\Button')->setData(['id' => 'add_category_button', 'label' => $newCategoryCaption, 'title' => $newCategoryCaption, 'onclick' => 'jQuery("#new-category").dialog("open")', 'disabled' => $this->getDisabled()]);
        $widgetOptions = $this->jsonEncoder->encode(array('suggestOptions' => array('source' => $this->getUrl('catalog/category/suggestCategories'), 'valueField' => '#new_category_parent', 'className' => 'category-select', 'multiselect' => true, 'showAll' => true), 'saveCategoryUrl' => $this->getUrl('catalog/category/save')));
        //TODO: move this somewhere else when magento team decides to move it.
        $return = <<<HTML
        <input id="{$htmlId}-suggest" placeholder="{$suggestPlaceholder}" />
        <script type="text/javascript">
            require(["jquery","mage/mage"],function(\$) {  // waiting for dependencies at first
                \$(function(){ // waiting for page to load to have '#category_ids-template' available
                    \$('#new-category').mage('newCategoryDialog', {$widgetOptions});
                    \$('#{$htmlId}-suggest').mage('treeSuggest', {$selectorOptions});
                });
            });
        </script>
HTML;
        return $return . $button->toHtml();
    }
示例#24
0
 protected function setUp()
 {
     $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface');
     $this->_block = $this->_layout->createBlock('Magento\\Sales\\Block\\Order\\Invoice\\Items', 'block');
     $this->_invoice = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Sales\\Model\\Order\\Invoice');
 }
示例#25
0
 protected function setUp()
 {
     $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Framework\\View\\LayoutInterface');
     $this->_block = $this->_layout->createBlock('Magento\\CatalogSearch\\Block\\Advanced\\Result', 'block');
 }
示例#26
0
 protected function setUp()
 {
     $this->_layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\LayoutInterface');
     $this->_block = $this->_layout->createBlock('Magento\\Framework\\View\\Element\\Text\\ListText');
 }
示例#27
0
 /**
  * {@inheritdoc}
  */
 public function getSectionData()
 {
     $totals = $this->getQuote()->getTotals();
     return ['summary_count' => $this->getSummaryCount(), 'subtotal' => isset($totals['subtotal']) ? $this->checkoutHelper->formatPrice($totals['subtotal']->getValue()) : 0, 'possible_onepage_checkout' => $this->isPossibleOnepageCheckout(), 'items' => $this->getRecentItems(), 'extra_actions' => $this->layout->createBlock('Magento\\Catalog\\Block\\ShortcutButtons')->toHtml(), 'isGuestCheckoutAllowed' => $this->isGuestCheckoutAllowed()];
 }
示例#28
0
 /**
  * Retrieve payment method form html
  *
  * @param MethodInterface $method
  * @param LayoutInterface $layout
  * @return Form
  */
 public function getMethodFormBlock(MethodInterface $method, LayoutInterface $layout)
 {
     $block = $layout->createBlock($method->getFormBlockType(), $method->getCode());
     $block->setMethod($method);
     return $block;
 }
示例#29
0
 /**
  * Return centinel block for payment form with logos
  *
  * @param \Magento\Payment\Model\MethodInterface $method
  * @return \Magento\Centinel\Block\Logo
  */
 public function getMethodFormBlock($method)
 {
     $block = $this->_layout->createBlock('Magento\\Centinel\\Block\\Logo');
     $block->setMethod($method);
     return $block;
 }
示例#30
0
 /**
  * Create button container
  *
  * @param \Magento\Framework\View\LayoutInterface $layout
  * @param string $containerName
  * @param \Magento\Backend\Block\Widget\Button\Item $buttonItem
  * @return \Magento\Backend\Block\Widget\Button\Toolbar\Container
  */
 protected function createContainer(LayoutInterface $layout, $containerName, $buttonItem)
 {
     $container = $layout->createBlock('\\Magento\\Backend\\Block\\Widget\\Button\\Toolbar\\Container', $containerName, ['data' => ['button_item' => $buttonItem]]);
     return $container;
 }