> ## Documentation Index
> Fetch the complete documentation index at: https://fdm.furkankursav.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CRUD Operations

`AC_FDM_Component` manages the menu’s entries and their placements. It supports runtime operations such as:

* Add entries
* Remove entries
* Move entries to new locations
* Swap entry locations

Entries are standard `UObject` instances that implement the entry interface `BPI_FDM_Entry`. The component treats entries as **data + behavior providers**, while the UI is responsible for visualization.

#### Adding Entry

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image36.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=b6da0bce3c3a7dd663b7dc8978d0df5d" alt="image36" width="686" height="366" data-path="images/image36.png" />

When a new entry has been added, “On Entry Added” interface function gets called on SourceObject and the “OnNewEntryAdded(Added Entry)”  event gets triggered.

#### Removing Entry

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image37.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=c37ddfa1154642ae5f731347c28b11ac" alt="image37" width="751" height="326" data-path="images/image37.png" />

When you remove an entry, “On Entry Removed” interface function gets called and the “OnEntryPlacementsChanged(ChangedEntries)” event gets triggered.

#### Getting An Entry / Location

You can use some query functions for that.

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image38.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=bd0931200c29579f0e7ed65c59d7d6e2" alt="image38" width="1306" height="390" data-path="images/image38.png" />

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image39.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=a609f74e9b1a703ec9bcd712783967b4" alt="image39" width="496" height="243" data-path="images/image39.png" />

#### Changing An Entry’s Location

You can use “Move Entry To Location” to move an entry to a specific location. If there is already an entry in the new location, it will swap their locations automatically.

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image40.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=282488b3f10ad0dc248695efb41b55cf" alt="image40" width="803" height="332" data-path="images/image40.png" />

or you can swap 2 entry locations using “Swap Entry Locations” function.

<img src="https://mintcdn.com/furkankursav/YP7Pry4hmX6mpJYX/images/image41.png?fit=max&auto=format&n=YP7Pry4hmX6mpJYX&q=85&s=05271508b2fdce965076d0515d62e6b6" alt="image41" width="673" height="356" data-path="images/image41.png" />

When an entry’s location has been changed, “On Entry Placements Changed” event gets triggered
