Module bearbeiteanmerkung
[hide private]
[frames] | no frames]

Source Code for Module bearbeiteanmerkung

  1  # -*- coding: utf-8 -*- 
  2  # 
  3  # 
  4  #    filename:  bearbeiteanmerkung.py 
  5  # 
  6  #    version:   see wxvf.py 
  7  # 
  8  # 
  9  # ---------------------------------------------------------------------------------------- 
 10  # 
 11  # 
 12  #    Copyright (C) 2010, 2011  Michael Bellair 
 13  # 
 14  #    This file is part of wxvf. 
 15  # 
 16  #    wxvf is free software: you can redistribute it and/or modify 
 17  #    it under the terms of the GNU General Public License as published by 
 18  #    the Free Software Foundation, either version 3 of the License, or 
 19  #    (at your option) any later version. 
 20  # 
 21  #    wxvf is distributed in the hope that it will be useful, 
 22  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 23  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 24  #    GNU General Public License for more details. 
 25  # 
 26  #    You should have received a copy of the GNU General Public License 
 27  #    along with wxvf.  If not, see <http://www.gnu.org/licenses/>. 
 28  # 
 29  #    Michael Bellair 
 30  #    Sportplatzstrasse 11 
 31  #    01259 Dresden 
 32  # 
 33  #    E-Mail:    bellair@freenet.de 
 34  #    homepage:  http://vf.michaelbellair.de/index.html 
 35  # 
 36  # 
 37  # ---------------------------------------------------------------------------------------- 
 38  # 
 39  import wx 
 40   
 41  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
 42   
 43  from universal import allg                                      # Allgemeine Funktionen 
 44  from universal import zk                                        # Zeichenketten bearbeiten 
 45   
 46  from wxuniversal import FlexGridSizerWxObjTitel                 # wxObjekt mit Titel 
 47  from wxuniversal import CheckBoxErg                             # wx.CheckBox mit Ergänzungen 
 48  from wxuniversal import ComboBoxErg                             # wx.ComboBox mit Ergänzungen 
 49  from wxuniversal import DialogErg                               # wx.Dialog mit Ergänzungen 
 50  from wxuniversal import farbeAuswahlListe                       # Farbe der Objekte, die Vorgabewerte enthalten 
 51  from wxuniversal import farbeBearbeiten                         # Farbe der Objekte, die  bearbeitet werden können 
 52  from wxuniversal import ListBoxErg                              # wx.ListBox mit Ergänzungen 
 53  from wxuniversal import TreeCtrlErg                             # TreeCtrl mit Ergänzungen 
 54   
 55   
 56  # 
 57  # 
 58  # 
 59  # ---------------------------------------------------------------------------------------- 
 60  # ---------------------------------------------------------------------------------------- 
 61  # --                                    -------------------------------------------------- 
 62  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
 63  # --                                    -------------------------------------------------- 
 64  # ---------------------------------------------------------------------------------------- 
 65  # ---------------------------------------------------------------------------------------- 
 66  # 
 67  #  
 68  #       -- siehe TODO 'bearbeiteanmerkung.py' -- 
 69  # 
 70  # 
 71  # ---------------------------------------------------------------------------------------- 
 72  # 
 73   
 74   
 75   
 76  # 
 77  # ---------------------------------------------------------------------------------------- 
 78  # ---------------------------------------------------------------------------------------- 
 79  # --                                                    ---------------------------------- 
 80  # --    Eingabeformular 'Anmerkungen bearbeiten'        ---------------------------------- 
 81  # --                                                    ---------------------------------- 
 82  # ---------------------------------------------------------------------------------------- 
 83  # ---------------------------------------------------------------------------------------- 
 84  # 
85 -class BearbeiteAnmerkung( DialogErg ):
86 87 """ 88 Klasse zur Abbildung des Eingabeformulars 'Anmerkungen bearbeiten. 89 """ 90 91 # 92 # ------------------------------------------------------------------------------------ 93 # -- Eingabeformular initialisieren ---------------------------------- 94 # ------------------------------------------------------------------------------------ 95 #
96 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
97 DialogErg.__init__( self 98 , parent = parent 99 , title = u"Anmerkungen bearbeiten." 100 , dbVerbindung = dbVerbindung ) 101 102 # 103 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 104 # 105 self.SetName( name = "BearbeiteAnmerkung" ) 106 107 108 # 109 # -- Randbedingungen übernehmen ------------------------------------------ 110 # 111 self.__Notizen__ = Notizen 112 self.__Fortschritt__ = Fortschritt 113 self.__dbVerbindung__ = dbVerbindung 114 115 self.__aktPrjProjekteId__ = self.__dbVerbindung__.filter__prj_projekte_id 116 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__ 117 self.__istFlex__ = False 118 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt 119 120 121 122 # 123 # -------------------------------------------------------------------------------- 124 # -- Eingabeobjekte anlegen -------------------------------------------------- 125 # -------------------------------------------------------------------------------- 126 # 127 128 # 129 # -- Dem Gefahrenszenario zugeordnete Anmerkungen -------------------------- 130 # 131 self.ListBox__AnmerkungId = FlexGridSizerWxObjTitel( parent = self 132 , wxObj = ListBoxErg( self 133 , style = wx.BORDER_SUNKEN 134 , Notizen = self.__Notizen__ ) 135 , titel = u"Dem Gefahrenszenario zugeordnete Anmerkungen" 136 , orient = wx.VERTICAL ) 137 138 139 self.ListBox__AnmerkungId.wxObjekt.SetMinSize( ( 450, 500 ) ) 140 141 self.ListBox__AnmerkungId.wxObjekt.nimmWerteStatusleiste( 142 DBSpNameErlaeuterung = u"Anmerkungen / Randbedingungen zum aktuelle Gefahrenszenario." 143 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" ) 144 145 self.ListBox__AnmerkungId.wxObjekt.nimmTooltip( u"Doppelklick:\nVerbindung zwischen Anmerkung und Gefahrenszenario aufheben.\n\nF3:\nÜbersetzung der Anmerkung bearbeiten." ) 146 147 self.ListBox__AnmerkungId.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeBearbeiten ) ) 148 149 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK 150 , self.__ereignisAnmerkungLoesen__ ) 151 152 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_KEY_DOWN 153 , self.__ereignisAnmerkungBearbeiten__ ) 154 155 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_LISTBOX 156 , self.__ereignisNotizenAnzeigen__ ) 157 158 159 160 # 161 # -- Die Anmerkungen auf das Gefahrenszenario einschränken ------------------ 162 # 163 self.CheckBoxErg__NurGefszen = FlexGridSizerWxObjTitel( parent = self 164 , wxObj = CheckBoxErg( self 165 , Notizen = self.__Notizen__ ) 166 , titel = "Gefahrenszenario" 167 , orient = wx.VERTICAL ) 168 169 self.CheckBoxErg__NurGefszen.wxObjekt.nimmWerteStatusleiste( 170 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen auf das aktuelle Gefahrenszenario einschränken." 171 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" ) 172 173 self.CheckBoxErg__NurGefszen.wxObjekt.Bind( wx.EVT_CHECKBOX 174 , self.__ereignisLiesDBVerfAnm__ ) 175 176 177 # 178 # -- Die Anmerkungen auf das Projekt einschränken ------------------ 179 # 180 self.ComboBoxErg__Projekt = FlexGridSizerWxObjTitel( 181 parent = self 182 , wxObj = ComboBoxErg( self 183 , choices = [] 184 , style = wx.CB_DROPDOWN|wx.CB_READONLY|wx.CB_SORT 185 , Notizen = self.__Notizen__ ) 186 , orient = wx.VERTICAL 187 , titel = u"Projekt" ) 188 189 self.ComboBoxErg__Projekt.wxObjekt.nimmWerteStatusleiste( 190 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen auf das Projekt einschränken." 191 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" ) 192 193 self.ComboBoxErg__Projekt.wxObjekt.Bind( wx.EVT_COMBOBOX 194 , self.__ereignisLiesDBVerfAnm__ ) 195 196 197 198 199 # 200 # -- Vorhandene Anmerkungen - Id ------------------------------------------ 201 # 202 self.ListBoxErg__VerfAnmerkungen = FlexGridSizerWxObjTitel( parent = self 203 , wxObj = ListBoxErg( self 204 , style = wx.BORDER_SUNKEN 205 , Notizen = self.__Notizen__ ) 206 , titel = u"Anmerkungen" 207 , orient = wx.VERTICAL ) 208 209 self.ListBoxErg__VerfAnmerkungen.wxObjekt.SetMinSize( ( 450, 425 ) ) 210 211 self.ListBoxErg__VerfAnmerkungen.wxObjekt.nimmWerteStatusleiste( 212 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen." 213 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" ) 214 215 self.ListBoxErg__VerfAnmerkungen.wxObjekt.nimmTooltip( u"Doppelklick:\nAnmerkung in das Fenster 'Anmerkungen' schieben" ) 216 217 self.ListBoxErg__VerfAnmerkungen.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) ) 218 219 self.ListBoxErg__VerfAnmerkungen.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK 220 , self.__ereignisAnmerkungZuordnen__ ) 221 222 self.ListBoxErg__VerfAnmerkungen.wxObjekt.Bind( wx.EVT_LISTBOX 223 , self.__ereignisNotizenAnzeigen__ ) 224 225 226 227 # 228 # -- Layout festlegen ------------------ 229 # -- (Fenster später im >wx.SplitterWindow< darstellen ------------------ 230 231 # 232 # -- Selektionskriterien -------------------------------------------------- 233 # 234 FlexGridSizer_Selektionskrit = wx.FlexGridSizer( rows = 1, cols = 2, vgap = 0, hgap = 10 ) 235 236 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 1, proportion = 1 ) 237 238 FlexGridSizer_Selektionskrit.Add( self.CheckBoxErg__NurGefszen 239 , flag = wx.EXPAND ) 240 241 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Projekt 242 , flag = wx.EXPAND ) 243 244 245 # 246 # -- Titel, Selektionskriterien, Verf. Anmerkungen -------------------------- 247 # 248 FlexGridSizer_VerfAnm = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 10, hgap = 0 ) 249 250 FlexGridSizer_VerfAnm.AddGrowableCol( idx = 0, proportion = 1 ) 251 FlexGridSizer_VerfAnm.AddGrowableRow( idx = 2, proportion = 1 ) 252 253 FlexGridSizer_VerfAnm.Add( wx.StaticText( parent = self, label = "Verfügbare Anmerkungen" ) 254 , flag = wx.EXPAND ) 255 256 FlexGridSizer_VerfAnm.Add( FlexGridSizer_Selektionskrit 257 , flag = wx.EXPAND ) 258 259 FlexGridSizer_VerfAnm.Add( self.ListBoxErg__VerfAnmerkungen 260 , flag = wx.EXPAND ) 261 262 263 # 264 # -- Alles zusammenfügen -------------------------------------------------- 265 # 266 FlexGridSizer = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 0, hgap = 10 ) 267 268 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 269 FlexGridSizer.AddGrowableCol( idx = 1, proportion = 0 ) 270 FlexGridSizer.AddGrowableCol( idx = 2, proportion = 1 ) 271 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 ) 272 273 FlexGridSizer.Add( self.ListBox__AnmerkungId 274 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.BOTTOM 275 , border = 5 ) 276 277 FlexGridSizer.Add( wx.StaticLine( parent = self, style = wx.LI_VERTICAL ) 278 , flag = wx.EXPAND|wx.TOP|wx.BOTTOM 279 , border = 5 ) 280 281 FlexGridSizer.Add( FlexGridSizer_VerfAnm 282 , flag = wx.EXPAND|wx.RIGHT|wx.TOP|wx.BOTTOM 283 , border = 5 ) 284 285 286 # 287 # -- In das Eingabeformular übernehmen ---------------------------------- 288 # 289 self.nimmDialogElemente( FlexGridSizer ) 290 291 292 # 293 # -- 'Anmerkungen / Interne Notizen' -------------------------- 294 # -- 'Verfügbare Anmerkungen / Interne Notizen' -------------------------- 295 # 296 self.__dbVerbindung__.selektiere__prjProjekte( ComboBoxErg = self.ComboBoxErg__Projekt.wxObjekt ) 297 self.ComboBoxErg__Projekt.wxObjekt.selektiereWert( dbId = self.__aktPrjProjekteId__ ) 298 299 psAnmerkungId = None 300 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) : 301 302 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 303 304 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 305 TreeCtrlErg_ListBoxErg = self.ListBox__AnmerkungId.wxObjekt 306 , psAnmerkungId = psAnmerkungId ) 307 self.__ereignisLiesDBVerfAnm__() 308 309 310 # 311 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' deaktivieren -- 312 # 313 self.Button__Verwerfen.Enable( False ) 314 self.Button__Sichern.Enable( False ) 315 316 317 318 # 319 # -- Fenster zentrieren -------------------------------------------------- 320 # 321 self.CenterOnScreen()
322 323 324 325 326 # 327 # ------------------------------------------------------------------------------------ 328 # -- Anmerkung bearbeiten -------------------------------------------------- 329 # ------------------------------------------------------------------------------------ 330 #
331 - def __ereignisAnmerkungBearbeiten__( self, ereignis ):
332 """ 333 Methode die aufgerufen wird, wenn der Text der Sicherheitsanforderung bearbeitet werden soll. 334 335 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 336 @type ereignis: C{wx - Ereignisobjekt} 337 """ 338 339 # 340 # -- Ungültige Tastaturereignisse abfangen ---------------------------------- 341 # 342 if( not ereignis.GetKeyCode() == wx.WXK_F3 ) : return 343 if( ereignis.GetEventObject().GetSelection() == wx.NOT_FOUND ) : return 344 345 346 347 # 348 # -- Anmerkung übernehmen -------------------------------------------------- 349 # 350 ps_anmerkung_id = ereignis.GetEventObject().gibDbId() 351 352 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ).index( ps_anmerkung_id ) 353 354 spr_uebvar_id = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1] 355 notizen = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][3] 356 357 358 359 # 360 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 361 # 362 dlg = BearbeiteUebersetzung( parent = self 363 , Notizen = self.__Notizen__ 364 , Fortschritt = self.__Fortschritt__ 365 , dbVerbindung = self.__dbVerbindung__ 366 , sprUebvarId = spr_uebvar_id 367 , notizen_db = None 368 , notizenKontext_db = notizen ) 369 370 dlg.ShowModal() 371 dlg.Destroy() 372 373 374 375 # 376 # -- geänderte >spr.uebvar.id< bzw. >notizen< in -------------------------- 377 # -- >prj.pl_psgefanm< übernehmen -------------------------- 378 # 379 if( dlg.gibWerte()[0] 380 and ( dlg.gibWerte()[1] != spr_uebvar_id or dlg.gibWerte()[2] != notizen ) ) : 381 382 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__ 383 , listeWerte = [# 384 # -- ps_anmerkung_id ------- 385 # 386 ps_anmerkung_id 387 # 388 # -- spr_uebvar_id --------- 389 # 390 , dlg.gibWerte()[1] 391 # 392 # -- notizen --------------- 393 # 394 , dlg.gibWerte()[2] 395 # 396 # -- spr_uebvar_id (alt) --- 397 # 398 , spr_uebvar_id ] ) 399 400 self.__Fortschritt__.loescheFortschritt() 401 402 403 404 # 405 # -- 'Anmerkungen / Interne Notizen' aktualisieren -- 406 # -- 'Verfügbare Anmerkungen / Interne Notizen' aktualisieren -- 407 # 408 self.__spezAktionenVerwerfen__() 409 self.__ereignisLiesDBVerfAnm__() 410 411 412 413 # 414 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 415 # -- aktivieren, wenn eine Benutzeränderung vorliegt ------------------ 416 # 417 self.Button__Verwerfen.Enable( True ) 418 self.Button__Sichern.Enable( True ) 419 420 421 422 # 423 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 424 # -- ausgewertet werden kann -------------------------- 425 # 426 ereignis.Skip( skip = True )
427 428 429 430 431 # 432 # ------------------------------------------------------------------------------------ 433 # -- Anmerkung entfernen -------------------------------------------------- 434 # ------------------------------------------------------------------------------------ 435 #
436 - def __ereignisAnmerkungLoesen__( self, ereignis = None ):
437 """ 438 Anmerkung vom Gefahrenszenario lösen (entfernen). 439 440 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 441 @type ereignis: C{wx - Ereignisobjekt} 442 """ 443 444 # 445 # -- Anmerkung übernehmen -------------------------------------------------- 446 # 447 ps_anmerkung_id = ereignis.GetEventObject().gibDbId() 448 449 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ).index( ps_anmerkung_id ) 450 451 452 453 454 # 455 # -- Anmerkung in der Datenbank 'löschen' ---------------------------------- 456 # 457 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__ 458 , listeWerte = [# 459 # -- ps_anmerkung_id ------- 460 # 461 ps_anmerkung_id 462 # 463 # -- spr_uebvar_id --------- 464 # 465 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1] 466 # 467 # -- notizen --------------- 468 # 469 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][3] 470 # 471 # -- spr_uebvar_id (alt) --- 472 # 473 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1] ] 474 , logentfernt = 'true' ) 475 476 self.__Fortschritt__.loescheFortschritt() 477 478 479 480 # 481 # -- 'Anmerkungen / Interne Notizen' aktualisieren ---------- 482 # -- 'Verfügbare Anmerkungen / Interne Notizen' aktualisieren ---------- 483 # 484 self.__spezAktionenVerwerfen__() 485 self.__ereignisLiesDBVerfAnm__() 486 487 488 489 # 490 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' aktivieren ---------- 491 # 492 self.Button__Verwerfen.Enable( True ) 493 self.Button__Sichern.Enable( True ) 494 495 496 497 # 498 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 499 # -- ausgewertet werden kann -------------------------- 500 # 501 ereignis.Skip( skip = True )
502 503 504 505 506 507 # 508 # ------------------------------------------------------------------------------------ 509 # -- Anmerkung übernehmen -------------------------------------------------- 510 # ------------------------------------------------------------------------------------ 511 #
512 - def __ereignisAnmerkungZuordnen__( self, ereignis = None ):
513 """ 514 Anmerkung übernehmen 515 516 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 517 @type ereignis: C{wx - Ereignisobjekt} 518 """ 519 520 # 521 # -- >ps_anmerkung_id< nicht übernehmen, da bereits vorhanden ------------------ 522 # 523 ps_anmerkung_id = ereignis.GetEventObject().gibDbId() 524 525 if( allg.hatWert__List( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] 526 , pos = 0 527 , wert = ps_anmerkung_id ) ) : 528 529 dlg = wx.MessageDialog( self 530 , "Die dem Gefahrenszenario zuzuordnende Anmerkung ist bereits zugeordnet !\n\nSie wird dem Gefahrenszenario nicht zugeordnet." 531 , "Anmerkung ist bereits zugeordnet !" 532 , wx.OK | wx.ICON_INFORMATION ) 533 dlg.CenterOnScreen() 534 dlg.ShowModal() 535 dlg.Destroy() 536 537 return 538 539 540 541 # 542 # -- Werte zur Anmerkung übernehmen ------------------------------------------ 543 # 544 spr_uebvar_id = None 545 notizen = None 546 for gefSzen in self.__daten__GefszenId_AnmId__Sprache__Projekt__.values() : 547 548 for anm in gefSzen : 549 550 if( anm[0] == ps_anmerkung_id ) : 551 552 spr_uebvar_id = anm[1] 553 notizen = anm[3] 554 555 break 556 557 558 559 # 560 # -- Anmerkung in die Datenbank übernehmen ---------------------------------- 561 # 562 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__ 563 , listeWerte = [# 564 # -- ps_anmerkung_id ------- 565 # 566 ps_anmerkung_id 567 # 568 # -- spr_uebvar_id --------- 569 # 570 , spr_uebvar_id 571 # 572 # -- notizen --------------- 573 # 574 , notizen 575 # 576 # -- spr_uebvar_id (alt) --- 577 # 578 , spr_uebvar_id ] ) 579 580 self.__Fortschritt__.loescheFortschritt() 581 582 583 # 584 # -- 'Anmerkungen / Interne Notizen' aktualisieren ---------- 585 # -- 'Verfügbare Anmerkungen / Interne Notizen' aktualisieren ---------- 586 # 587 self.__spezAktionenVerwerfen__() 588 self.__ereignisLiesDBVerfAnm__() 589 590 591 # 592 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' aktivieren ---------- 593 # 594 self.Button__Verwerfen.Enable( True ) 595 self.Button__Sichern.Enable( True ) 596 597 598 # 599 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 600 # -- ausgewertet werden kann -------------------------- 601 # 602 ereignis.Skip( skip = True )
603 604 605 606 607 # 608 # ------------------------------------------------------------------------------------ 609 # -- Datenbank auslesen 'Vorhandene Anmerkungen' -------------------------- 610 # ------------------------------------------------------------------------------------ 611 #
612 - def __ereignisLiesDBVerfAnm__( self, ereignis = None, allesLesen = False ):
613 """ 614 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.CheckBox} 'Zeige alle Anmerkungen' die Datenbank ausgelesen werden muß. 615 616 @requires: Erst ist muß C{self.ListBox__AnmerkungId} gefüllt sein. 617 618 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 619 @type ereignis: C{wx - Ereignisobjekt} 620 621 @param allesLesen: Wenn C{True} angegeben wird, werden alle Anmerungen gelesen 622 @type allesLesen: C{wx - Ereignisobjekt} 623 """ 624 625 # 626 # -- Anmerkungen auslesen -------------------------------------------------- 627 # 628 liesAlles = allesLesen 629 if( ereignis != None ) : liesAlles = ereignis.GetEventObject().gibWert() 630 631 632 633 # 634 # -- Auf das gewählte Projekt einschränken ---------------------------------- 635 # 636 self.__istFlex__ = False 637 self.__aktPrjProjekteId__ = self.ComboBoxErg__Projekt.wxObjekt.gibDbId() 638 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt 639 640 if( self.__aktPrjProjekteId__ != self.__dbVerbindung__.filter__prj_projekte_id ) : 641 642 # 643 # -- perm. Datenstrukturen zum gewählten Projekt dann --------- 644 # -- einlesen, wenn Unterschied zum globalen Projekt --------- 645 # -- und zum letzten Projekt --------- 646 # 647 if( self.__aktPrjProjekteId__ != self.__letztesPrjProjekteId__ ) : 648 649 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__ 650 651 self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt_Flex.clear() 652 self.__dbVerbindung__.init__GefszenId_AnmId__Sprache__Projekt( 653 Fortschritt = self.__Fortschritt__ 654 , prjProjekteId = self.__aktPrjProjekteId__ ) 655 656 self.__Fortschritt__.loescheFortschritt() 657 658 659 # 660 # -- Flex setzen -------------------------------------------------- 661 # 662 self.__istFlex__ = True 663 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt_Flex 664 665 666 667 # 668 # -- Auf Gefahrenszenario einschränken ---------------------------------- 669 # 670 psAnmerkungId = None 671 if( self.CheckBoxErg__NurGefszen.wxObjekt.gibWert() 672 and self.__dbVerbindung__.ps_gefszenario_id in self.__daten__GefszenId_AnmId__Sprache__Projekt__ ) : 673 674 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__daten__GefszenId_AnmId__Sprache__Projekt__[self.__dbVerbindung__.ps_gefszenario_id] ) 675 676 677 678 # 679 # -- Verfügbare Anmerkungen anzeigen ---------------------------------- 680 # 681 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 682 TreeCtrlErg_ListBoxErg = self.ListBoxErg__VerfAnmerkungen.wxObjekt 683 , psAnmerkungId = psAnmerkungId 684 , istFlex = self.__istFlex__ ) 685 686 687 688 # 689 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 690 # -- ausgewertet werden kann -------------------------- 691 # 692 if( ereignis != None ) : 693 ereignis.Skip( skip = True )
694 695 696 697 698 # 699 # ------------------------------------------------------------------------------------ 700 # -- Notizen in der Statusleiste anzeigen ---------------------------------- 701 # ------------------------------------------------------------------------------------ 702 #
703 - def __ereignisNotizenAnzeigen__( self, ereignis ):
704 """ 705 Notizen in der Statusleiste anzeigen 706 707 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 708 @type ereignis: C{wx - Ereignisobjekt} 709 """ 710 711 # 712 # -- Notizen löschen -------------------------------------------------- 713 # 714 self.__Notizen__.TextCtrlErg__li.nimmWert( "" ) 715 716 717 718 # 719 # -- permanente Datenstruktur auswählen ---------------------------------- 720 # 721 daten__GefszenId_AnmId__Sprache__Projekt = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt 722 723 if( ereignis.GetId() == self.ListBoxErg__VerfAnmerkungen.wxObjekt.GetId() ) : 724 725 daten__GefszenId_AnmId__Sprache__Projekt = self.__daten__GefszenId_AnmId__Sprache__Projekt__ 726 727 728 729 # 730 # -- linker Bereich der Statusleiste -------------------------- 731 # 732 if( self.__dbVerbindung__.ps_gefszenario_id in daten__GefszenId_AnmId__Sprache__Projekt ) : 733 734 self.__Notizen__.TextCtrlErg__li.nimmWert( daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 735 736 737 738 # 739 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 740 # -- ausgewertet werden kann -------------------------- 741 # 742 if( ereignis != None ) : ereignis.Skip( skip = True )
743 744 745 746 # 747 # ------------------------------------------------------------------------------------ 748 # -- Besondere Aktivitäten des abgeleiteten Objektes beim schließen ---------- 749 # ------------------------------------------------------------------------------------ 750 #
751 - def __spezAktionenSchliessen__( self ):
752 """ 753 Methode die aufgerufen wird, wenn die dem Gefahrenszenario zugeordneten Anmerkungen-Id ausgelesen werden sollen. 754 """ 755 756 # 757 # -- Permanente Datenstruktur aus Datenbank auslesen ------------------ 758 # 759 self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt.clear() 760 self.__dbVerbindung__.init__GefszenId_AnmId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 761 762 self.__Fortschritt__.loescheFortschritt()
763 764 765 # 766 # ------------------------------------------------------------------------------------ 767 # -- Besondere Aktivitäten des abgeleiteten Objektes beim schließen ---------- 768 # ------------------------------------------------------------------------------------ 769 #
770 - def __spezAktionenVerwerfen__( self ):
771 """ 772 Methode die aufgerufen wird, wenn die dem Gefahrenszenario zugeordneten Anmerkungen-Id ausgelesen werden sollen. 773 """ 774 775 # 776 # -- Permanente Datenstruktur aus Datenbank auslesen ------------------ 777 # 778 self.__spezAktionenSchliessen__() 779 780 781 782 # 783 # -- dem Gefszenario zugeordn. Anmerkungen aktualisieren ------------------ 784 # 785 self.ListBox__AnmerkungId.wxObjekt.loescheAlles() 786 787 psAnmerkungId = None 788 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) : 789 790 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 791 792 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 793 TreeCtrlErg_ListBoxErg = self.ListBox__AnmerkungId.wxObjekt 794 , psAnmerkungId = psAnmerkungId )
795