A concept implementation for using Elementa's State objects for storing values of properties.
I was inspired to do this PR from improving #25 . The ability to have multiple listeners/actions added in this PR would help getting that other PR ready.
Major changes in this PR:
PropertyValues are moved into their own file.
Vigilance's PropertyValues become deprecated.
PropertyValue#initialized and PropertyValue#writeDataToFile have been moved to PropertyData
Actions (that are ran when a value changes) have been internally replaced with State listeners.
Major difference is that there can now be multiple listeners. As a consequence, it will no longer allow you to remove one listener by setting another. More about this in a comment.
Button actions are no longer stored in callable property values. Rather, they are now ordinary value listeners. Listeners are invoked whenever a button is pressed.
Code of PropertyCollector#getProperty functions have been changed so that there would be less warnings caused by property values being deprecated.
Vigilant#registerListener functions were updated to use the PropertyCollector#getProperty function to find PropertyData instances. As a result, Vigilant#registerListener functions can now find more properties (instead of only Java field backed ones) and that code is cleaner.
All feedback is welcome. In the comments, I'll have a few things I especially want feedback on.
A concept implementation for using Elementa's
State
objects for storing values of properties.I was inspired to do this PR from improving #25 . The ability to have multiple listeners/actions added in this PR would help getting that other PR ready.
Major changes in this PR:
PropertyValue
s become deprecated.PropertyValue#initialized
andPropertyValue#writeDataToFile
have been moved toPropertyData
PropertyCollector#getProperty
functions have been changed so that there would be less warnings caused by property values being deprecated.Vigilant#registerListener
functions were updated to use thePropertyCollector#getProperty
function to findPropertyData
instances. As a result,Vigilant#registerListener
functions can now find more properties (instead of only Java field backed ones) and that code is cleaner.All feedback is welcome. In the comments, I'll have a few things I especially want feedback on.