- add CSV writer for individual students
- support sequential writing of student lists
- preserve existing CSV data and avoid duplicate headers
- reject missing files with IOException
- add bubble and merge sort algorithm selection
- add SortStrategySelectionWindow
- apply selected strategy to normal and parity sorting
- use dedicated comparators for student fields
- remove obsolete EvenOnlyMergeSortStrategy
- update collection menu labels and TODO placeholders
- move MainMenu to the root ui package
- add CurrentCollectionMenu for current collection operations
- move sorting components under collection/sorting
- add CollectionFileSaveWindow for saving collections to file
- update imports and menu delegation
- remove custom data collection and file path from AppState
- add FillStrategy abstraction for collection creation
- add ManualFillSettings and ManualFillStrategy
- add FileFillSettings and FileFillStrategy
- move collection size input into reusable CollectionSizeInputWindow
- update ManualDataSettingsWindow to manage its own editing state
- rename window base class usage to BaseModalWindow and update modal method calls
- add persistent CustomDataSettingsWindow instance to CreateCollectionMenu
- prepare custom data collection dynamically before showing the settings window
- apply custom data to AppState without immediately replacing mainCollection
- create mainCollection from prepared custom student data
- replace student preview message with collection preview window
- update input validation and StudentBuilder state handling
- rename collection-related methods and variables for clearer semantics
Add support for storing and configuring custom student data
collections in AppState.
Introduce a custom data settings window for entering and validating
student fields, selecting an object index, previewing student data,
and applying prepared data to the current collection.
Refactor collection creation to use reusable input handling and
update collection display and message window usage.