1 | class DataStore: |
---|
2 | def __init__(self, globals): |
---|
3 | self.options = {} |
---|
4 | self.state = {} |
---|
5 | self.globals = globals |
---|
6 | |
---|
7 | def handleEvent(self,event): |
---|
8 | action,params = event.split(':',1) |
---|
9 | print "Handling event %s" % event |
---|
10 | if(action == 'menu'): |
---|
11 | self.state['menu'] = params |
---|
12 | elif(action == 'mode'): |
---|
13 | self.state['mode'] = params |
---|
14 | self.closeAllMenus() |
---|
15 | elif(action == 'option'): |
---|
16 | method, name = params.split(':',1) |
---|
17 | if(method == 'toggle'): |
---|
18 | self.options[name] = not self.getOption(name) |
---|
19 | elif(method == 'add'): |
---|
20 | name,add = name.split(':') |
---|
21 | self.options[name] = self.getOption(name,0) + float(add) |
---|
22 | print "adding %f to %s, new = %s" % (float(add),name,str(self.getOption(name))) |
---|
23 | elif(action == 'route'): |
---|
24 | lat, lon = [float(ll) for ll in params.split(':',1)] |
---|
25 | transport = self.globals.modules['data'].getState('mode') |
---|
26 | self.globals.modules['route'].setStartLL(self.globals.ownpos[0],self.globals.ownpos[1], transport) |
---|
27 | self.globals.modules['route'].setEndLL(lat,lon,transport) |
---|
28 | self.globals.modules['route'].update() |
---|
29 | self.globals.forceRedraw() |
---|
30 | self.closeAllMenus() |
---|
31 | |
---|
32 | |
---|
33 | def closeAllMenus(self): |
---|
34 | self.setState('menu',None) |
---|
35 | |
---|
36 | def getState(self,name): |
---|
37 | return(self.state.get(name, None)) |
---|
38 | def setState(self,name,value): |
---|
39 | self.state[name] = value |
---|
40 | def getOption(self,name,default=None): |
---|
41 | return(self.options.get(name,default)) |
---|