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

Source Code for Module risikoanalyse

   1  # -*- coding: utf-8 -*- 
   2  # 
   3  # 
   4  #    filename:  risikoanalyse.py 
   5  # 
   6  #    version:   see wxvf.py 
   7  # 
   8  # 
   9  # ---------------------------------------------------------------------------------------- 
  10  # 
  11  # 
  12  #    Copyright (C) 2010  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://freenet-homepage.de/bellair/vf/index.html 
  35  # 
  36  # 
  37  # ---------------------------------------------------------------------------------------- 
  38  # 
  39  import wx 
  40   
  41  from bearbeiteanmerkung import BearbeiteAnmerkung               # Eingabeformular für Anmerkungen 
  42  from bearbeitesicherheitsanf import BearbeiteSicherheitsanf     # Eingabeformular für PSAnf 
  43  from bearbeitestrukturen import BearbeiteStrukturen             # Dialog 'Strukturen bearbeiten' 
  44   
  45  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
  46  from bearbeiteuebersetzung import BearbeiteUebersetzungNeu      # Eingabeformular für Übersetzungen 
  47   
  48  from universal import zk                                        # Zeichenketten bearbeiten 
  49   
  50  from wxuniversal import FlexGridSizerWxObjTitel         # wxObjekt mit Titel 
  51  from wxuniversal import ComboBoxErg                     # wx.ComboBox mit Ergänzungen 
  52  from wxuniversal import farbeBearbeiten                 # Farbe der Objekte, die  bearbeitet werden können 
  53  from wxuniversal import ListBoxErg                      # wx.ListBox mit Ergänzungen 
  54  from wxuniversal import ListBoxSpWTitelAL               # ListBox im SplitterWindow m. Titel + AW-Liste 
  55  from wxuniversal import ListBoxSpWTitelSync             # ListBox im SplitterWindow m. Titel + sync. Eint. 
  56  from wxuniversal import ListBoxSpWTitelUnabh            # ListBox im SplitterWindow m. Titel+unabh. Eint. 
  57  from wxuniversal import MultiMenu                       # Menüs mit 'automatischen' Id's 
  58  from wxuniversal import TextCtrlAuswStatisch            # wx.StaticText mit Auswahlliste 
  59  from wxuniversal import SiAnfStrktDok                   # Eingabeformular für Sicherheitsanforderungen 
  60  from wxuniversal import TextCtrlErg                     # wx.TextCtrl mit Ergänzungen 
  61  from wxuniversal import TextCtrlSpWTitel                # TextCtrl im SplitterWindow mit Titel 
  62  from wxuniversal import TreeCtrlErg                     # TreeCtrl mit Ergänzungen 
  63   
  64   
  65   
  66  # 
  67  # 
  68  # 
  69  # ---------------------------------------------------------------------------------------- 
  70  # ---------------------------------------------------------------------------------------- 
  71  # --                                    -------------------------------------------------- 
  72  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
  73  # --                                    -------------------------------------------------- 
  74  # ---------------------------------------------------------------------------------------- 
  75  # ---------------------------------------------------------------------------------------- 
  76  # 
  77  #  
  78  #       -- siehe TODO 'risikoanalyse.py' -- 
  79  # 
  80  # 
  81  # ---------------------------------------------------------------------------------------- 
  82  # 
  83   
  84   
  85   
  86  # 
  87  # ---------------------------------------------------------------------------------------- 
  88  # ---------------------------------------------------------------------------------------- 
  89  # --                                    -------------------------------------------------- 
  90  # --    Eingabeformular 'Risikoanalyse' -------------------------------------------------- 
  91  # --                                    -------------------------------------------------- 
  92  # ---------------------------------------------------------------------------------------- 
  93  # ---------------------------------------------------------------------------------------- 
  94  # 
95 -class Risikoanalyse( wx.ScrolledWindow ):
96 97 """ 98 Klasse zur Abbildung des Eingabeformulars 'Risikoanalyse' 99 100 @keyword parent: Es ist der Datenbankbenutzername zu übergeben. 101 @type parent: Zeichenkette 102 @keyword id: Es ist das Kennwort des Datenbankbenutzers zu übergeben. 103 @type id: Zeichenkette 104 @keyword size: Es ist die IP-Adresse anzugeben, über die der PostgreSQL-Datenbankserver ansprechbar ist. 105 @type size: Zeichenkette 106 107 @raise Fehler: ?? Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. ?? 108 """ 109 110 # 111 # ------------------------------------------------------------------------------------ 112 # -- Eingabeformular initialisieren ---------------------------------- 113 # ------------------------------------------------------------------------------------ 114 #
115 - def __init__( self, parent, Statusleiste, dbVerbindung, prjProjekteId, sprSprachenId, psGefszenarioId, id = -1, size = wx.DefaultSize ):
116 wx.ScrolledWindow.__init__( self, parent, id, (0, 0), size=size ) 117 118 119 # 120 # -- Vorgabewerte für ScrolledWindow ------------------------------------------ 121 # 122 self.SetScrollRate( 20, 20 ) 123 self.EnableScrolling( True, True ) 124 125 126 # 127 # -- Statusleiste übernehmen -------------------------------------------------- 128 # 129 self.Statusleiste = Statusleiste 130 131 132 # 133 # -- Datenbankwerte übernehmen (im Konstruktor werden sie nur zum Füllen der 134 # -- Auswahllisten benötigt ) 135 # 136 self.dbVerbindung = dbVerbindung 137 self.prjProjekteId = prjProjekteId 138 self.sprSprachenId = sprSprachenId 139 self.psGefszenarioId = psGefszenarioId 140 141 self.txtUebersetzung = u"Doppelklick:\nÜbersetzungen anzeigen/bearbeiten" 142 143 self.str_name_id___gefahrennetz = 2 144 145 146 147 # 148 # -------------------------------------------------------------------------------- 149 # -- Eingabeobjekte anlegen -------------------------------------------------- 150 # -------------------------------------------------------------------------------- 151 # 152 153 # 154 # -- Enthalten im Gefahrennetz ------------------------------------------ 155 # -- Objekt-Id = -230 ------------------------------------------ 156 # 157 self.ListBoxAL__GefNetz = ListBoxSpWTitelAL( parent = self 158 , titel = "Enthalten im Gefahrennetz:" 159 , minSize = ( -1, 150 ) 160 , orient = wx.VERTICAL 161 , Statusleiste = self.Statusleiste 162 , dbVerbindung = self.dbVerbindung ) 163 164 # Es muß mindestens ein Element ausgewählt sein ! 165 self.ListBoxAL__GefNetz.ListBoxLiDarfLeerSein = False 166 167 self.ListBoxAL__GefNetz.SplitterWindow.SetSashPosition( 250 ) 168 169 self.ListBoxAL__GefNetz.ListBox__li.statusLeisteDBSpNameErlaeuterung = """Welcher Gefahr ist das Gefahrenszenario zugeordnet ?""" 170 self.ListBoxAL__GefNetz.ListBox__re.statusLeisteDBSpNameErlaeuterung = self.ListBoxAL__GefNetz.ListBox__li.statusLeisteDBSpNameErlaeuterung 171 172 173 174 # 175 # -- Gefährdete Personen ------------------------------------------ 176 # -- Objekt-Id = -235 ------------------------------------------ 177 # 178 self.ListBoxAL__GefPersonen = ListBoxSpWTitelAL( parent = self 179 , titel = "Gefährdete Personen:" 180 , minSize = ( -1, -1 ) 181 , orient = wx.VERTICAL 182 , Statusleiste = self.Statusleiste 183 , dbVerbindung = self.dbVerbindung ) 184 185 self.ListBoxAL__GefPersonen.SplitterWindow.SetSashPosition( 200 ) 186 187 self.ListBoxAL__GefPersonen.ListBox__li.statusLeisteDBSpNameErlaeuterung = """Welche Personen sind vom Gefahrenszenario unmittelbar betroffen ?""" 188 self.ListBoxAL__GefPersonen.ListBox__li.statusLeisteDBSpNameErlaeuterung = self.ListBoxAL__GefPersonen.ListBox__li.statusLeisteDBSpNameErlaeuterung 189 190 191 192 # 193 # -- Gefahrenszenario / Interne Notizen zum Gefahrenszenario ---------- 194 # -- Objekt-Id = -241 / -243 ---------- 195 # 196 self.ListBox__GefSzen = FlexGridSizerWxObjTitel( parent = self 197 , wxObj = ListBoxErg( self 198 , size = ( -1, 100 ) 199 , style = wx.BORDER_SUNKEN | wx.LB_SORT 200 , Statusleiste = self.Statusleiste 201 , dbVerbindung = self.dbVerbindung ) 202 , titel = "Gefahrenszenario / Interne Notizen zum Gefahrenszenario:" 203 , orient = wx.VERTICAL ) 204 205 self.ListBox__GefSzen.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 206 207 self.ListBox__GefSzen.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Allgemeine Beschreibung des Gefahrenszenarios.""" 208 209 self.ListBox__GefSzen.wxObjekt.SetToolTip( wx.ToolTip( self.txtUebersetzung ) ) 210 211 self.Bind( wx.EVT_LISTBOX_DCLICK 212 , self.__ereignisUebersezung__ 213 , self.ListBox__GefSzen.wxObjekt ) 214 215 216 217 # 218 # -- Anmerkungen zum Gefahrenszenario / Interne Notizen zu den Anmerkungen -- 219 # -- Objekt-Id = -248 / -249 -- 220 # 221 self.ListBox__GefAnm = FlexGridSizerWxObjTitel( parent = self 222 , wxObj = ListBoxErg( self 223 , size = ( -1, 150 ) 224 , style = wx.BORDER_SUNKEN | wx.LB_SORT 225 , Statusleiste = self.Statusleiste 226 , dbVerbindung = self.dbVerbindung ) 227 , titel = "Anmerkungen zum Gefahrenszenario / Interne Notizen zu den Anmerkungen:" 228 , orient = wx.VERTICAL ) 229 230 self.ListBox__GefAnm.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 231 232 self.ListBox__GefAnm.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Anmerkungen / Randbedingungen zum Gefahrenszenario.""" 233 234 self.ListBox__GefAnm.wxObjekt.SetToolTip( wx.ToolTip( "Doppelklick:\nAnmerkungen bearbeiten" ) ) 235 236 self.Bind( wx.EVT_LISTBOX_DCLICK 237 , self.__ereignisAnmerkungen__ 238 , self.ListBox__GefAnm.wxObjekt ) 239 240 241 # 242 # -- technische Maßnahme zur Risikominderung ------------------ 243 # -- Anforderungen an Prüfungen, Dokumentation, ... ------------------ 244 # -- Objekt-Id = -255 / -256 ------------------ 245 # 246 self.TreeCtrlErg__PSAnfId = FlexGridSizerWxObjTitel( parent = self 247 , wxObj = TreeCtrlErg( self 248 , Statusleiste = self.Statusleiste 249 , dbVerbindung = self.dbVerbindung ) 250 , titel = "Sicherheitsanforderungen:" 251 , orient = wx.VERTICAL ) 252 253 self.TreeCtrlErg__PSAnfId.wxObjekt.SetMinSize( ( -1, 300 ) ) 254 255 self.TreeCtrlErg__PSAnfId.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Technisch/Organisatorische Maßnahmen zur Risikominderung.""" 256 257 self.TreeCtrlErg__PSAnfId.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 258 259 self.TreeCtrlErg__PSAnfId.wxObjekt.SetToolTip( wx.ToolTip( """Doppelklick:\tSicherheitsanforderungen bearbeiten""" ) ) 260 261 self.Bind( wx.EVT_TREE_SEL_CHANGED 262 , self.__ereignisSiAnfNavigation__ 263 , self.TreeCtrlErg__PSAnfId.wxObjekt ) 264 265 self.Bind( wx.EVT_TREE_ITEM_ACTIVATED 266 , self.__ereignisSiAnf__ 267 , self.TreeCtrlErg__PSAnfId.wxObjekt ) 268 269 270 # 271 # -- Zugeordnete Strukturpunkte, Dokumente / ------------------ 272 # -- Interne Notizen zu den Strukturpunkten, Dokumenten ------------------ 273 # -- Objekt-Id = - ------------------ 274 # 275 self.SiAnfStrktDok__Zugeordnet = SiAnfStrktDok( parent = self 276 , varId = 2 277 , Statusleiste = self.Statusleiste 278 , dbVerbindung = self.dbVerbindung 279 , prjProjekteId = self.prjProjekteId 280 , sprSprachenId = self.sprSprachenId 281 , psGefszenarioId = self.psGefszenarioId ) 282 283 self.SiAnfStrktDok__Zugeordnet.TreeCtrlErg__Id.wxObjekt.SetBackgroundColour( self.GetBackgroundColour() ) 284 285 self.SiAnfStrktDok__Zugeordnet.SetMinSize( ( -1, 300 ) ) 286 287 288 289 # 290 # -- Repräsentatives Gefahrenszenario ---------------------------------- 291 # -- Objekt-Id = -265 ---------------------------------- 292 # 293 self.ListBox__ReprGefSzen = FlexGridSizerWxObjTitel( parent = self 294 , wxObj = ListBoxErg( self 295 , size = ( -1, 100 ) 296 , style = wx.BORDER_SUNKEN | wx.LB_SORT 297 , Statusleiste = self.Statusleiste 298 , dbVerbindung = self.dbVerbindung ) 299 , titel = "Repräsentatives Gefahrenszenario:" 300 , orient = wx.VERTICAL ) 301 302 self.ListBox__ReprGefSzen.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 303 304 self.ListBox__ReprGefSzen.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Beschreibung des mit dem größten Risiko verbundenen Gefahrenszenarios (wenn mehrere möglich sind).""" 305 306 self.ListBox__ReprGefSzen.wxObjekt.SetToolTip( wx.ToolTip( self.txtUebersetzung ) ) 307 308 self.Bind( wx.EVT_LISTBOX_DCLICK 309 , self.__ereignisUebersezung__ 310 , self.ListBox__ReprGefSzen.wxObjekt ) 311 312 313 314 # 315 # -- Häufigkeit ------------------------------------------ 316 # -- Objekt-Id = -268 / -272 / -274 ------------------------------------------ 317 # 318 self.ComboBox__Haeufig = FlexGridSizerWxObjTitel( parent = self 319 , wxObj = ComboBoxErg( self 320 , choices = [] 321 , style = wx.CB_DROPDOWN|wx.CB_READONLY 322 , Statusleiste = self.Statusleiste 323 , dbVerbindung = self.dbVerbindung ) 324 , orient = wx.VERTICAL 325 , titel = "Häufigkeit:" ) 326 327 self.ComboBox__Haeufig.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Häufigkeit des repräsentativen Gefahrenszenarios.""" 328 329 self.Bind( wx.EVT_COMBOBOX 330 , self.__ereignisRisikobewertung__ 331 , self.ComboBox__Haeufig.wxObjekt ) 332 333 334 335 self.ListBox__HaeufigBegr = FlexGridSizerWxObjTitel( parent = self 336 , wxObj = ListBoxErg( self 337 , size = ( -1, 100 ) 338 , style = wx.BORDER_SUNKEN | wx.LB_SORT 339 , Statusleiste = self.Statusleiste 340 , dbVerbindung = self.dbVerbindung ) 341 , titel = "Begründung der Häufigkeit / Interne Notizen zur Häufigkeit:" 342 , orient = wx.VERTICAL ) 343 344 self.ListBox__HaeufigBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 345 346 self.ListBox__HaeufigBegr.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?""" 347 348 self.ListBox__HaeufigBegr.wxObjekt.SetToolTip( wx.ToolTip( self.txtUebersetzung ) ) 349 350 self.Bind( wx.EVT_LISTBOX_DCLICK 351 , self.__ereignisUebersezung__ 352 , self.ListBox__HaeufigBegr.wxObjekt ) 353 354 355 356 # 357 # -- Gefahrenstufe ------------------------------------------ 358 # -- Objekt-Id = -277 / -281 / -283 ------------------------------------------ 359 # 360 self.ComboBox__GefStufe = FlexGridSizerWxObjTitel( parent = self 361 , wxObj = ComboBoxErg( self 362 , choices = [] 363 , style = wx.CB_DROPDOWN|wx.CB_READONLY 364 , Statusleiste = self.Statusleiste 365 , dbVerbindung = self.dbVerbindung ) 366 , orient = wx.VERTICAL 367 , titel = "Gefahrenstufe:" ) 368 369 self.ComboBox__GefStufe.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Auswirkung des repräsentativen Gefahrenszenarios.""" 370 371 self.ComboBox__GefStufe.wxObjekt.Bind( wx.EVT_COMBOBOX, self.__ereignisRisikobewertung__ ) 372 373 374 375 self.ListBox__GefStufeBegr = FlexGridSizerWxObjTitel( parent = self 376 , wxObj = ListBoxErg( self 377 , size = ( -1, 100 ) 378 , style = wx.BORDER_SUNKEN | wx.LB_SORT 379 , Statusleiste = self.Statusleiste 380 , dbVerbindung = self.dbVerbindung ) 381 , titel = "Begründung der Häufigkeit / Interne Notizen zur Häufigkeit:" 382 , orient = wx.VERTICAL ) 383 384 self.ListBox__GefStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 385 386 self.ListBox__GefStufeBegr.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?""" 387 388 self.ListBox__GefStufeBegr.wxObjekt.SetToolTip( wx.ToolTip( self.txtUebersetzung ) ) 389 390 self.Bind( wx.EVT_LISTBOX_DCLICK 391 , self.__ereignisUebersezung__ 392 , self.ListBox__GefStufeBegr.wxObjekt ) 393 394 395 # 396 # -- Risikostufe ------------------------------------------ 397 # -- Objekt-Id = -286 / -290 / -292 ------------------------------------------ 398 # 399 self.TCASRisikostufe = FlexGridSizerWxObjTitel( parent = self 400 , wxObj = TextCtrlAuswStatisch( 401 parent = self 402 , size = ( -1, -1 ) 403 , Statusleiste = self.Statusleiste 404 , dbVerbindung = self.dbVerbindung ) 405 , orient = wx.VERTICAL 406 , titel = "Risikostufe:" ) 407 408 self.TCASRisikostufe.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Das resultierende Risiko des repräsentativen Gefahrenszenarios.""" 409 410 411 412 self.ListBox__RisikoStufeBegr = FlexGridSizerWxObjTitel( parent = self 413 , wxObj = ListBoxErg( self 414 , size = ( -1, 100 ) 415 , style = wx.BORDER_SUNKEN | wx.LB_SORT 416 , Statusleiste = self.Statusleiste 417 , dbVerbindung = self.dbVerbindung ) 418 , titel = "Begründung der Häufigkeit / Interne Notizen zur Häufigkeit:" 419 , orient = wx.VERTICAL ) 420 421 self.ListBox__RisikoStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 422 423 self.ListBox__RisikoStufeBegr.wxObjekt.statusLeisteDBSpNameErlaeuterung = """Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?""" 424 425 self.ListBox__RisikoStufeBegr.wxObjekt.SetToolTip( wx.ToolTip( self.txtUebersetzung ) ) 426 427 self.Bind( wx.EVT_LISTBOX_DCLICK 428 , self.__ereignisUebersezung__ 429 , self.ListBox__RisikoStufeBegr.wxObjekt ) 430 431 432 433 434 # 435 # -------------------------------------------------------------------------------- 436 # -- Layout setzen ---------------------------------------------------------- 437 # -------------------------------------------------------------------------------- 438 # 439 440 # 441 # -- Hilfslayout ---------------------------------------------------------- 442 # 443 GridSizer = wx.GridSizer( rows = 1, cols = 2, vgap = 0, hgap = 10 ) 444 445 GridSizer.Add( self.ListBoxAL__GefNetz 446 , flag = wx.EXPAND ) 447 448 GridSizer.Add( self.ListBoxAL__GefPersonen 449 , flag = wx.EXPAND ) 450 451 452 GridBagSizer = wx.GridBagSizer( vgap = 10, hgap = 10 ) 453 GridBagSizer.AddGrowableCol( idx = 1, proportion = 1 ) 454 GridBagSizer.AddGrowableRow( idx = 1, proportion = 1 ) 455 GridBagSizer.AddGrowableRow( idx = 3, proportion = 1 ) 456 GridBagSizer.AddGrowableRow( idx = 5, proportion = 1 ) 457 458 GridBagSizer.Add( self.ComboBox__Haeufig 459 , pos = wx.GBPosition( row = 0, col = 0 ) 460 , flag = wx.EXPAND ) 461 462 GridBagSizer.Add( self.ListBox__HaeufigBegr 463 , pos = wx.GBPosition( row = 0, col = 1 ) 464 , span = wx.GBSpan( rowspan = 2, colspan = 1 ) 465 , flag = wx.EXPAND ) 466 467 # -- Notlösung, wie funktioniert >wx.AddStretchSpacer< ? ------------------ 468 GridBagSizer.Add( wx.StaticText( self ) 469 , pos = wx.GBPosition( row = 1, col = 0 ) 470 , flag = wx.EXPAND ) 471 472 473 GridBagSizer.Add( self.ComboBox__GefStufe 474 , pos = wx.GBPosition( row = 2, col = 0 ) 475 , flag = wx.EXPAND ) 476 477 GridBagSizer.Add( self.ListBox__GefStufeBegr 478 , pos = wx.GBPosition( row = 2, col = 1 ) 479 , span = wx.GBSpan( rowspan = 2, colspan = 1 ) 480 , flag = wx.EXPAND ) 481 482 # -- Notlösung, wie funktioniert >wx.AddStretchSpacer< ? ------------------ 483 GridBagSizer.Add( wx.StaticText( self ) 484 , pos = wx.GBPosition( row = 3, col = 0 ) 485 , flag = wx.EXPAND ) 486 487 488 GridBagSizer.Add( self.TCASRisikostufe 489 , pos = wx.GBPosition( row = 4, col = 0 ) 490 , flag = wx.EXPAND ) 491 492 GridBagSizer.Add( self.ListBox__RisikoStufeBegr 493 , pos = wx.GBPosition( row = 4, col = 1 ) 494 , span = wx.GBSpan( rowspan = 2, colspan = 1 ) 495 , flag = wx.EXPAND ) 496 497 # -- Notlösung, wie funktioniert >wx.AddStretchSpacer< ? ------------------ 498 GridBagSizer.Add( wx.StaticText( self ) 499 , pos = wx.GBPosition( row = 5, col = 0 ) 500 , flag = wx.EXPAND ) 501 502 503 # 504 # -- Hauptlayout ---------------------------------------------------------- 505 # 506 FlexGridSizer = wx.FlexGridSizer( rows = 7, cols = 1, vgap = 10, hgap = 0 ) 507 508 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 509 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 0 ) 510 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 0 ) 511 FlexGridSizer.AddGrowableRow( idx = 2, proportion = 0 ) 512 FlexGridSizer.AddGrowableRow( idx = 3, proportion = 0 ) 513 FlexGridSizer.AddGrowableRow( idx = 4, proportion = 0 ) 514 FlexGridSizer.AddGrowableRow( idx = 5, proportion = 0 ) 515 FlexGridSizer.AddGrowableRow( idx = 6, proportion = 0 ) 516 517 518 FlexGridSizer.Add( GridSizer 519 , flag = wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND 520 , border = 10 ) 521 522 FlexGridSizer.Add( self.ListBox__GefSzen 523 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 524 , border = 10 ) 525 526 FlexGridSizer.Add( self.ListBox__GefAnm 527 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 528 , border = 10 ) 529 530 FlexGridSizer.Add( self.TreeCtrlErg__PSAnfId 531 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 532 , border = 10 ) 533 534 FlexGridSizer.Add( self.SiAnfStrktDok__Zugeordnet 535 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 536 , border = 10 ) 537 538 FlexGridSizer.Add( self.ListBox__ReprGefSzen 539 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 540 , border = 10 ) 541 542 FlexGridSizer.Add( GridBagSizer 543 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 544 , border = 10 ) 545 546 547 self.SetSizerAndFit( FlexGridSizer ) 548 549 550 # 551 # -- Datenbank auslesen -------------------------------------------------- 552 # 553 # -- Gefahrennetz ---------------------------------------------------------- 554 # -- Abkürzungen ---------------------------------------------------------- 555 # 556 self.dbVerbindung.init_strStrkt( wxListBox = self.ListBoxAL__GefNetz.ListBox__re 557 , prjProjekteId = self.prjProjekteId 558 , sprSprachenId = self.sprSprachenId 559 , strNameId = self.str_name_id___gefahrennetz ) 560 561 self.dbVerbindung.init_psAbk( LBGefPersonen = self.ListBoxAL__GefPersonen.ListBox__re 562 , CBHaeufig = self.ComboBox__Haeufig.wxObjekt 563 , CBGefStufe = self.ComboBox__GefStufe.wxObjekt 564 , TCASRisikoStufe = self.TCASRisikostufe.wxObjekt 565 , prjProjekteId = self.prjProjekteId 566 , sprSprachenId = self.sprSprachenId )
567 568 569 570 571 # 572 # ------------------------------------------------------------------------------------ 573 # -- Anmerkungen bearbeiten -------------------------------------------------- 574 # ------------------------------------------------------------------------------------ 575 #
576 - def __ereignisAnmerkungen__( self, ereignis ):
577 """ 578 Anmerkungen zum Gefahrenszenario bearbeiten. 579 580 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 581 @type ereignis: C{wx - Ereignisobjekt} 582 """ 583 584 # 585 # -- Meldung ausgeben -------------------------------------------------- 586 # 587 dlg = BearbeiteAnmerkung( parent = self 588 , Statusleiste = self.Statusleiste 589 , dbVerbindung = self.dbVerbindung 590 , prjProjekteId = self.prjProjekteId 591 , sprSprachenId = self.sprSprachenId 592 , psGefszenarioId = self.psGefszenarioId ) 593 dlg.ShowModal() 594 dlg.Destroy() 595 596 597 # 598 # -- Änderungen in Risikoanalyse übernehmen ---------------------------------- 599 # 600 self.dbVerbindung.selektiere__psGefAnm( 601 ListBoxGefAnm = self.ListBox__GefAnm.wxObjekt 602 # , TCSpWTitel = None 603 , TreeCtrlErgAnmId = None 604 , ListBoxErgVorhAnmId = None 605 # , ListBoxSpWTSVorhAnm = None 606 , liesAlles = None 607 , prjProjekteId = self.prjProjekteId 608 , sprSprachenId = self.sprSprachenId 609 , psGefszenarioId = self.psGefszenarioId 610 , psAnmerkungId = None )
611 612 613 614 615 # 616 # ------------------------------------------------------------------------------------ 617 # -- Die Risikobewertung wurde geändert ---------------------------------- 618 # ------------------------------------------------------------------------------------ 619 #
620 - def __ereignisRisikobewertung__( self, ereignis ):
621 """ 622 Ein C{wx - Objekt} der Risikobewertung wurde verändert. 623 624 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 625 @type ereignis: C{wx - Ereignisobjekt} 626 """ 627 628 # 629 # -- Alles aktualisieren -------------------------------------------------- 630 # 631 self.dbVerbindung.selektiere__psRisikomatrix( 632 CBHaeufig = self.ComboBox__Haeufig.wxObjekt 633 , LBHaeufigBegr = self.ListBox__HaeufigBegr.wxObjekt 634 , CBGefStufe = self.ComboBox__GefStufe.wxObjekt 635 , LBGefStufeBegr = self.ListBox__GefStufeBegr.wxObjekt 636 , TCASRisikostufe = self.TCASRisikostufe.wxObjekt 637 , LBRisikoStufeBegr = self.ListBox__RisikoStufeBegr.wxObjekt 638 , psGefszenarioId = self.psGefszenarioId 639 , prjProjekteId = self.prjProjekteId 640 , sprSprachenId = self.sprSprachenId 641 , istCBHaeufigAenderung = ( ereignis.GetId() == self.ComboBox__Haeufig.wxObjekt.GetId() ) ) 642 643 644 # 645 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 646 # -- ausgewertet werden kann -------------------------- 647 # 648 ereignis.Skip( skip = True )
649 650 651 652 653 # 654 # ------------------------------------------------------------------------------------ 655 # -- Sicherheitsanforderungen bearbeiten ---------------------------------- 656 # ------------------------------------------------------------------------------------ 657 #
658 - def __ereignisSiAnf__( self, ereignis ):
659 """ 660 Sicherheitsaforderungen zum Gefahrenszenario bearbeiten. 661 662 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 663 @type ereignis: C{wx - Ereignisobjekt} 664 """ 665 666 667 # 668 # -- Meldung ausgeben -------------------------------------------------- 669 # 670 dlg = BearbeiteSicherheitsanf( parent = self 671 , Statusleiste = self.Statusleiste 672 , dbVerbindung = self.dbVerbindung 673 , prjProjekteId = self.prjProjekteId 674 , sprSprachenId = self.sprSprachenId 675 , psGefszenarioId = self.psGefszenarioId ) 676 677 # 678 # -- Dialog aufrufen ---------------------------------------------------------- 679 # 680 dlg.SetMinSize( ( 800, 700 ) ) 681 dlg.ShowModal() 682 dlg.Destroy() 683 684 685 686 # 687 # -- Sicherheitsanforderungen aktualisieren ---------------------------------- 688 # 689 self.dbVerbindung.selektiere__psPrtProtokoll( TreeCtrlErg = self.TreeCtrlErg__PSAnfId.wxObjekt 690 , prjProjekteId = self.prjProjekteId 691 , sprSprachenId = self.sprSprachenId 692 , psGefszenarioId = self.psGefszenarioId 693 , prtTypId = None )
694 695 696 697 698 # 699 # ------------------------------------------------------------------------------------ 700 # -- Innerhalb der Sicherheitsanforderungen navigieren ------------------ 701 # ------------------------------------------------------------------------------------ 702 #
703 - def __ereignisSiAnfNavigation__( self, ereignis ):
704 """ 705 Innerhalb der Sicherheitsaforderungen die Dokumente / Strukturpunkte 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 # -- prt_protokoll_id übernehmen ------------------------------------------ 713 # 714 prt_protokoll_id = self.TreeCtrlErg__PSAnfId.wxObjekt.gibDbId() 715 716 717 # 718 # -- Zugeordnete Strukturpunkte / Dokumente anzeigen ------------------ 719 # 720 self.dbVerbindung.selektiere__psPrtStrkt( 721 SiAnfStrktDok = self.SiAnfStrktDok__Zugeordnet 722 , prjProjekteId = self.prjProjekteId 723 , sprSprachenId = self.sprSprachenId 724 , prtProtokollId = ereignis.GetEventObject().gibDbId() 725 , psGefszenarioId = None 726 , strNameId = None ) 727 728 self.dbVerbindung.selektiere__prjPrtDoku( 729 SiAnfStrktDok = self.SiAnfStrktDok__Zugeordnet 730 , prjProjekteId = self.prjProjekteId 731 , sprSprachenId = self.sprSprachenId 732 , prtProtokollId = ereignis.GetEventObject().gibDbId() 733 , psGefszenarioId = None 734 , internFirmaId = None )
735 736 737 738 739 # 740 # ------------------------------------------------------------------------------------ 741 # -- Liegt eine Korrektur von Rechtschreibfehlern vor ? ------------------ 742 # ------------------------------------------------------------------------------------ 743 #
744 - def __ereignisUebersezung__( self, ereignis ):
745 """ 746 Übersetzung anzeigen / bearbeiten 747 748 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 749 @type ereignis: C{wx - Ereignisobjekt} 750 """ 751 752 # 753 # -- Der Status der Benutzeränderung ist für Textobjekte irrelevant ---------- 754 # -- (ggf. vorliegende Änderungen werden an den Rückgabewerten von ---------- 755 # -- >BearbeiteUebersetzungNeu(...)< erkannt) ---------- 756 # 757 self.ListBox__GefSzen.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 758 self.ListBox__ReprGefSzen.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 759 self.ListBox__HaeufigBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 760 self.ListBox__GefStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 761 self.ListBox__RisikoStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 762 763 764 # 765 # -- Alle bisherigen Änderungen in die DB schreiben -------------------------- 766 # -- (konsistenten Zustand herstellen) -------------------------- 767 # 768 self.schreibDB( self.psGefszenarioId ) 769 770 771 # 772 # -- Notizen ---------------------------------------------------------- 773 # 774 # -- Gefahrenszenario / Notizen ------------------------------------------ 775 # -- Häufigkeit ------------------------------------------ 776 # -- Gefahrenstufe ------------------------------------------ 777 # -- Risikostufe ------------------------------------------ 778 # 779 # 780 notizen = None 781 if( ereignis.GetId() == self.ListBox__GefSzen.wxObjekt.GetId() 782 or ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() 783 or ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() 784 or ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 785 786 notizen = ereignis.GetEventObject().gibClientData( lfdNr = 0 )[1] 787 788 789 # 790 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 791 # 792 dlg = BearbeiteUebersetzungNeu( parent = self 793 , Statusleiste = self.Statusleiste 794 , dbVerbindung = self.dbVerbindung 795 , sprSprachenId = self.sprSprachenId 796 , sprUebvarId = ereignis.GetEventObject().gibClientData( lfdNr = 0 )[0] 797 , notizen = notizen ) 798 799 800 # 801 # -- Dialog aufrufen ---------------------------------------------------------- 802 # 803 dlg.ShowModal() 804 dlg.Destroy() 805 806 807 808 # 809 # -- Änderungen übernehmen -------------------------------------------------- 810 # 811 if( dlg.gibWerte()[0] ) : 812 813 # 814 # -- >spr.uebvar.id< und/oder >notizen< geändert ------------------ 815 # 816 istAenderungId = dlg.gibWerte()[1] != ereignis.GetEventObject().gibClientData( lfdNr = 0 )[0] 817 istAenderungIdNotizen = ( istAenderungId 818 or dlg.gibWerte()[2] != ereignis.GetEventObject().gibClientData( lfdNr = 0 )[1] ) 819 820 # 821 # -- Falls unverändert ... ------------------------------------------ 822 # 823 # -- Ursprung des Gefahrenszenarios ---------------------------------- 824 # -- Gefahrenszenario / Notizen ---------------------------------- 825 # -- Repräsentatives Gefahrenszenario -------------------------- 826 # 827 listeGefSzen = self.ListBox__GefSzen.wxObjekt.gibClientData( lfdNr = 0 ) 828 spr_uebvar_id_reprgefszen = self.ListBox__ReprGefSzen.wxObjekt.gibClientData( lfdNr = 0 )[0] 829 830 # 831 # -- Gefahrenszenario / Notizen ---------------------------------- 832 # 833 if( ereignis.GetId() == self.ListBox__GefSzen.wxObjekt.GetId() and istAenderungIdNotizen ) : 834 835 # 836 # -- >spr_uebvar_id<, >notizen<, >prj.pp_psgefszenario.id<, >spr_uebvar_id_ursp< 837 # 838 listeGefSzen = [ dlg.gibWerte()[1] 839 , dlg.gibWerte()[2] 840 , self.ListBox__GefSzen.wxObjekt.gibClientData( lfdNr = 0 )[2] 841 , self.ListBox__GefSzen.wxObjekt.gibClientData( lfdNr = 0 )[3] ] 842 843 # 844 # -- Repräsentatives Gefahrenszenario ------------------------------------------ 845 # 846 if( ereignis.GetId() == self.ListBox__ReprGefSzen.wxObjekt.GetId() and istAenderungId ) : 847 848 spr_uebvar_id_reprgefszen = dlg.gibWerte()[1] 849 850 # 851 # -- Häufigkeit -------------------------------------------------- 852 # 853 listeWerte = [] 854 if( ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() and istAenderungIdNotizen ) : 855 856 # 857 # -- >ps_abk_id<, ... 858 # 859 listeWerte.append( self.ComboBox__Haeufig.wxObjekt.gibClientData() ) 860 861 # 862 # -- Gefahrenstufe -------------------------------------------------- 863 # 864 if( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() and istAenderungIdNotizen ) : 865 866 # 867 # -- >ps_abk_id<, ... 868 # 869 listeWerte.append( self.ComboBox__GefStufe.wxObjekt.gibClientData() ) 870 871 # 872 # -- Risikostufe -------------------------------------------------- 873 # 874 if( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() and istAenderungIdNotizen ) : 875 876 # 877 # -- >ps_abk_id<, ... 878 # 879 listeWerte.append( self.TCASRisikostufe.wxObjekt.gibClientData()[0] ) 880 881 # 882 # -- ... >spr_uebvar_id_zus<, >notizen< -------------------------- 883 # 884 listeWerte.append( dlg.gibWerte()[1] ) 885 listeWerte.append( dlg.gibWerte()[2] ) 886 887 888 889 # 890 # -- Datenbank aktualisieren ---------------------------------- 891 # -- Texte immer aktualisieren ---------------------------------- 892 # 893 if( ereignis.GetId() == self.ListBox__GefSzen.wxObjekt.GetId() 894 or ereignis.GetId() == self.ListBox__ReprGefSzen.wxObjekt.GetId() ) : 895 896 # 897 # -- Ursprung des Gefahrenszenarios ---------------------------------- 898 # -- Gefahrenszenario / Notizen ---------------------------------- 899 # -- Repräsentatives Gefahrenszenario -------------------------- 900 # 901 self.dbVerbindung.schreibe__PrjPpPsGefszenario( 902 listeGefszen = listeGefSzen 903 , spr_uebvar_id_reprgefszen = spr_uebvar_id_reprgefszen 904 , prjProjekteId = self.prjProjekteId 905 , sprSprachenId = self.sprSprachenId 906 , psGefszenarioId = self.psGefszenarioId ) 907 908 self.dbVerbindung.selektiere__psGefszenario( 909 ListBoxGefSzen = self.ListBox__GefSzen.wxObjekt 910 , ListBoxReprGefSzen = self.ListBox__ReprGefSzen.wxObjekt 911 , psGefszenarioId = self.psGefszenarioId 912 , prjProjekteId = self.prjProjekteId 913 , sprSprachenId = self.sprSprachenId ) 914 915 else : 916 917 # 918 # -- Häufigkeit -------------------------------------------------- 919 # -- Gefahrenstufe -------------------------------------------------- 920 # -- Risikostufe -------------------------------------------------- 921 # 922 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 923 , prjProjekteId = self.prjProjekteId 924 , psGefszenarioId = self.psGefszenarioId ) 925 926 self.dbVerbindung.selektiere__psGefAbk( 927 LBGefSpWTALPersonen = self.ListBoxAL__GefPersonen 928 , CBHaeufig = self.ComboBox__Haeufig.wxObjekt 929 , LBHaeufigBegr = self.ListBox__HaeufigBegr.wxObjekt 930 , CBGefStufe = self.ComboBox__GefStufe.wxObjekt 931 , LBGefStufeBegr = self.ListBox__GefStufeBegr.wxObjekt 932 , TCASRisikoStufe = self.TCASRisikostufe.wxObjekt 933 , LBRisikoStufeBegr = self.ListBox__RisikoStufeBegr.wxObjekt 934 , prjProjekteId = self.prjProjekteId 935 , sprSprachenId = self.sprSprachenId 936 , psGefszenarioId = self.psGefszenarioId )
937 938 939 940 # 941 # ------------------------------------------------------------------------------------ 942 # -- Datenbank auslesen -------------------------------------------------- 943 # ------------------------------------------------------------------------------------ 944 #
945 - def liesDB( self, psGefszenarioId = None ):
946 """ 947 Methode die aufgerufen wird, wenn die Datenbankwerte im Fenster dargestellt werden sollen. 948 949 @param psGefszenarioId: Es ist die Identifikationsnummer des Gefahrenszenarios anzugeben. 950 @type psGefszenarioId: Ganzzahl 951 """ 952 953 954 955 self.psGefszenarioId = psGefszenarioId 956 957 958 # 959 # -- Gefahrenszenario auslesen (>prj.zeige__psgefszenario<) ------------------ 960 # 961 if self.psGefszenarioId != None: 962 963 self.dbVerbindung.selektiere__psGefszenario( 964 ListBoxGefSzen = self.ListBox__GefSzen.wxObjekt 965 , ListBoxReprGefSzen = self.ListBox__ReprGefSzen.wxObjekt 966 , psGefszenarioId = self.psGefszenarioId 967 , prjProjekteId = self.prjProjekteId 968 , sprSprachenId = self.sprSprachenId ) 969 970 971 # 972 # -- Enthalten im Gefahrennetz (>prj.zeige__psgefstrkt<) 973 # 974 # -- >self.ListBoxAL__GefNetz = str_strkt_id< 975 # 976 self.dbVerbindung.selektiere__psGefStrkt( 977 ListBoxSpWTitelAL = self.ListBoxAL__GefNetz 978 , prjProjekteId = self.prjProjekteId 979 , psGefszenarioId = self.psGefszenarioId 980 , strNameId = self.str_name_id___gefahrennetz ) 981 982 # 983 # -- Anmerkungen zum Gefahrenszenario / Interne Notizen zu den Anmerkungen 984 # 985 # -- >self.ListBox__GefAnm = ps_gefanm_id< 986 # 987 self.dbVerbindung.selektiere__psGefAnm( 988 ListBoxGefAnm = self.ListBox__GefAnm.wxObjekt 989 # , TCSpWTitel = None 990 , TreeCtrlErgAnmId = None 991 , ListBoxErgVorhAnmId = None 992 # , ListBoxSpWTSVorhAnm = None 993 , liesAlles = None 994 , prjProjekteId = self.prjProjekteId 995 , sprSprachenId = self.sprSprachenId 996 , psGefszenarioId = self.psGefszenarioId 997 , psAnmerkungId = None ) 998 999 # 1000 # -- Sicherheitsanforderungen ---------------------------------- 1001 # 1002 self.dbVerbindung.selektiere__psPrtProtokoll( TreeCtrlErg = self.TreeCtrlErg__PSAnfId.wxObjekt 1003 , prjProjekteId = self.prjProjekteId 1004 , sprSprachenId = self.sprSprachenId 1005 , psGefszenarioId = self.psGefszenarioId 1006 , prtTypId = None ) 1007 1008 1009 # 1010 # -- Gefährdete Personen ------------------------------------------ 1011 # -- Häufigkeit ------------------------------------------ 1012 # -- Gefahrenstufe ------------------------------------------ 1013 # -- Risikostufe ------------------------------------------ 1014 # 1015 self.dbVerbindung.selektiere__psGefAbk( 1016 LBGefSpWTALPersonen = self.ListBoxAL__GefPersonen 1017 , CBHaeufig = self.ComboBox__Haeufig.wxObjekt 1018 , LBHaeufigBegr = self.ListBox__HaeufigBegr.wxObjekt 1019 , CBGefStufe = self.ComboBox__GefStufe.wxObjekt 1020 , LBGefStufeBegr = self.ListBox__GefStufeBegr.wxObjekt 1021 , TCASRisikoStufe = self.TCASRisikostufe.wxObjekt 1022 , LBRisikoStufeBegr = self.ListBox__RisikoStufeBegr.wxObjekt 1023 , prjProjekteId = self.prjProjekteId 1024 , sprSprachenId = self.sprSprachenId 1025 , psGefszenarioId = self.psGefszenarioId ) 1026 1027 else: 1028 1029 # 1030 # -- Alles löschen -------------------------------------------------- 1031 # 1032 self.ListBoxAL__GefNetz.schiebeAlleRechts() 1033 self.ListBoxAL__GefPersonen.schiebeAlleRechts() 1034 self.ComboBox__Haeufig.wxObjekt.SetSelection( 0 ) 1035 self.ComboBox__GefStufe.wxObjekt.SetSelection( 0 ) 1036 self.TCASRisikostufe.wxObjekt.setzeWert( 0 )
1037 1038 1039 1040 # 1041 # ------------------------------------------------------------------------------------ 1042 # -- Datenbank schreiben -------------------------------------------------- 1043 # ------------------------------------------------------------------------------------ 1044 #
1045 - def schreibDB( self, psGefszenarioId ):
1046 """ 1047 Methode die aufgerufen wird, wenn die Eingabefelder ausgelesen und deren Werte in die Datenbank geschrieben werden sollen. 1048 1049 @param psGefszenarioId: Es ist die Identifikationsnummer des Gefahrenszenarios anzugeben. 1050 @type psGefszenarioId: Ganzzahl 1051 """ 1052 1053 # 1054 # -- ps.gefszenario / prj.ppu_psgefszenario ---------------------------------- 1055 # 1056 if( self.ListBox__GefSzen.wxObjekt.gibIstVomBenutzerGeaendert() 1057 or self.ListBox__ReprGefSzen.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1058 1059 self.dbVerbindung.schreibe__PrjPpPsGefszenario( 1060 listeGefszen = self.ListBox__GefSzen.wxObjekt.gibClientData( lfdNr = 0 ) 1061 , spr_uebvar_id_reprgefszen = self.ListBox__ReprGefSzen.wxObjekt.gibClientData( lfdNr = 0 )[0] 1062 , prjProjekteId = self.prjProjekteId 1063 , sprSprachenId = self.sprSprachenId 1064 , psGefszenarioId = self.psGefszenarioId ) 1065 1066 1067 # 1068 # -- ps.gefabk / prj.plu_psgefabk ------------------------------------------ 1069 # 1070 if( self.ListBoxAL__GefPersonen.ListBox__li.gibIstVomBenutzerGeaendert() 1071 or self.ComboBox__Haeufig.wxObjekt.gibIstVomBenutzerGeaendert() 1072 or self.ComboBox__GefStufe.wxObjekt.gibIstVomBenutzerGeaendert() 1073 or self.TCASRisikostufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1074 1075 # 1076 # -- Gefährdete Personen ------------------------------------------ 1077 # 1078 if( self.ListBoxAL__GefPersonen.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1079 1080 # 1081 # -- >ps.abk.id< vor der Änderung ermitteln -------------------------- 1082 # 1083 ps_abk_id = self.dbVerbindung.gibListePsAbkId( prjProjekteId = self.prjProjekteId 1084 , sprSprachenId = self.sprSprachenId 1085 , psGefszenarioId = self.psGefszenarioId 1086 , psAbkTyp = 'GP') 1087 1088 # 1089 # -- >ps.abk.id< entfernen ------------------------------------------ 1090 # 1091 for i in range( len( self.ListBoxAL__GefPersonen.ListBox__re.gibClientData() ) ) : 1092 1093 if( self.ListBoxAL__GefPersonen.ListBox__re.gibClientData( lfdNr = i )[0] in ps_abk_id ) : 1094 1095 # 1096 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ---------- 1097 # 1098 listeWerte = [] 1099 listeWerte.append( self.ListBoxAL__GefPersonen.ListBox__re.gibClientData( lfdNr = i )[0] ) 1100 listeWerte.append( 0 ) 1101 listeWerte.append( zk.gibZk( '' ) ) 1102 1103 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1104 , prjProjekteId = self.prjProjekteId 1105 , psGefszenarioId = self.psGefszenarioId 1106 , logentfernt = 'true' ) 1107 1108 # 1109 # -- >ps.abk.id< hinzufügen ------------------------------------------ 1110 # 1111 for i in range( len( self.ListBoxAL__GefPersonen.ListBox__li.gibClientData() ) ) : 1112 1113 # 1114 # -- bereits zugeordnete >ps.abk.id< überspringen ---------- 1115 # 1116 if( self.ListBoxAL__GefPersonen.ListBox__li.gibClientData( lfdNr = i )[0] in ps_abk_id ) : 1117 1118 continue 1119 1120 # 1121 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ---------- 1122 # 1123 listeWerte = [] 1124 listeWerte.append( self.ListBoxAL__GefPersonen.ListBox__li.gibClientData( lfdNr = i )[0] ) 1125 listeWerte.append( 0 ) 1126 listeWerte.append( zk.gibZk( '' ) ) 1127 1128 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1129 , prjProjekteId = self.prjProjekteId 1130 , psGefszenarioId = self.psGefszenarioId ) 1131 1132 # 1133 # -- Häufigkeit -------------------------------------------------- 1134 # 1135 if( self.ComboBox__Haeufig.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1136 1137 # 1138 # -- >ps.abk.id< vor der Änderung ermitteln -------------------------- 1139 # 1140 ps_abk_id = self.dbVerbindung.gibListePsAbkId( prjProjekteId = self.prjProjekteId 1141 , sprSprachenId = self.sprSprachenId 1142 , psGefszenarioId = self.psGefszenarioId 1143 , psAbkTyp = 'RH') 1144 1145 # 1146 # -- >ps.abk.id< entfernen ------------------------------------------ 1147 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1148 # 1149 listeWerte = [] 1150 listeWerte.append( ps_abk_id[0] ) 1151 listeWerte.append( 0 ) 1152 listeWerte.append( zk.gibZk( '' ) ) 1153 1154 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1155 , prjProjekteId = self.prjProjekteId 1156 , psGefszenarioId = self.psGefszenarioId 1157 , logentfernt = 'true' ) 1158 1159 # 1160 # -- >ps.abk.id< hinzufügen ------------------------------------------ 1161 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1162 # 1163 listeWerte = [] 1164 listeWerte.append( self.ComboBox__Haeufig.wxObjekt.gibClientData() ) 1165 listeWerte.append( self.ListBox__HaeufigBegr.wxObjekt.gibClientData( lfdNr = 0 )[0] ) 1166 listeWerte.append( self.ListBox__HaeufigBegr.wxObjekt.gibClientData( lfdNr = 0 )[1] ) 1167 1168 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1169 , prjProjekteId = self.prjProjekteId 1170 , psGefszenarioId = self.psGefszenarioId ) 1171 1172 1173 1174 1175 # 1176 # -- Gefahrenstufe -------------------------------------------------- 1177 # 1178 if( self.ComboBox__GefStufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1179 1180 # 1181 # -- >ps.abk.id< vor der Änderung ermitteln -------------------------- 1182 # 1183 ps_abk_id = self.dbVerbindung.gibListePsAbkId( prjProjekteId = self.prjProjekteId 1184 , sprSprachenId = self.sprSprachenId 1185 , psGefszenarioId = self.psGefszenarioId 1186 , psAbkTyp = 'RG') 1187 1188 # 1189 # -- >ps.abk.id< entfernen ------------------------------------------ 1190 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1191 # 1192 listeWerte = [] 1193 listeWerte.append( ps_abk_id[0] ) 1194 listeWerte.append( 0 ) 1195 listeWerte.append( zk.gibZk( '' ) ) 1196 1197 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1198 , prjProjekteId = self.prjProjekteId 1199 , psGefszenarioId = self.psGefszenarioId 1200 , logentfernt = 'true' ) 1201 1202 # 1203 # -- >ps.abk.id< hinzufügen ------------------------------------------ 1204 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1205 # 1206 listeWerte = [] 1207 listeWerte.append( self.ComboBox__GefStufe.wxObjekt.gibClientData() ) 1208 listeWerte.append( self.ListBox__GefStufeBegr.wxObjekt.gibClientData( lfdNr = 0 )[0] ) 1209 listeWerte.append( self.ListBox__GefStufeBegr.wxObjekt.gibClientData( lfdNr = 0 )[1] ) 1210 1211 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1212 , prjProjekteId = self.prjProjekteId 1213 , psGefszenarioId = self.psGefszenarioId ) 1214 1215 1216 # 1217 # -- Risikostufe -------------------------------------------------- 1218 # 1219 if( self.TCASRisikostufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1220 1221 # 1222 # -- >ps.abk.id< vor der Änderung ermitteln -------------------------- 1223 # 1224 ps_abk_id = self.dbVerbindung.gibListePsAbkId( prjProjekteId = self.prjProjekteId 1225 , sprSprachenId = self.sprSprachenId 1226 , psGefszenarioId = self.psGefszenarioId 1227 , psAbkTyp = 'RR') 1228 1229 # 1230 # -- >ps.abk.id< entfernen ------------------------------------------ 1231 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1232 # 1233 listeWerte = [] 1234 listeWerte.append( ps_abk_id[0] ) 1235 listeWerte.append( 0 ) 1236 listeWerte.append( zk.gibZk( '' ) ) 1237 1238 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1239 , prjProjekteId = self.prjProjekteId 1240 , psGefszenarioId = self.psGefszenarioId 1241 , logentfernt = 'true' ) 1242 1243 # 1244 # -- >ps.abk.id< hinzufügen ------------------------------------------ 1245 # -- >ps_abk_id<, >spr_uebvar_id_zus<, >notizen< ------------------ 1246 # 1247 listeWerte = [] 1248 listeWerte.append( self.TCASRisikostufe.wxObjekt.gibClientData()[0] ) 1249 listeWerte.append( self.ListBox__RisikoStufeBegr.wxObjekt.gibClientData( lfdNr = 0 )[0] ) 1250 listeWerte.append( self.ListBox__RisikoStufeBegr.wxObjekt.gibClientData( lfdNr = 0 )[1] ) 1251 1252 self.dbVerbindung.schreibe__prjPlPsGefsabk( listeWerte = listeWerte 1253 , prjProjekteId = self.prjProjekteId 1254 , psGefszenarioId = self.psGefszenarioId ) 1255 1256 1257 # 1258 # -- Gefahrennetz ---------------------------------------------------------- 1259 # 1260 if( self.ListBoxAL__GefNetz.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1261 1262 # 1263 # -- >str.strkt.id< vor der Änderung ermitteln -------------------------- 1264 # 1265 str_strkt_id = self.dbVerbindung.gibListePsGefStrktId( prjProjekteId = self.prjProjekteId 1266 , psGefszenarioId = self.psGefszenarioId 1267 , strNameId = self.str_name_id___gefahrennetz ) 1268 1269 # 1270 # -- >str.strkt.id< entfernen ------------------------------------------ 1271 # 1272 for i in range( len( self.ListBoxAL__GefNetz.ListBox__re.gibClientData() ) ) : 1273 1274 if( self.ListBoxAL__GefNetz.ListBox__re.gibClientData( lfdNr = i )[0] in str_strkt_id ) : 1275 1276 # 1277 # -- >str_strkt_id<, >notizen< -------------------------- 1278 # 1279 listeWerte = [] 1280 listeWerte.append( self.ListBoxAL__GefNetz.ListBox__re.gibClientData( lfdNr = i )[0] ) 1281 listeWerte.append( zk.gibZk( '' ) ) 1282 1283 self.dbVerbindung.schreibe__PrjPlPsGefStrkt( listeWerte = listeWerte 1284 , prjProjekteId = self.prjProjekteId 1285 , psGefszenarioId = self.psGefszenarioId 1286 , logentfernt = 'true' ) 1287 1288 1289 # 1290 # -- >str.strkt.id< hinzufügen ---------------------------------- 1291 # 1292 for i in range( len( self.ListBoxAL__GefNetz.ListBox__li.gibClientData() ) ) : 1293 1294 # 1295 # -- bereits zugeordnete >str.strkt.id< überspringen ---------- 1296 # 1297 if( self.ListBoxAL__GefNetz.ListBox__li.gibClientData( lfdNr = i )[0] in str_strkt_id ) : 1298 1299 continue 1300 1301 # 1302 # -- >str_strkt_id<, >notizen< ---------- 1303 # 1304 listeWerte = [] 1305 listeWerte.append( self.ListBoxAL__GefNetz.ListBox__li.gibClientData( lfdNr = i )[0] ) 1306 listeWerte.append( zk.gibZk( '' ) ) 1307 1308 self.dbVerbindung.schreibe__PrjPlPsGefStrkt( listeWerte = listeWerte 1309 , prjProjekteId = self.prjProjekteId 1310 , psGefszenarioId = self.psGefszenarioId ) 1311 1312 1313 1314 # 1315 # -- hier ausgewertete Benutzeränderungen zurücksetzen ------------------ 1316 # 1317 self.ListBox__GefSzen.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1318 self.ListBox__ReprGefSzen.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1319 self.ListBoxAL__GefPersonen.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1320 self.ComboBox__Haeufig.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1321 self.ComboBox__GefStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1322 self.TCASRisikostufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1323 self.ListBoxAL__GefNetz.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
1324