* fix: Connect setLoaderVersion to loaderVersionsDropDown
Unconnected method slipped through testing.
Fixes#780
* fix: Prevent race runaway in VanillaPacksTab by filtering action events
The issue is that java swing is not designed for any real concurrency,
thus we need to filter the action events to only be ones produced by
the user.
* Update CHANGELOG.md
* Implement ViewModel for VanillaPacksTab using RxJava
Helps handle architecture in a better way.
Previous attempt using Kotlin caused numerous issues.
This is a rewrite of that, back into Java using RxJava.
There are a few issues with this commit.
A following commit will fix those.
* Fix broken loop in VanillaPacksTab
* Implement RxSwing into VanillaPacksViewModel
This fixes some computation issues with async.
Although, the only issue that remains is inconsistent version selection.
* Resolve selection mechanic issue in VanillaPacksTab
* Sort Quilt Before Fabric in VanillaPacksTab
Matching pattern with forge & legacy forge.
Newer -> Older, Left -> Right
* VanillaPacksViewModel: Fix quilt button being disabled on start
* VanillaPacksTab: Move quilt button to last
* VanillaPacksViewModel: Return empty instead of singleton for no loader
* VanillaPacksViewModel: Fix initial loaderType not being set
* VanillaPacksViewModel: Fix type column value
* VanillaPacksViewModel: Fix loader list accumulation
Caused by an improper Kotlin->Java conversion.
* VanillaPacksViewModel: Remove debug log from setName
* VanillaPacksTab: Fix text editing
This introduces cursor reset issues
* VanillaPacksTab: Fix text editing 2
* VanillaPacksTab: Fix quilt ordering
* PreservingCaretTextSetter: Fix out of bounds crashes
* VanillaPacksTab: Implement StatefulTextKeyAdapter for complex typing
I noticed that I could not use the arrow keys to select a range.
This fixes that.
* VanillaPacksTab: Expand StatefulTextKeyAdapter ignored keys
* VanillaPacksViewModel: Fix default field name/desc flashing
Essentially, two different threads were competing to set the values.
This commit solves the issue by relegating the task to the second task,
and then deduping the codebase.
* VanillaPacksViewModel: set loaderVersions to empty when none is selected