Gnumed.timelinelib.wxgui.dialogs.eraseditor.controller

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