['loadTimesheetField', 200], CustomerMetaDisplayEvent::class => ['loadCustomerField', 200], ProjectMetaDisplayEvent::class => ['loadProjectField', 200], ActivityMetaDisplayEvent::class => ['loadActivityField', 200], UserPreferenceDisplayEvent::class => ['loadUserField', 200], ]; } public function loadTimesheetField(TimesheetMetaDisplayEvent $event): void { $event->addField($this->prepareEntity(new TimesheetMeta(), 'foo')); $event->addField($this->prepareEntity(new TimesheetMeta(), 'foo2')); } public function loadCustomerField(CustomerMetaDisplayEvent $event): void { $event->addField($this->prepareEntity(new CustomerMeta(), 'customer-foo')); } public function loadProjectField(ProjectMetaDisplayEvent $event): void { $event->addField($this->prepareEntity(new ProjectMeta(), 'project-foo')); $event->addField($this->prepareEntity(new ProjectMeta(), 'project-foo2')->setIsVisible(false)); } public function loadActivityField(ActivityMetaDisplayEvent $event): void { $event->addField($this->prepareEntity(new ActivityMeta(), 'activity-foo')); } public function loadUserField(UserPreferenceDisplayEvent $event): void { $event->addPreference(new UserPreference('mypref', 'hello world')); } private function prepareEntity(MetaTableTypeInterface $meta, string $name): MetaTableTypeInterface { return $meta ->setLabel('Working place') ->setName($name) ->setType(TextType::class) ->setIsVisible(true); } }