2019-05-04 14:56:23 +00:00
|
|
|
class Property(object):
|
|
|
|
def __init__(self, value = None):
|
|
|
|
self.value = value
|
2019-05-05 13:51:33 +00:00
|
|
|
self.callbacks = []
|
2019-05-04 14:56:23 +00:00
|
|
|
def getValue(self):
|
|
|
|
return self.value
|
|
|
|
def setValue(self, value):
|
|
|
|
self.value = value
|
2019-05-05 13:51:33 +00:00
|
|
|
for c in self.callbacks:
|
|
|
|
c(self.value)
|
|
|
|
return self
|
|
|
|
def wire(self, callback):
|
|
|
|
self.callbacks.append(callback)
|
|
|
|
if not self.value is None: callback(self.value)
|
|
|
|
return self
|
2019-05-04 14:56:23 +00:00
|
|
|
|
|
|
|
class PropertyManager(object):
|
|
|
|
sharedInstance = None
|
|
|
|
@staticmethod
|
|
|
|
def getSharedInstance():
|
|
|
|
if PropertyManager.sharedInstance is None:
|
|
|
|
PropertyManager.sharedInstance = PropertyManager()
|
|
|
|
return PropertyManager.sharedInstance
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
self.properties = {}
|
|
|
|
|
|
|
|
def getProperty(self, name):
|
|
|
|
if not name in self.properties:
|
|
|
|
self.properties[name] = Property()
|
|
|
|
return self.properties[name]
|
2019-05-04 18:26:11 +00:00
|
|
|
|
|
|
|
def getPropertyValue(self, name):
|
|
|
|
return self.getProperty(name).getValue()
|