public function getHTMLFragments($gridField)
    {
        $singleton = singleton($gridField->getModelClass());

        if (!$singleton->canCreate()) {
            return array();
        }

        if (!$this->buttonName) {
            // provide a default button name, can be changed by calling {@link setButtonName()} on this component
            $objectName = $singleton->i18n_singular_name();
            $this->buttonName = _t('GridField.Add', 'Add {name}', array('name' => $objectName));
        }

        $link = singleton('DMSDocumentAddController')->Link();
        if ($this->getDocumentSetId()) {
            $link = Controller::join_links($link, '?dsid=' . $this->getDocumentSetId());

            // Look for an associated page, but only share it if we're editing in a page context
            $set = DMSDocumentSet::get()->byId($this->getDocumentSetId());
            if ($set && $set->exists() && $set->Page()->exists()
                && Controller::curr() instanceof CMSPageEditController
            ) {
                $link = Controller::join_links($link, '?page_id=' . $set->Page()->ID);
            }
        }

        $data = new ArrayData(array(
            'NewLink' => $link,
            'ButtonName' => $this->buttonName,
        ));

        return array(
            $this->targetFragment => $data->renderWith('DMSGridFieldAddNewButton'),
        );
    }