public function updateCMSFields(FieldList $fields)
 {
     if ($this->owner->ID <= 0) {
         return;
     }
     $p = $this->owner->Parent();
     $d = $this->owner->getParent();
     if (!($allSchemas = DataObject::get('MetadataSchema'))) {
         return;
     }
     $tabName = 'Root.Metadata';
     $rootTab = $fields->fieldByName('Root');
     $newFields = array(new HeaderField('MetadataInfoHeader', 'Metadata Information'), new MetadataSetField($this->owner, 'MetadataRaw'), new HeaderField('MetadataSchemasHeader', 'Metadata Schemas'), $linkedSchemas = new CheckboxSetField('MetadataSchemas', '', $allSchemas));
     $inherited = $this->getInheritedSchemas()->map('ID', 'ID');
     $linkedSchemas->setValue($this->getAttachedSchemas()->map('ID', 'ID'));
     $linkedSchemas->setDefaultItems($inherited);
     $linkedSchemas->setDisabledItems($inherited);
     $canApply = $this->owner->extendedCan('canApplySchemas', Member::currentUser());
     if ($canApply === false) {
         $linkedSchemas->setDisabled(true);
     }
     if ($this->owner->hasExtension('Hierarchy')) {
         $newFields[] = new LiteralField('SchemaAppliedToChildrenNote', '<p>Any metadata schemas selected will also be applied to this' . " item's children.</p>");
     }
     if (!$rootTab) {
         foreach ($newFields as $f) {
             $fields->push($f);
         }
     } else {
         $fields->addFieldsToTab($tabName, $newFields);
     }
 }