source: subversion/applications/routing/pyroute/dataStore.py @ 5504

Last change on this file since 5504 was 5504, checked in by ojw, 12 years ago

storage of status, and action-handling

File size: 1.6 KB
Line 
1class 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))       
Note: See TracBrowser for help on using the repository browser.