code: public function handle(BuildDataDefinitionEvent $event)
      {
          if (($event->getContainer()->getName() !== 'tl_metamodel_dcasetting')) {
              return;
          }
  
          $palettes = $event->getContainer()->getPalettesDefinition();
          $legend   = null;
  
          $subSelectPalettes = $this->getSubSelectPalettes();
          foreach ($palettes->getPalettes() as $palette) {
              $condition = new PropertyValueCondition('dcatype', 'attribute');
              $legend    = $this->getLegend('functions', $palette, $legend);
              $property  = $this->getProperty('readonly', $legend);
              $this->addCondition($property, $condition);
              $legend   = $this->getLegend('title', $palette, $legend);
              $property = $this->getProperty('attr_id', $legend);
              $this->addCondition($property, $condition);
  
              $condition = new PropertyValueCondition('dcatype', 'legend');
              $legend    = $this->getLegend('title', $palette);
              $property  = $this->getProperty('legendtitle', $legend);
  
              $this->addCondition($property, $condition);
              $property = $this->getProperty('legendhide', $legend);
              $this->addCondition($property, $condition);
  
              foreach ($subSelectPalettes as $typeName => $paletteInfo) {
                  foreach ($paletteInfo as $legendName => $properties) {
                      foreach ($properties as $propertyName) {
                          $condition = new AttributeByIdIsOfType($typeName, $this->connection, 'attr_id');
                          $legend    = $this->getLegend($legendName, $palette);
                          $property  = $this->getProperty($propertyName, $legend);
                          $this->addCondition($property, $condition);
                      }
                  }
              }
          }
      }
docs: Build the data definition palettes.
  
  @param BuildDataDefinitionEvent $event The event.
  
  @return void