def __init__(self, myVrp, mySolutions, myStyleSheet, redirect=False, filename=None): wx.App.__init__(self, redirect, filename) # initialize gui config guiconfig.initializeConfig() # load the favourite layout if there exists one layout = guiconfig.loadFavouriteLayout() # list of all open frames (useful for saving layout) self.openFrames = [] # all events that can reach this object self.Bind(events.EVT_QUIT, lambda(e): self.quitApp()) self.Bind(events.EVT_SAVE_SESSION, lambda e: self.saveSession()) self.Bind(events.EVT_LOAD_SESSION, lambda e: self.loadSession()) self.Bind(events.EVT_LOAD_DATA, self.loadDataEventHandler) self.Bind(events.EVT_REGISTER_FRAME, self.registerFrame) self.Bind(events.EVT_UNREGISTER_FRAME, self.unregisterFrame) self.Bind(events.EVT_PREFERENCES, setPreferences) # if a previous session must be restored, restore it if myVrp is None and os.path.exists(guiconfig.lastSessionFileName): try: self.loadSession(guiconfig.lastSessionFileName) # if for some reason (e.g. tampered or incorrect session file) # loading the session did not lead to opening windows, consider # it a failure if len(self.openFrames) > 0: return except Exception as e: print 'Unable to load session:', \ guiconfig.lastSessionFileName print e #, dir(e) self.loadData(myVrp, mySolutions, myStyleSheet)
def __init__(self, myVrp, mySolutions, myStyleSheet, redirect=False, filename=None): wx.App.__init__(self, redirect, filename) # initialize gui config guiconfig.initializeConfig() # load the favourite layout if there exists one layout = guiconfig.loadFavouriteLayout() # list of all open frames (useful for saving layout) self.openFrames = [] # all events that can reach this object self.Bind(events.EVT_QUIT, lambda (e): self.quitApp()) self.Bind(events.EVT_SAVE_SESSION, lambda e: self.saveSession()) self.Bind(events.EVT_LOAD_SESSION, lambda e: self.loadSession()) self.Bind(events.EVT_LOAD_DATA, self.loadDataEventHandler) self.Bind(events.EVT_REGISTER_FRAME, self.registerFrame) self.Bind(events.EVT_UNREGISTER_FRAME, self.unregisterFrame) self.Bind(events.EVT_PREFERENCES, setPreferences) # if a previous session must be restored, restore it if myVrp is None and os.path.exists(guiconfig.lastSessionFileName): try: self.loadSession(guiconfig.lastSessionFileName) # if for some reason (e.g. tampered or incorrect session file) # loading the session did not lead to opening windows, consider # it a failure if len(self.openFrames) > 0: return except Exception as e: print 'Unable to load session:', \ guiconfig.lastSessionFileName print e #, dir(e) self.loadData(myVrp, mySolutions, myStyleSheet)
def loadLayout(self, event): if event.GetId() == 303: wildcard='Layout files (*.layout)|*.layout' fileSelector = wx.FileDialog(self, message="Save layout", defaultDir=guiconfig.guiConfigDir, style=wx.FD_OPEN, wildcard=wildcard) if fileSelector.ShowModal() == wx.ID_OK: files = fileSelector.GetPaths() fName = str(files[0]) self.setLayout(guiconfig.loadLayout(fName)) fileSelector.Destroy() elif event.GetId() == 304: self.setLayout(guiconfig.loadFavouriteLayout())
def loadLayout(self, event): if event.GetId() == 303: wildcard = 'Layout files (*.layout)|*.layout' fileSelector = wx.FileDialog(self, message="Save layout", defaultDir=guiconfig.guiConfigDir, style=wx.FD_OPEN, wildcard=wildcard) if fileSelector.ShowModal() == wx.ID_OK: files = fileSelector.GetPaths() fName = str(files[0]) self.setLayout(guiconfig.loadLayout(fName)) fileSelector.Destroy() elif event.GetId() == 304: self.setLayout(guiconfig.loadFavouriteLayout())
def loadData(self, myVrp, mySolutions, myStyleSheet, position=None): if myVrp is None: myVrp, mySolutions, myStyleSheet = loadDataInteractively() # TODO: check that modifying the stylesheet won't modify styles on # other already open frames # HINT: it will, a deep copy must be performed # open the data in a new frame if not myVrp is None: # load the favourite layout if there exists one layout = guiconfig.loadFavouriteLayout() # open the data in a new window frame = vrpframe.VrpFrame(None, myVrp, mySolutions, myStyleSheet, layout) if not position is None: frame.SetPosition(position) else: # case where nothing is opened # in case there is no open window: exit appplication if self.openFrames == []: self.quitApp()