public function apply()
    {
        if ( method_exists( $this->view, 'plugin' ) )
        {
            $global     = false;
            $roots      = (array) $this->roots;
            $headLink   = $this->getHeadLinkHelper();

            if ( in_array( null, $roots ) )
            {
                $global = true;
            }

            $roots = array_filter( $roots );

            if ( $global )
            {
                $roots[] = null;
            }

            $find       = array();
            $urls       = array();
            $preview    = false;

            foreach ( $roots as $root )
            {
                if ( $this->cssPreview->hasPreviewById( $root ) )
                {
                    $urls[$root] = $this->cssPreview
                                        ->getPreviewById( $root );
                }

                if ( empty( $urls[$root] ) )
                {
                    $find[] = $root;
                }
                else
                {
                    $preview = true;
                }
            }

            if ( ! empty( $find ) )
            {
                $url        = $this->getUrlHelper();
                $siteInfo   = $this->getSiteInfo();
                $schema     = $siteInfo->getSchema();
                $updated    = $this->extraModel
                                   ->findUpdated( $find );

                foreach ( $find as $root )
                {
                    if ( isset( $updated[$root] ) )
                    {
                        $urls[$root] = $url( 'Grid\Customize\Render\CustomCss', array(
                            'schema'    => $schema,
                            'id'        => $root ? (int) $root : 'global',
                            'hash'      => $updated[$root]->toHash(),
                        ) );
                    }
                }
            }

            foreach ( $roots as $root )
            {
                if ( ! empty( $urls[$root] ) )
                {
                    $id = $root ? (int) $root : 'global';

                    $headLink->prependStylesheet(
                        $urls[$root],
                        'all',
                        false,
                        array(
                            'class'             => 'customize-stylesheet',
                            'data-customize'    => $id,
                        )
                    );
                }
            }

            if ( $preview )
            {
                if ( empty( $url ) )
                {
                    $url = $this->getUrlHelper();
                }

                $translate = $this->getTranslateHelper();

                $this->getMessengerHelper()
                     ->add(
                         sprintf(
                             $translate(
                                 'customize.preview.applied.reset-link.%s',
                                 'customize'
                             ),
                             $url( 'Grid\Customize\CssAdmin\ResetPreviews', array(
                                 'locale' => \Locale::getDefault(),
                             ) )
                         ),
                         false,
                         Message::LEVEL_WARN
                     );
            }

            $this->roots = array();
        }

        return $this;
    }