Package Gnumed :: Package timelinelib :: Package wxgui :: Package dialogs :: Package eraseditor :: Module controller
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.wxgui.dialogs.eraseditor.controller

 1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg 
 2  # 
 3  # This file is part of Timeline. 
 4  # 
 5  # Timeline is free software: you can redistribute it and/or modify 
 6  # it under the terms of the GNU General Public License as published by 
 7  # the Free Software Foundation, either version 3 of the License, or 
 8  # (at your option) any later version. 
 9  # 
10  # Timeline is distributed in the hope that it will be useful, 
11  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
13  # GNU General Public License for more details. 
14  # 
15  # You should have received a copy of the GNU General Public License 
16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>. 
17   
18   
19  import wx 
20   
21  from timelinelib.canvas.data.era import Era 
22  from timelinelib.wxgui.dialogs.eraeditor.view import EraEditorDialog 
23  from timelinelib.wxgui.framework import Controller 
24   
25   
26 -class ErasEditorDialogController(Controller):
27
28 - def on_init(self, db, config):
29 self.db = db 30 self.config = config 31 self.eras = db.get_all_eras() 32 self.view.SetEras(self.eras) 33 self.editor_dialog = None
34
35 - def on_edit(self, evt):
36 self._edit(self.view.GetSelectedEra())
37
38 - def on_dclick(self, evt):
39 self._edit(self.view.GetSelectedEra())
40
41 - def on_add(self, evt):
42 self._operate_with_modal_dialog( 43 _("Add an Era"), 44 self._create_era(), 45 self._after_add 46 )
47
48 - def on_remove(self, evt):
49 era = self.view.GetSelectedEra() 50 if era in self.eras: 51 self.eras.remove(era) 52 self.view.RemoveEra(era) 53 self.db.delete_era(era)
54
55 - def _after_add(self, era):
56 self.eras.append(era) 57 self.view.AppendEra(era) 58 self.db.save_era(era)
59
60 - def _edit(self, era):
61 self._operate_with_modal_dialog( 62 _("Edit an Era"), 63 era, 64 self._after_edit 65 )
66
67 - def _after_edit(self, era):
68 self.view.UpdateEra(era) 69 self.db.save_era(era)
70
71 - def _create_era(self):
72 start = self.db.time_type.now() 73 end = start 74 return Era().update(start, end, "New Era")
75
76 - def _operate_with_modal_dialog(self, label, era, operation):
77 if self.editor_dialog is None: 78 self.set_editor_dialog(EraEditorDialog(self.view, label, self.db.time_type, self.config, era)) 79 dlg = self.editor_dialog 80 if dlg.ShowModal() == wx.ID_OK: 81 operation(era) 82 dlg.Destroy() 83 self.editor_dialog = None
84
85 - def set_editor_dialog(self, dialog):
86 """ 87 This function is used for test purposes only 88 """ 89 self.editor_dialog = dialog
90