1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 import wx
40
41 from bearbeiteuebersetzung import BearbeiteUebersetzung
42
43 from universal import allg
44 from universal import zk
45
46 from wxuniversal import HK_ANM
47 from wxuniversal import HK_DOK
48 from wxuniversal import HK_DOKTYP
49 from wxuniversal import HK_PE
50 from wxuniversal import HK_PETYP
51 from wxuniversal import HK_SIANF
52 from wxuniversal import HK_SIANFTYP
53 from wxuniversal import HK_STR
54 from wxuniversal import HK_STRBEZ
55
56 from wxuniversal import CheckBoxErg
57 from wxuniversal import ComboBoxErg
58 from wxuniversal import farbeBearbeiten
59 from wxuniversal import farbeAuswahlListe
60 from wxuniversal import FlexGridSizerWxObjTitel
61 from wxuniversal import SiAnf
62 from wxuniversal import TreeCtrlErg
63 from wxuniversal import VerfuegbareProtokolleintraege
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
96 """
97 Klasse zur Abbildung des Teil-Eingabeformulars der verfügbaren Sicherheitsanforderungen
98 """
99
100
101
102
103
104
105 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
106 wx.Panel.__init__( self, parent = parent )
107
108
109
110
111 self.SetName( name = "LayoutVerfuegbareSicherheitsanforderungen" )
112
113
114
115
116
117
118
119
120 self.__Notizen__ = Notizen
121 self.__Fortschritt__ = Fortschritt
122 self.__dbVerbindung__ = dbVerbindung
123 self.__aktPrjProjekteId__ = self.__dbVerbindung__.filter__prj_projekte_id
124 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
125
126
127
128
129
130
131
132
133
134
135
136
137
138 self.CheckBoxErg__NurGefszen = FlexGridSizerWxObjTitel( parent = self
139 , wxObj = CheckBoxErg( self
140 , Notizen = self.__Notizen__ )
141 , titel = "Gefahrenszenario"
142 , orient = wx.VERTICAL )
143
144 self.CheckBoxErg__NurGefszen.wxObjekt.nimmWerteStatusleiste(
145 DBSpNameErlaeuterung = u"Verfügbare Sicherheitsanforderungen auf das aktuelle Gefahrenszenario einschränken."
146 , DBSpName = "prj.pl_prtpsgefszenario" )
147
148 self.CheckBoxErg__NurGefszen.wxObjekt.Bind( wx.EVT_CHECKBOX
149 , self.__ereignisLiesDBVerfSiAnf__ )
150
151
152
153
154
155 self.ComboBoxErg__Projekt = FlexGridSizerWxObjTitel(
156 parent = self
157 , wxObj = ComboBoxErg( self
158 , choices = []
159 , style = wx.CB_DROPDOWN|wx.CB_READONLY|wx.CB_SORT
160 , Notizen = self.__Notizen__ )
161 , orient = wx.VERTICAL
162 , titel = u"Projekt" )
163
164 self.ComboBoxErg__Projekt.wxObjekt.nimmWerteStatusleiste(
165 DBSpNameErlaeuterung = u"Verfügbare Sicherheitsanforderungen auf das Projekt einschränken."
166 , DBSpName = "prj.projekte / prj.pl_prtpsgefszenario" )
167
168 self.ComboBoxErg__Projekt.wxObjekt.Bind( wx.EVT_COMBOBOX
169 , self.__ereignisLiesDBVerfSiAnf__ )
170
171
172
173
174
175
176 self.ComboBoxErg__Typ = FlexGridSizerWxObjTitel( parent = self
177 , wxObj = ComboBoxErg( self
178 , choices = []
179 , style = wx.CB_DROPDOWN|wx.CB_READONLY
180 , Notizen = self.__Notizen__ )
181 , orient = wx.VERTICAL
182 , titel = "Typ der SiAnf" )
183
184 self.ComboBoxErg__Typ.wxObjekt.nimmWerteStatusleiste(
185 DBSpNameErlaeuterung = "Verfügbare Sicherheitsanforderungen anhand des Typs einschränken."
186 , DBSpName = "prt.typ / prt.protokoll / prj.pl_prtpsgefszenario" )
187
188 self.ComboBoxErg__Typ.wxObjekt.Bind( wx.EVT_COMBOBOX
189 , self.__ereignisLiesDBVerfSiAnf__ )
190
191
192
193
194
195 self.SiAnf__VerfSiAnf = SiAnf( parent = self
196 , Notizen = self.__Notizen__
197 , dbVerbindung = self.__dbVerbindung__ )
198
199 self.SiAnf__VerfSiAnf.Titel.SetLabel( label = "Sicherheitsanforderungen (SiAnf)" )
200
201 self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
202
203 self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.nimmWerteStatusleiste(
204 DBSpNameErlaeuterung = u"Die verfügbaren Sicherheitsanforderungen."
205 , DBSpName = "prt.protokoll / prj.pp_prtprotokoll / prj.p_prtverbindung" )
206
207
208
209
210
211
212
213
214
215
216
217
218 FlexGridSizer_Selektionskrit = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 0, hgap = 10 )
219
220 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 1, proportion = 1 )
221 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 2, proportion = 1 )
222
223 FlexGridSizer_Selektionskrit.Add( self.CheckBoxErg__NurGefszen
224 , flag = wx.EXPAND )
225
226 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Projekt
227 , flag = wx.EXPAND )
228
229 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Typ
230 , flag = wx.EXPAND )
231
232
233
234
235
236 FlexGridSizer = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 10, hgap = 0 )
237
238 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 )
239
240 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 )
241
242 FlexGridSizer.Add( FlexGridSizer_Selektionskrit
243 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT
244 , border = 10 )
245
246 FlexGridSizer.Add( self.SiAnf__VerfSiAnf
247 , flag = wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT
248 , border = 10 )
249
250 self.SetSizerAndFit( FlexGridSizer )
251
252
253
254
255
256
257
258
259
260
262 """
263 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.CheckBox} 'Alle' bzw. der C{wx.ComboBox} 'Typ der Sicherheitsanforderung' die Datenbank ausgelesen werden muß.
264
265 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet.
266 @type ereignis: C{wx - Ereignisobjekt}
267 """
268
269
270
271
272 self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.loescheAlles()
273
274
275
276
277
278
279 istFlex = False
280 self.__aktPrjProjekteId__ = self.ComboBoxErg__Projekt.wxObjekt.gibDbId()
281 self.SiAnf__VerfSiAnf.istPermDaten_Flex = istFlex
282 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt
283
284 if( self.__aktPrjProjekteId__ != self.__dbVerbindung__.filter__prj_projekte_id ) :
285
286
287
288
289
290
291 if( self.__aktPrjProjekteId__ != self.__letztesPrjProjekteId__ ) :
292
293 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
294
295
296
297
298
299 self.__Fortschritt__.nimmDelta( delta = 100 / 10 )
300
301 self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex.clear()
302 self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt_Flex.clear()
303 self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt_Flex.clear()
304 self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex.clear()
305 self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex = []
306 self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex.clear()
307 self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex = []
308 self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt_Flex.clear()
309 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt_Flex.clear()
310 self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt_Flex.clear()
311
312 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__,
313 prjProjekteId = self.__aktPrjProjekteId__ )
314 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__
315 , prjProjekteId = self.__aktPrjProjekteId__ )
316 self.__dbVerbindung__.init__ProtId_StruktId__Projekt( Fortschritt = self.__Fortschritt__
317 , prjProjekteId = self.__aktPrjProjekteId__ )
318 self.__dbVerbindung__.init__strStrkt__Sprache__Projekt( Fortschritt = self.__Fortschritt__
319 , prjProjekteId = self.__aktPrjProjekteId__ )
320 self.__dbVerbindung__.init__ProtId_DokuId__Projekt( Fortschritt = self.__Fortschritt__
321 , prjProjekteId = self.__aktPrjProjekteId__ )
322 self.__dbVerbindung__.init__dokDoku__Sprache__Projekt( Fortschritt = self.__Fortschritt__
323 , prjProjekteId = self.__aktPrjProjekteId__ )
324
325
326
327
328 self.__Fortschritt__.loescheFortschritt()
329
330
331
332
333
334
335 istFlex = True
336 self.SiAnf__VerfSiAnf.istPermDaten_Flex = istFlex
337 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex
338
339
340
341
342
343
344 prtProtokollId = None
345 if( self.CheckBoxErg__NurGefszen.wxObjekt.gibWert() ) :
346
347 prtProtokollId = daten__GefszenId_ProtId_siAnf__Projekt[self.__dbVerbindung__.ps_gefszenario_id]
348
349
350
351
352
353
354 prtTyp = None
355 if( self.ComboBoxErg__Typ.wxObjekt.gibDbId() > 0 ) :
356
357 prtTyp = [ self.ComboBoxErg__Typ.wxObjekt.gibDbId() ]
358
359
360
361
362
363
364 self.__dbVerbindung__.selektiere__prtProtokoll__Sprache__Projekt(
365 TreeCtrlErg = self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf
366 , istGefProt = False
367 , prtTypId = prtTyp
368 , prtProtokollId = prtProtokollId
369 , istFlex = istFlex )
370
371
372
373
374
375
376 self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.erzeugeBaum()
377 self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.markiereWert()
378 if( ereignis != None ) : self.SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.ExpandAll()
379
380
381
382
383
384
385 if( ereignis != None ) : ereignis.Skip( skip = True )
386
387
388
389
390
391
392
393
394
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
437 """
438 Klasse zur Abbildung des Teil-Eingabeformulars der verfügbaren Strukturpunkte
439 """
440
441
442
443
444
445
446 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
447 wx.Panel.__init__( self, parent = parent )
448
449
450
451
452 self.SetName( name = "LayoutVerfuegbareStrukturpunkte" )
453
454
455
456
457
458
459
460
461 self.__Notizen__ = Notizen
462 self.__Fortschritt__ = Fortschritt
463 self.__dbVerbindung__ = dbVerbindung
464 self.__aktPrjProjekteId__ = self.__dbVerbindung__.filter__prj_projekte_id
465 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
466 self.__istFlex__ = False
467
468
469
470
471
472
473
474
475
476
477
478
479 self.CheckBoxErg__NurGefszen = FlexGridSizerWxObjTitel( parent = self
480 , wxObj = CheckBoxErg( self
481 , Notizen = self.__Notizen__ )
482 , titel = "Gefahrenszenario"
483 , orient = wx.VERTICAL )
484
485 self.CheckBoxErg__NurGefszen.wxObjekt.nimmWerteStatusleiste(
486 DBSpNameErlaeuterung = u"Verfügbare Strukturpunkte auf das aktuelle Gefahrenszenario einschränken."
487 , DBSpName = "prj.pl_prtpsgefszenario / prj.p_prtstrstrkt" )
488
489 self.CheckBoxErg__NurGefszen.wxObjekt.Bind( wx.EVT_CHECKBOX
490 , self.__ereignisLiesDBVerfStrkt__ )
491
492
493
494
495
496 self.ComboBoxErg__Projekt = FlexGridSizerWxObjTitel(
497 parent = self
498 , wxObj = ComboBoxErg( self
499 , choices = []
500 , style = wx.CB_DROPDOWN|wx.CB_READONLY|wx.CB_SORT
501 , Notizen = self.__Notizen__ )
502 , orient = wx.VERTICAL
503 , titel = u"Projekt" )
504
505 self.ComboBoxErg__Projekt.wxObjekt.nimmWerteStatusleiste(
506 DBSpNameErlaeuterung = u"Verfügbare Strukturpunkte auf das Projekt einschränken."
507 , DBSpName = "prj.projekte / prj.pp_strstrkt" )
508
509 self.ComboBoxErg__Projekt.wxObjekt.Bind( wx.EVT_COMBOBOX
510 , self.__ereignisLiesDBVerfStrkt__ )
511
512
513
514
515
516 self.ComboBoxErg__Typ = FlexGridSizerWxObjTitel( parent = self
517 , wxObj = ComboBoxErg( self
518 , choices = []
519 , style = wx.CB_DROPDOWN|wx.CB_READONLY
520 , Notizen = self.__Notizen__ )
521 , orient = wx.VERTICAL
522 , titel = "Strukturbezeichnung" )
523
524 self.ComboBoxErg__Typ.wxObjekt.nimmWerteStatusleiste(
525 DBSpNameErlaeuterung = "Verfügbare Strukturpunkte anhand der Strukturbezeichnung einschränken."
526 , DBSpName = "str.name / str.strkt / prj.pp_strstrkt" )
527
528 self.ComboBoxErg__Typ.wxObjekt.Bind( wx.EVT_COMBOBOX
529 , self.__ereignisLiesDBVerfStrkt__ )
530
531
532
533
534
535 self.TreeCtrlErg__VerfStrPkt = FlexGridSizerWxObjTitel( parent = self
536 , wxObj = TreeCtrlErg( self
537 , Notizen = self.__Notizen__ )
538 , titel = "Strukturpunkte"
539 , orient = wx.VERTICAL )
540
541 self.TreeCtrlErg__VerfStrPkt.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
542
543 self.TreeCtrlErg__VerfStrPkt.wxObjekt.nimmWerteStatusleiste(
544 DBSpNameErlaeuterung = "Die verfügbaren Strukturpunkte."
545 , DBSpName = "str.strkt / prj.pp_strstrkt / prj.p_strverbindung" )
546
547 self.TreeCtrlErg__VerfStrPkt.wxObjekt.Bind( wx.EVT_TREE_SEL_CHANGED
548 , self.__ereignisNotizenAnzeigen__ )
549
550
551
552
553
554
555
556
557
558
559
560
561 FlexGridSizer_Selektionskrit = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 0, hgap = 10 )
562
563 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 1, proportion = 1 )
564 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 2, proportion = 1 )
565
566 FlexGridSizer_Selektionskrit.Add( self.CheckBoxErg__NurGefszen
567 , flag = wx.EXPAND )
568
569 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Projekt
570 , flag = wx.EXPAND )
571
572 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Typ
573 , flag = wx.EXPAND )
574
575
576
577
578
579 FlexGridSizer = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 10, hgap = 0 )
580
581 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 )
582
583 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 )
584
585 FlexGridSizer.Add( FlexGridSizer_Selektionskrit
586 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT
587 , border = 10 )
588
589 FlexGridSizer.Add( self.TreeCtrlErg__VerfStrPkt
590 , flag = wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT
591 , border = 10 )
592
593 self.SetSizerAndFit( FlexGridSizer )
594
595
596
597
598
599
600
601
602
603
604
606 """
607 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.CheckBox} 'Alle' bzw. der C{wx.ComboBox} 'Strukturen' die Datenbank ausgelesen werden muß.
608
609 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet.
610 @type ereignis: C{wx - Ereignisobjekt}
611 """
612
613
614
615
616 self.TreeCtrlErg__VerfStrPkt.wxObjekt.loescheAlles()
617
618
619
620
621
622 self.__istFlex__ = False
623 self.__aktPrjProjekteId__ = self.ComboBoxErg__Projekt.wxObjekt.gibDbId()
624 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt
625 daten__ProtId_StruktId__Projekt = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt
626
627 if( self.__aktPrjProjekteId__ != self.__dbVerbindung__.filter__prj_projekte_id ) :
628
629
630
631
632
633
634 if( self.__aktPrjProjekteId__ != self.__letztesPrjProjekteId__ ) :
635
636 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
637
638
639
640
641
642 self.__Fortschritt__.nimmDelta( delta = 100 / 3 )
643
644 self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex.clear()
645 self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex.clear()
646 self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex = []
647
648 self.__dbVerbindung__.init__GefszenId_StruktId__Projekt( Fortschritt = self.__Fortschritt__
649 , prjProjekteId = self.__aktPrjProjekteId__ )
650 self.__dbVerbindung__.init__strStrkt__Sprache__Projekt( Fortschritt = self.__Fortschritt__
651 , prjProjekteId = self.__aktPrjProjekteId__ )
652
653
654
655
656 self.__Fortschritt__.loescheFortschritt()
657
658
659
660
661 self.__istFlex__ = True
662 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex
663 daten__ProtId_StruktId__Projekt = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex
664
665
666
667
668
669
670 strStrktId = None
671 if( self.CheckBoxErg__NurGefszen.wxObjekt.gibWert() ) :
672
673 prtProtokollId = zk.gibListeTeilmenge( liste = daten__GefszenId_ProtId_siAnf__Projekt[self.__dbVerbindung__.ps_gefszenario_id] )
674
675 strStrktId = []
676
677 for strkt in daten__ProtId_StruktId__Projekt.iteritems():
678
679 if( strkt[0] not in prtProtokollId ) :
680
681 continue
682
683 strStrktId += zk.gibListeTeilmenge( liste = strkt[1] )
684
685
686
687
688
689
690 strName = None
691 if( self.ComboBoxErg__Typ.wxObjekt.gibDbId() > 0 ) :
692
693 strName = [ self.ComboBoxErg__Typ.wxObjekt.gibDbId() ]
694
695
696
697
698
699
700 self.__dbVerbindung__.selektiere__strStrkt__Sprache__Projekt( TreeCtrlErg = self.TreeCtrlErg__VerfStrPkt.wxObjekt
701 , strNameId = strName
702 , strStrktId = strStrktId
703 , istFlex = self.__istFlex__ )
704
705
706
707
708
709
710 self.TreeCtrlErg__VerfStrPkt.wxObjekt.erzeugeBaum()
711 self.TreeCtrlErg__VerfStrPkt.wxObjekt.markiereWert()
712 self.TreeCtrlErg__VerfStrPkt.wxObjekt.ExpandAll()
713
714
715
716
717
718
719
720 if( ereignis != None ) : ereignis.Skip( skip = True )
721
722
723
724
725
726
727
728
729
731 """
732 Notizen in der Statusleiste anzeigen
733
734 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
735 @type ereignis: C{wx - Ereignisobjekt}
736 """
737
738
739
740
741 self.__Notizen__.TextCtrlErg__li.nimmWert( "" )
742
743
744
745
746
747
748 if( ereignis.GetEventObject().istHauptknoten() ) :
749
750 if( ereignis != None ) : ereignis.Skip( skip = True )
751
752
753
754
755
756
757 daten__strStrkt__Sprache__Projekt = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt
758 if( self.__istFlex__ ) :
759
760 daten__strStrkt__Sprache__Projekt = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex
761
762
763
764
765
766
767 for notizen in daten__strStrkt__Sprache__Projekt :
768
769 if( notizen[1] == ereignis.GetEventObject().gibDbId() ) :
770
771 self.__Notizen__.TextCtrlErg__li.nimmWert( notizen[6] )
772
773
774
775
776
777
778
779 if( ereignis != None ) : ereignis.Skip( skip = True )
780
781
782
783
784
785
786
787
788
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
826 """
827 Klasse zur Abbildung des Teil-Eingabeformulars der verfügbaren Dokumente
828 """
829
830
831
832
833
834
835 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
836 wx.Panel.__init__( self, parent = parent )
837
838
839
840
841 self.SetName( name = "LayoutVerfuegbareDokumente" )
842
843
844
845
846
847
848
849
850 self.__Notizen__ = Notizen
851 self.__Fortschritt__ = Fortschritt
852 self.__dbVerbindung__ = dbVerbindung
853 self.__aktPrjProjekteId__ = self.__dbVerbindung__.filter__prj_projekte_id
854 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
855 self.__istFlex__ = False
856
857
858
859
860
861
862
863
864
865
866
867
868 self.CheckBoxErg__NurGefszen = FlexGridSizerWxObjTitel( parent = self
869 , wxObj = CheckBoxErg( self
870 , Notizen = self.__Notizen__ )
871 , titel = "Gefahrenszenario"
872 , orient = wx.VERTICAL )
873
874 self.CheckBoxErg__NurGefszen.wxObjekt.nimmWerteStatusleiste(
875 DBSpNameErlaeuterung = u"Verfügbare Dokumente auf das aktuelle Gefahrenszenario einschränken."
876 , DBSpName = "prj.pl_prtpsgefszenario / prj.pl_prtdokdoku" )
877
878 self.CheckBoxErg__NurGefszen.wxObjekt.Bind( wx.EVT_CHECKBOX
879 , self.__ereignisLiesDBVerfDok__ )
880
881
882
883
884
885 self.ComboBoxErg__Projekt = FlexGridSizerWxObjTitel(
886 parent = self
887 , wxObj = ComboBoxErg( self
888 , choices = []
889 , style = wx.CB_DROPDOWN|wx.CB_READONLY|wx.CB_SORT
890 , Notizen = self.__Notizen__ )
891 , orient = wx.VERTICAL
892 , titel = u"Projekt" )
893
894 self.ComboBoxErg__Projekt.wxObjekt.nimmWerteStatusleiste(
895 DBSpNameErlaeuterung = u"Verfügbare Dokumente auf das Projekt einschränken."
896 , DBSpName = "prj.projekte / prj.pl_prtdokdoku" )
897
898 self.ComboBoxErg__Projekt.wxObjekt.Bind( wx.EVT_COMBOBOX
899 , self.__ereignisLiesDBVerfDok__ )
900
901
902
903
904
905 self.ComboBoxErg__Typ = FlexGridSizerWxObjTitel( parent = self
906 , wxObj = ComboBoxErg( self
907 , choices = []
908 , style = wx.CB_DROPDOWN|wx.CB_READONLY
909 , Notizen = self.__Notizen__ )
910 , orient = wx.VERTICAL
911 , titel = "Dokumenttypen" )
912
913 self.ComboBoxErg__Typ.wxObjekt.nimmWerteStatusleiste(
914 DBSpNameErlaeuterung = "Verfügbare Dokumente anhand des Typs einschränken."
915 , DBSpName = "dok.typ / dok.doku / prj.pl_prtdokdoku" )
916
917 self.ComboBoxErg__Typ.wxObjekt.Bind( wx.EVT_COMBOBOX
918 , self.__ereignisLiesDBVerfDok__ )
919
920
921
922
923
924 self.TreeCtrlErg__VerfDok = FlexGridSizerWxObjTitel( parent = self
925 , wxObj = TreeCtrlErg( self
926 , Notizen = self.__Notizen__ )
927 , titel = "Dokumente"
928 , orient = wx.VERTICAL )
929
930 self.TreeCtrlErg__VerfDok.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
931
932 self.TreeCtrlErg__VerfDok.wxObjekt.nimmWerteStatusleiste(
933 DBSpNameErlaeuterung = "Die verfügbaren Dokumente."
934 , DBSpName = "dok.doku / prj.pl_dokausgabe" )
935
936 self.TreeCtrlErg__VerfDok.wxObjekt.Bind( wx.EVT_TREE_SEL_CHANGED
937 , self.__ereignisNotizenAnzeigen__ )
938
939
940
941
942
943
944
945
946
947
948
949
950 FlexGridSizer_Selektionskrit = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 0, hgap = 10 )
951
952 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 1, proportion = 1 )
953 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 2, proportion = 1 )
954
955 FlexGridSizer_Selektionskrit.Add( self.CheckBoxErg__NurGefszen
956 , flag = wx.EXPAND )
957
958 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Projekt
959 , flag = wx.EXPAND )
960
961 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Typ
962 , flag = wx.EXPAND )
963
964
965
966
967
968 FlexGridSizer = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 10, hgap = 0 )
969
970 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 )
971
972 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 )
973
974 FlexGridSizer.Add( FlexGridSizer_Selektionskrit
975 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT
976 , border = 10 )
977
978 FlexGridSizer.Add( self.TreeCtrlErg__VerfDok
979 , flag = wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT
980 , border = 10 )
981
982 self.SetSizerAndFit( FlexGridSizer )
983
984
985
986
987
988
989
990
991
992
993
995 """
996 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.CheckBox} 'Alle' bzw. der C{wx.ComboBox} 'Typ der Dokumente' die Datenbank ausgelesen werden muß.
997
998 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet.
999 @type ereignis: C{wx - Ereignisobjekt}
1000 """
1001
1002
1003
1004
1005 self.TreeCtrlErg__VerfDok.wxObjekt.loescheAlles()
1006
1007
1008
1009
1010
1011
1012 self.__istFlex__ = False
1013 self.__aktPrjProjekteId__ = self.ComboBoxErg__Projekt.wxObjekt.gibDbId()
1014 daten__GefszenId_ProtId_gefProt__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt
1015 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt
1016 daten__ProtId_DokuId__Projekt = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt
1017
1018 if( self.__aktPrjProjekteId__ != self.__dbVerbindung__.filter__prj_projekte_id ) :
1019
1020
1021
1022
1023
1024
1025 if( self.__aktPrjProjekteId__ != self.__letztesPrjProjekteId__ ) :
1026
1027 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
1028
1029
1030
1031
1032
1033 self.__Fortschritt__.nimmDelta( delta = 100 / 4 )
1034
1035 self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex = []
1036 self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt_Flex.clear()
1037 self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex.clear()
1038 self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex.clear()
1039
1040 self.__dbVerbindung__.init__dokDoku__Sprache__Projekt( Fortschritt = self.__Fortschritt__
1041 , prjProjekteId = self.__aktPrjProjekteId__ )
1042 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__
1043 , prjProjekteId = self.__aktPrjProjekteId__ )
1044 self.__dbVerbindung__.init__ProtId_DokuId__Projekt( Fortschritt = self.__Fortschritt__
1045 , prjProjekteId = self.__aktPrjProjekteId__ )
1046
1047
1048
1049
1050 self.__Fortschritt__.loescheFortschritt()
1051
1052
1053
1054
1055 self.__istFlex__ = True
1056 daten__GefszenId_ProtId_gefProt__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt_Flex
1057 daten__GefszenId_ProtId_siAnf__Projekt = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt_Flex
1058 daten__ProtId_DokuId__Projekt = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex
1059
1060
1061
1062
1063
1064
1065 dokDokuId = None
1066 if( self.CheckBoxErg__NurGefszen.wxObjekt.gibWert() ) :
1067
1068
1069
1070
1071
1072
1073 listePrtProtkollId = daten__GefszenId_ProtId_gefProt__Projekt[self.__dbVerbindung__.ps_gefszenario_id] + daten__GefszenId_ProtId_siAnf__Projekt[self.__dbVerbindung__.ps_gefszenario_id]
1074
1075
1076
1077
1078
1079
1080 dokDokuId = []
1081 for i in daten__ProtId_DokuId__Projekt.keys() :
1082
1083 if( allg.hatWert__List( liste = listePrtProtkollId, pos = 0, wert = i ) ) :
1084
1085 dokDokuId += zk.gibListeTeilmenge( liste = daten__ProtId_DokuId__Projekt[i] )
1086
1087
1088
1089
1090
1091
1092 typ = None
1093 if( self.ComboBoxErg__Typ.wxObjekt.gibDbId() > 0 ) :
1094
1095 typ = [self.ComboBoxErg__Typ.wxObjekt.gibDbId()]
1096
1097
1098
1099
1100
1101
1102 self.__dbVerbindung__.selektiere__dokDoku__Sprache__Projekt(
1103 TreeCtrlErg_ListBoxErg = self.TreeCtrlErg__VerfDok.wxObjekt
1104 , dokTypId = typ
1105 , dokDokuId = dokDokuId
1106 , istFlex = self.__istFlex__ )
1107
1108
1109
1110
1111
1112
1113
1114 self.TreeCtrlErg__VerfDok.wxObjekt.erzeugeBaum()
1115 self.TreeCtrlErg__VerfDok.wxObjekt.markiereWert()
1116 self.TreeCtrlErg__VerfDok.wxObjekt.ExpandAll()
1117
1118
1119
1120
1121
1122
1123
1124 if( ereignis != None ) : ereignis.Skip( skip = True )
1125
1126
1127
1128
1129
1130
1131
1132
1133
1135 """
1136 Notizen in der Statusleiste anzeigen
1137
1138 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
1139 @type ereignis: C{wx - Ereignisobjekt}
1140 """
1141
1142
1143
1144
1145 self.__Notizen__.TextCtrlErg__li.nimmWert( "" )
1146
1147
1148
1149
1150
1151
1152 if( ereignis.GetEventObject().istHauptknoten() ) :
1153
1154 if( ereignis != None ) : ereignis.Skip( skip = True )
1155
1156
1157
1158
1159
1160
1161 daten__dokDoku__Sprache__Projekt = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt
1162 if( self.__istFlex__ ) :
1163
1164 daten__dokDoku__Sprache__Projekt = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex
1165
1166
1167
1168
1169
1170
1171 for notizen in daten__dokDoku__Sprache__Projekt :
1172
1173 if( notizen[0] == ereignis.GetEventObject().gibDbId() ) :
1174
1175 self.__Notizen__.TextCtrlErg__li.nimmWert( notizen[5] )
1176
1177
1178
1179
1180
1181
1182
1183 if( ereignis != None ) : ereignis.Skip( skip = True )
1184
1185
1186
1187
1188
1189
1190
1191
1192
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1231
1232 """
1233 Klasse zur Abbildung des Eingabeformulars 'Sicherheitsanforderungen bearbeiten'.
1234 """
1235
1236
1237
1238
1239
1240
1241 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
1242 wx.Panel.__init__( self, parent = parent )
1243
1244
1245
1246
1247
1248 self.SetName( name = "Sicherheitsanforderungen" )
1249
1250
1251
1252
1253
1254 self.__Notizen__ = Notizen
1255 self.__Fortschritt__ = Fortschritt
1256 self.__dbVerbindung__ = dbVerbindung
1257
1258
1259
1260
1261
1262 self.__anderesProjektHinweisZeigen__ = True
1263
1264 self.istGeaendert__daten__ProtId_DokuId__Projekt = False
1265 self.istGeaendert__daten__dokDoku__Sprache__Projekt = False
1266 self.istGeaendert__daten__GefszenId_ProtId_siAnf__Projekt = False
1267 self.istGeaendert__daten__prtProtokoll_siAnf__Sprache__Projekt = False
1268 self.istGeaendert__daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt = False
1269 self.istGeaendert__daten__prtProtokoll_siAnf_vorg__Sprache__Projekt = False
1270 self.istGeaendert__daten__strStrkt__Sprache__Projekt = False
1271 self.istGeaendert__daten__ProtId_StruktId__Projekt = False
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285 self.SplitterWindow = wx.SplitterWindow( parent = self, id = -1, style = wx.SP_LIVE_UPDATE )
1286
1287
1288
1289
1290
1291
1292 self.SiAnf__SiAnf = SiAnf( parent = self.SplitterWindow
1293 , Notizen = self.__Notizen__
1294 , dbVerbindung = self.__dbVerbindung__ )
1295
1296 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.nimmWerteStatusleiste(
1297 DBSpNameErlaeuterung = u"Dem aktuellen Gefahrenszenario zugeordnete Sicherheitsanforderungen."
1298 , DBSpName = "prt.protokoll/prj.pp_prtprotokoll/prj.p_prtverbindung/prj.pl_prtpsgefszenario" )
1299
1300 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.Bind( wx.EVT_KEY_DOWN
1301 , self.__ereignisBearbeiten__ )
1302
1303 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.Bind( wx.EVT_TREE_ITEM_ACTIVATED
1304 , self.__ereignisSiAnfLoesen__ )
1305
1306 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.Bind( wx.EVT_TREE_ITEM_ACTIVATED
1307 , self.__ereignisStrukturPunktLoesen__ )
1308
1309 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.Bind( wx.EVT_TREE_ITEM_ACTIVATED
1310 , self.__ereignisDokumentLoesen__ )
1311
1312 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.Bind( wx.EVT_TREE_ITEM_ACTIVATED
1313 , self.__ereignisGefProtLoesen__ )
1314
1315
1316
1317
1318
1319
1320
1321 self.Notebook__Verfuegbar = wx.Notebook( self.SplitterWindow )
1322
1323 self.Notebook__Verfuegbar.AddPage( LayoutVerfuegbareSicherheitsanforderungen(
1324 parent = self.Notebook__Verfuegbar
1325 , Notizen = self.__Notizen__
1326 , Fortschritt = self.__Fortschritt__
1327 , dbVerbindung = self.__dbVerbindung__ )
1328 , u"Verfügbare\nSicherheitsanforderungen" )
1329
1330 self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.nimmTooltip( tooltip = "Doppelklick:\nSicherheitsanforderung(en) der aktuell gewählten Sicherheitsanforderung bzw. dem aktuellen Gefahrenszenario zuordnen." )
1331
1332 self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.Bind(
1333 wx.EVT_TREE_ITEM_ACTIVATED
1334 , self.__ereignisSiAnfZuordnen__ )
1335
1336
1337 self.Notebook__Verfuegbar.AddPage( LayoutVerfuegbareStrukturpunkte( parent = self.Notebook__Verfuegbar
1338 , Notizen = self.__Notizen__
1339 , Fortschritt = self.__Fortschritt__
1340 , dbVerbindung = self.__dbVerbindung__ )
1341 , u"Verfügbare\nStrukturpunkte" )
1342
1343 self.Notebook__Verfuegbar.GetPage( 1 ).TreeCtrlErg__VerfStrPkt.wxObjekt.nimmTooltip( "Doppelklick:\nStrukturpunkt der gewählten Sicherheitsanforderung zuordnen." )
1344
1345 self.Notebook__Verfuegbar.GetPage( 1 ).TreeCtrlErg__VerfStrPkt.wxObjekt.Bind(
1346 wx.EVT_TREE_ITEM_ACTIVATED
1347 , self.__ereignisStrukturPunktZuordnen__ )
1348
1349
1350 self.Notebook__Verfuegbar.AddPage( LayoutVerfuegbareDokumente( parent = self.Notebook__Verfuegbar
1351 , Notizen = self.__Notizen__
1352 , Fortschritt = self.__Fortschritt__
1353 , dbVerbindung = self.__dbVerbindung__ )
1354 , u"Verfügbare\nDokumente" )
1355
1356 self.Notebook__Verfuegbar.GetPage( 2 ).TreeCtrlErg__VerfDok.wxObjekt.nimmTooltip( "Doppelklick:\nDokument der gewählten Sicherheitsanforderung zuordnen." )
1357
1358 self.Notebook__Verfuegbar.GetPage( 2 ).TreeCtrlErg__VerfDok.wxObjekt.Bind( wx.EVT_TREE_ITEM_ACTIVATED
1359 , self.__ereignisDokumentZuordnen__ )
1360
1361
1362
1363 self.Notebook__Verfuegbar.AddPage( VerfuegbareProtokolleintraege( parent = self.Notebook__Verfuegbar
1364 , Notizen = self.__Notizen__
1365 , dbVerbindung = self.__dbVerbindung__ )
1366 , u"Verfügbare\nProtokolleinträge" )
1367
1368 self.Notebook__Verfuegbar.GetPage( 3 ).TreeCtrlErg__VerfProtokolleintraege.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
1369
1370 self.Notebook__Verfuegbar.GetPage( 3 ).TreeCtrlErg__VerfProtokolleintraege.wxObjekt.nimmTooltip( u"Doppelklick:\nProtokolleintrag der gewählten Sicherheitsanforderung zuordnen." )
1371
1372 self.Notebook__Verfuegbar.GetPage( 3 ).TreeCtrlErg__VerfProtokolleintraege.wxObjekt.Bind(
1373 wx.EVT_TREE_ITEM_ACTIVATED
1374 , self.__ereignisGefProtZuordnen__ )
1375
1376
1377
1378
1379
1380 self.Notebook__Verfuegbar.Bind( wx.EVT_NOTEBOOK_PAGE_CHANGED
1381 , self.__ereignisKKGewechselt__ )
1382
1383
1384
1385
1386
1387
1388 self.SplitterWindow.SplitVertically( self.SiAnf__SiAnf
1389 , self.Notebook__Verfuegbar )
1390
1391 BoxSizer = wx.BoxSizer( wx.VERTICAL )
1392 BoxSizer.Add( self.SplitterWindow
1393 , proportion = 1
1394 , flag = wx.EXPAND|wx.ALL|wx.ALIGN_CENTER_VERTICAL
1395 , border = 10 )
1396
1397
1398
1399
1400 self.SetSizerAndFit( BoxSizer )
1401
1402
1403
1404
1405
1406
1407 self.__ereignisKKGewechselt__()
1408
1409
1410
1411
1412
1413
1414
1415
1416
1418 """
1419 Methode die aufgerufen wird, wenn der Text der Sicherheitsanforderung bearbeitet werden soll.
1420
1421 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
1422 @type ereignis: C{wx - Ereignisobjekt}
1423 """
1424
1425
1426
1427
1428 if( self.Notebook__Verfuegbar.GetCurrentPage() != self.Notebook__Verfuegbar.GetPage( 0 ) ) :
1429
1430 if( ereignis != None ) :
1431
1432 ereignis.Skip( skip = True )
1433 return
1434
1435
1436
1437
1438
1439
1440 if( not( ereignis.GetKeyCode() == wx.WXK_F3 ) ) :
1441
1442 if( ereignis != None ) :
1443
1444 ereignis.Skip( skip = True )
1445 return
1446
1447
1448
1449
1450
1451
1452 if( ereignis.GetEventObject().istHauptknoten() ) :
1453
1454 if( ereignis != None ) :
1455
1456 ereignis.Skip( skip = True )
1457 return
1458
1459
1460
1461
1462
1463
1464 listePrtProtokollId_SiAnf = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
1465 prtProtokollId_SiAnf = ereignis.GetEventObject().gibDbId()
1466
1467
1468
1469
1470
1471
1472 dlg = BearbeiteUebersetzung( parent = self
1473 , Notizen = self.__Notizen__
1474 , Fortschritt = self.__Fortschritt__
1475 , dbVerbindung = self.__dbVerbindung__
1476 , sprUebvarId = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][3]
1477 , notizen_db = None
1478 , notizenKontext_db = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][1] )
1479
1480
1481 dlg.ShowModal()
1482 dlg.Destroy()
1483
1484
1485
1486
1487
1488
1489
1490 if( dlg.gibWerte()[0]
1491 and ( dlg.gibWerte()[1] != self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][3]
1492 or dlg.gibWerte()[2] != self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][1] ) ) :
1493
1494
1495
1496
1497
1498 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
1499
1500 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__
1501 , listeWerte = [[
1502
1503
1504 self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][4]
1505
1506
1507
1508 , dlg.gibWerte()[2]
1509
1510
1511
1512 , None
1513
1514
1515
1516 , None
1517
1518
1519
1520 , None
1521
1522
1523
1524 , None
1525
1526
1527
1528 , 0
1529
1530
1531
1532 , prtProtokollId_SiAnf
1533
1534
1535
1536 , dlg.gibWerte()[1]
1537
1538
1539
1540 , None
1541
1542
1543
1544 , None ]] )
1545
1546
1547
1548
1549
1550
1551 self.istGeaendert__daten__prtProtokoll_siAnf__Sprache__Projekt = True
1552 self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt.clear()
1553 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
1554
1555
1556
1557
1558 self.__Fortschritt__.loescheFortschritt()
1559
1560
1561
1562
1563
1564
1565
1566 self.SiAnf__SiAnf.liesDB()
1567 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
1568
1569 self.Notebook__Verfuegbar.GetPage( 0 ).__ereignisLiesDBVerfSiAnf__()
1570 self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.ExpandAll()
1571
1572
1573
1574
1575
1576
1577
1578 if( ereignis != None ) : ereignis.Skip( skip = True )
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1591 """
1592 Das aktuelle Dokument von der gewählten Sicherheitsanforderung lösen.
1593
1594 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
1595 @type ereignis: C{wx - Ereignisobjekt}
1596 """
1597
1598
1599
1600
1601
1602
1603 if( self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 0 )
1604 or ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) != HK_DOK
1605 or ereignis.GetEventObject().istHauptknoten() ) :
1606
1607 if( ereignis != None ) :
1608
1609 ereignis.Skip( skip = True )
1610 return
1611
1612
1613
1614
1615
1616
1617 dokDokuId = ereignis.GetEventObject().gibDbId()
1618 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
1619 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt ).index( dokDokuId )
1620
1621
1622
1623
1624
1625
1626 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
1627
1628
1629
1630
1631
1632 self.__dbVerbindung__.schreibe__prjPlPrtDokDoku( Fortschritt = self.__Fortschritt__
1633 , listeWerte = [
1634
1635
1636 self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt[lfdNr][5]
1637
1638
1639
1640 , 'true'
1641
1642
1643
1644 , dokDokuId
1645
1646
1647
1648 , self.__dbVerbindung__.filter__prj_projekte_id
1649
1650
1651
1652 , prtProtokollId_SiAnf ] )
1653
1654
1655
1656
1657
1658
1659 self.istGeaendert__daten__ProtId_DokuId__Projekt = True
1660 self.__dbVerbindung__.daten__ProtId_DokuId__Projekt.clear()
1661 self.__dbVerbindung__.init__ProtId_DokuId__Projekt( Fortschritt = self.__Fortschritt__ )
1662
1663
1664
1665
1666 self.__Fortschritt__.loescheFortschritt()
1667
1668
1669
1670
1671
1672
1673
1674 self.SiAnf__SiAnf.liesDB()
1675 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
1676
1677
1678
1679
1680
1681
1682
1683 if( ereignis != None ) : ereignis.Skip( skip = True )
1684
1685
1686
1687
1688
1689
1690
1691
1692
1694 """
1695 Das aktuelle Dokument der gewählten Sicherheitsanforderung zuordnen.
1696
1697 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
1698 @type ereignis: C{wx - Ereignisobjekt}
1699 """
1700
1701
1702
1703
1704
1705 if( ereignis.GetEventObject().istHauptknoten()
1706 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.istHauptknoten()
1707 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetSelection() == self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetRootItem() ) :
1708
1709 if( ereignis != None ) : ereignis.Skip( skip = True )
1710 return
1711
1712
1713
1714
1715
1716 dokDokuId = ereignis.GetEventObject().gibDbId()
1717 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
1718
1719 bereitsZugeordnet = []
1720 if( prtProtokollId_SiAnf in self.__dbVerbindung__.daten__ProtId_DokuId__Projekt ) :
1721 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt[prtProtokollId_SiAnf] )
1722
1723
1724
1725
1726
1727
1728
1729
1730 if( dokDokuId in bereitsZugeordnet ) :
1731
1732 dlg = wx.MessageDialog( self
1733 , "Das Dokument ist bereits zugeordnet !\n\nDas Verschieben wird abgebrochen."
1734 , "Dokument wird nicht zugeordnet !"
1735 , wx.OK | wx.ICON_ERROR )
1736 dlg.CenterOnScreen()
1737 dlg.ShowModal()
1738 dlg.Destroy()
1739
1740 if( ereignis != None ) :
1741
1742 ereignis.Skip( skip = True )
1743 return
1744
1745
1746
1747
1748
1749
1750 lfdNr = None
1751 notizen = None
1752 nr = None
1753 spr_uebvar_id = None
1754 spr_uebvar_id_zus = None
1755 aspekt = None
1756 if( self.Notebook__Verfuegbar.GetPage( 2 ).__istFlex__ ) :
1757
1758 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex ).index( dokDokuId )
1759
1760 notizen = self.__dbVerbindung__.daten__dokDoku__Sprache[dokDokuId][0][0]
1761 aspekt = self.__dbVerbindung__.daten__dokDoku__Sprache[dokDokuId][0][2]
1762
1763
1764 else :
1765
1766 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt ).index( dokDokuId )
1767
1768 notizen = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt[lfdNr][5]
1769 aspekt = self.__dbVerbindung__.daten__dokDoku__Sprache[dokDokuId][0][2]
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782 if( ( aspekt == self.__dbVerbindung__.konstante__dok_doku_aspekt[0] )
1783 and not ( self.__dbVerbindung__.ist__prtTypId( typ = 'D', id = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][2] )
1784 or self.__dbVerbindung__.ist__prtTypId( typ = 'P', id = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_SiAnf][0][2] ) ) ) :
1785
1786
1787 dlg = wx.MessageDialog( self
1788 , "Quelldokumente (Id Q:) dürfen jeder Sicherheitsanforderung zugeordnet werden.\n\nBeweisdokumente (Id B:), dürfen nur der Dokumentationsanforderung (Id [D]) oder Prüfung (Id [P]) zugeordnet werden !\n\nDas Verschieben wird abgebrochen."
1789 , "Dokument wird nicht zugeordnet !"
1790 , wx.OK | wx.ICON_ERROR )
1791 dlg.CenterOnScreen()
1792 dlg.ShowModal()
1793 dlg.Destroy()
1794
1795 if( ereignis != None ) :
1796
1797 ereignis.Skip( skip = True )
1798 return
1799
1800
1801
1802
1803
1804
1805
1806 self.__Fortschritt__.nimmDelta( delta = 100 / 2 )
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816 if( self.Notebook__Verfuegbar.GetPage( 2 ).__istFlex__ ) :
1817
1818
1819
1820
1821
1822
1823
1824
1825 if( self.__anderesProjektHinweisZeigen__ ) :
1826
1827 dlg = wx.MessageDialog( self
1828 , "Das Dokument befindet sich in einem anderen Projekt.\n\nEs wird nur die Dokument-Id und Dokumentbezeichnung übernommen.\n\nBehalte diesen Hinweis im Kopf. Er wird nicht mehr angezeigt, solange Du dieses Fenster geöffnet hast.\n\nSoll das Dokument in das aktuelle Projekt übernommen werden ?"
1829 , "Dokument in das aktuelle Projekt übernehmen ?"
1830 , style = wx.YES_NO | wx.ICON_QUESTION )
1831
1832 dlg.CenterOnScreen()
1833
1834 if ( dlg.ShowModal() == wx.ID_NO ):
1835
1836 dlg.Destroy()
1837
1838 if( ereignis != None ) :
1839
1840 ereignis.Skip( skip = True )
1841 return
1842
1843 dlg.Destroy()
1844 self.__anderesProjektHinweisZeigen__ = False
1845
1846
1847
1848
1849 self.__dbVerbindung__.schreibe__prjPlDokAusgabe( Fortschritt = self.__Fortschritt__
1850 , listeWerte = [
1851
1852
1853 dokDokuId
1854
1855
1856
1857 , '????'
1858
1859
1860
1861 , self.__dbVerbindung__.daten__dokDoku__Sprache[dokDokuId][0][3] ] )
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875 self.__dbVerbindung__.schreibe__prjPlPrtDokDoku( Fortschritt = self.__Fortschritt__
1876 , listeWerte = [
1877
1878
1879 notizen
1880
1881
1882
1883 , 'false'
1884
1885
1886
1887 , dokDokuId
1888
1889
1890
1891 , self.__dbVerbindung__.filter__prj_projekte_id
1892
1893
1894
1895 , prtProtokollId_SiAnf ] )
1896
1897
1898
1899
1900
1901
1902 self.istGeaendert__daten__ProtId_DokuId__Projekt = True
1903 self.__dbVerbindung__.daten__ProtId_DokuId__Projekt.clear()
1904 self.__dbVerbindung__.init__ProtId_DokuId__Projekt( Fortschritt = self.__Fortschritt__ )
1905
1906
1907 if( self.Notebook__Verfuegbar.GetPage( 2 ).__istFlex__ ) :
1908
1909 self.istGeaendert__daten__dokDoku__Sprache__Projekt = True
1910 self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt = []
1911 self.__dbVerbindung__.init__dokDoku__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
1912
1913
1914
1915
1916 self.__Fortschritt__.loescheFortschritt()
1917
1918
1919
1920
1921
1922
1923 self.SiAnf__SiAnf.liesDB()
1924 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
1925
1926
1927
1928
1929
1930
1931
1932 if( ereignis != None ) : ereignis.Skip( skip = True )
1933
1934
1935
1936
1937
1938
1939
1940
1942 """
1943 Den aktuellen Gefahrenprotokolleintrag von der gewählten Sicherheitsanforderung lösen.
1944
1945 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
1946 @type ereignis: C{wx - Ereignisobjekt}
1947 """
1948
1949
1950
1951
1952
1953
1954 if( self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 0 )
1955 or ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) != HK_PE
1956 or ereignis.GetEventObject().istHauptknoten() ) :
1957
1958 if( ereignis != None ) :
1959
1960 ereignis.Skip( skip = True )
1961 return
1962
1963
1964
1965
1966
1967
1968 listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
1969 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
1970
1971
1972
1973
1974
1975
1976 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
1977
1978
1979
1980
1981
1982 for protId in listePrtProtokollId :
1983
1984 self.__dbVerbindung__.schreibe__prjPPrtVerbindung(
1985 Fortschritt = self.__Fortschritt__
1986 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
1987
1988 , prtProtokollIdVorg = prtProtokollId_SiAnf
1989
1990 , prtProtokollIdNachf = protId
1991
1992 , trennen = True )
1993
1994
1995
1996
1997
1998
1999 self.istGeaendert__daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt = True
2000 self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt.clear()
2001 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2002
2003
2004
2005
2006
2007 self.__Fortschritt__.loescheFortschritt()
2008
2009
2010
2011
2012
2013
2014
2015 self.SiAnf__SiAnf.liesDB()
2016 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2017
2018
2019
2020
2021
2022
2023
2024 if( ereignis != None ) : ereignis.Skip( skip = True )
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2038 """
2039 Den aktuellen Gefahrenprotokolleintrag / die -einträge der gewählten Sicherheitsanforderung zuordnen.
2040
2041 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
2042 @type ereignis: C{wx - Ereignisobjekt}
2043 """
2044
2045
2046
2047
2048
2049 if( ereignis.GetEventObject().istHauptknoten()
2050 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.istHauptknoten()
2051 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetSelection() == self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetRootItem() ) :
2052
2053 if( ereignis != None ) : ereignis.Skip( skip = True )
2054 return
2055
2056
2057
2058
2059
2060
2061 listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
2062 prtProtokollId = ereignis.GetEventObject().gibDbId()
2063 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
2064
2065 bereitsZugeordnet = []
2066 if( prtProtokollId_SiAnf in self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt ) :
2067 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt[prtProtokollId_SiAnf] )
2068
2069
2070
2071
2072
2073
2074
2075
2076 if( prtProtokollId in bereitsZugeordnet ) :
2077
2078 dlg = wx.MessageDialog( self
2079 , "Der Gefahrenprotokolleintrag ist bereits zugeordnet !\n\nDas Verschieben wird abgebrochen."
2080 , "Gefahrenprotokolleintrag wird nicht zugeordnet !"
2081 , wx.OK | wx.ICON_ERROR )
2082 dlg.CenterOnScreen()
2083 dlg.ShowModal()
2084 dlg.Destroy()
2085
2086 if( ereignis != None ) :
2087
2088 ereignis.Skip( skip = True )
2089 return
2090
2091
2092
2093
2094
2095
2096 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
2097
2098
2099
2100
2101
2102 for protId in listePrtProtokollId :
2103
2104 self.__dbVerbindung__.schreibe__prjPPrtVerbindung(
2105 Fortschritt = self.__Fortschritt__
2106 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
2107
2108 , prtProtokollIdVorg = prtProtokollId_SiAnf
2109
2110 , prtProtokollIdNachf = protId )
2111
2112
2113
2114
2115
2116
2117 self.istGeaendert__daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt = True
2118 self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt.clear()
2119 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2120
2121
2122
2123
2124
2125
2126 self.__Fortschritt__.loescheFortschritt()
2127
2128
2129
2130
2131
2132
2133
2134 self.SiAnf__SiAnf.liesDB()
2135 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2136
2137
2138
2139
2140
2141
2142
2143 if( ereignis != None ) : ereignis.Skip( skip = True )
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2155 """
2156 Es wurde zwischen den Karteikarten gewechselt.
2157
2158 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet.
2159 @type ereignis: C{wx - Ereignisobjekt}
2160 """
2161
2162
2163
2164
2165 if( self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 0 ) ) :
2166
2167
2168
2169
2170 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.SetBackgroundColour( farbeBearbeiten )
2171 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.nimmTooltip( u"Doppelklick:\nVerbindung zwischen Sicherheitsanforderung und Gefahrenszenario aufheben.\n\nF3:\nÜbersetzung der Sicherheitsanforderung bearbeiten." )
2172
2173
2174
2175
2176
2177
2178 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.SetBackgroundColour( self.GetBackgroundColour() )
2179 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.nimmTooltip( "" )
2180
2181
2182
2183
2184
2185 else :
2186
2187
2188
2189
2190 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.SetBackgroundColour( 'WHITE' )
2191 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.nimmTooltip( "" )
2192
2193
2194
2195
2196
2197 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.SetBackgroundColour( farbeBearbeiten )
2198
2199 if( self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 1 )
2200 or self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 2 )
2201 or self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 3 ) ) :
2202
2203 self.SiAnf__SiAnf.TreeCtrlErg__Zugeordnet.nimmTooltip( u"Doppelklick:\nVerbindung zwischen Sicherheitsanforderung und Strukturpunkt, Dokument oder Protokolleintrag aufheben." )
2204
2205
2206
2207
2208
2209
2210
2211 if( ereignis != None ) : ereignis.Skip( skip = True )
2212
2213
2214
2215
2216
2217
2218
2219
2220
2222 """
2223 Die aktuelle(n) Sicherheitsanforderungen von der Sicherheitsanforderung (Technische Maßnahme) bzw. dem Gefahrenszenario lösen.
2224
2225 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
2226 @type ereignis: C{wx - Ereignisobjekt}
2227 """
2228
2229
2230
2231
2232
2233 if( self.Notebook__Verfuegbar.GetCurrentPage() != self.Notebook__Verfuegbar.GetPage( 0 )
2234 or ereignis.GetEventObject().istHauptknoten() ) :
2235
2236 if( ereignis != None ) :
2237
2238 ereignis.Skip( skip = True )
2239 return
2240
2241
2242
2243
2244
2245
2246 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
2247
2248
2249
2250
2251
2252
2253
2254 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario(
2255 Fortschritt = self.__Fortschritt__
2256 , listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
2257 , psGefszenarioId = self.__dbVerbindung__.ps_gefszenario_id
2258 , logentfernt = 'true' )
2259
2260
2261
2262
2263
2264
2265 self.istGeaendert__daten__GefszenId_ProtId_siAnf__Projekt = True
2266 self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt.clear()
2267 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__ )
2268
2269
2270
2271
2272
2273 self.__Fortschritt__.loescheFortschritt()
2274
2275
2276
2277
2278
2279
2280
2281
2282 self.SiAnf__SiAnf.liesDB()
2283 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2284
2285 self.Notebook__Verfuegbar.GetPage( 0 ).__ereignisLiesDBVerfSiAnf__()
2286 self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2287
2288
2289
2290
2291
2292
2293
2294 if( ereignis != None ) : ereignis.Skip( skip = True )
2295
2296
2297
2298
2299
2300
2301
2302
2303
2305 """
2306 Die aktuelle(n) Sicherheitsanforderungen der gewählten Sicherheitsanforderung (dem Gefahrenszenario) zuordnen.
2307
2308 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
2309 @type ereignis: C{wx - Ereignisobjekt}
2310 """
2311
2312
2313
2314
2315 if( ereignis.GetEventObject().istHauptknoten() ) :
2316
2317 if( ereignis != None ) : ereignis.Skip( skip = True )
2318 return
2319
2320
2321
2322
2323
2324
2325 listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
2326 prtProtokollId = ereignis.GetEventObject().gibDbId()
2327 prtProtokollId_Vorg = None
2328
2329 if( not ( self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.istHauptknoten()
2330 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetSelection() == self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetRootItem() ) ) :
2331
2332 prtProtokollId_Vorg = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343 istFehlermeldung = False
2344
2345
2346 if( prtProtokollId_Vorg is None ) :
2347
2348 istFehlermeldung = ( ( prtProtokollId not in self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt.keys() ) and ( prtProtokollId in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) ) )
2349
2350
2351 else :
2352
2353 istFehlermeldung = ( ( prtProtokollId in self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt ) and ( prtProtokollId_Vorg in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt[prtProtokollId] ) ) )
2354
2355
2356 if( istFehlermeldung ) :
2357
2358 dlg = wx.MessageDialog( self
2359 , "Die Sicherheitsanforderung ist bereits zugeordnet !\n\nDas Verschieben wird abgebrochen."
2360 , "Sicherheitsanforderung wird nicht zugeordnet !"
2361 , wx.OK | wx.ICON_ERROR )
2362 dlg.CenterOnScreen()
2363 dlg.ShowModal()
2364 dlg.Destroy()
2365
2366 if( ereignis != None ) :
2367
2368 ereignis.Skip( skip = True )
2369 return
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380 if( ( prtProtokollId_Vorg is None )
2381 and ( prtProtokollId in self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt ) ) :
2382
2383 dlg = wx.MessageDialog( self
2384 , "Soll die Verbindung zu sämtlichen Sicherheitsanforderungen aufgehoben und die aktuell gewählte\n\nSicherheitsanforderung-Id\t" + zk.gibIdWertNotizen( id = prtProtokollId, zusInfo = "" ) + "\n\nauf die oberste Ebene geschoben werden ?"
2385 , "Verbindungen aufheben ?"
2386 , style = wx.YES_NO | wx.ICON_QUESTION )
2387
2388 dlg.CenterOnScreen()
2389
2390 if ( dlg.ShowModal() == wx.ID_NO ):
2391
2392 dlg.Destroy()
2393
2394 if( ereignis != None ) :
2395
2396 ereignis.Skip( skip = True )
2397 return
2398
2399 dlg.Destroy()
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411 if( prtProtokollId_Vorg is not None ) :
2412
2413 if( not self.__dbVerbindung__.ist__prtTypId( typ = 'T', id = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId_Vorg][0][2] )
2414 or self.__dbVerbindung__.ist__prtTypId( typ = 'T', id = self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt[prtProtokollId][0][2] ) ) :
2415
2416 dlg = wx.MessageDialog( self
2417 , "Verbindungen können nur zwischen einer technischen Maßnahme (Id [T]) und den restlichen Typen der Sicherheitsanforderungen (Id [D,P,O]) hergestellt werden.\n\nDas Verschieben wird abgebrochen."
2418 , "Sicherheitsanforderung wird nicht zugeordnet !"
2419 , wx.OK | wx.ICON_ERROR )
2420
2421 dlg.CenterOnScreen()
2422 dlg.ShowModal()
2423 dlg.Destroy()
2424
2425 if( ereignis != None ) :
2426
2427 ereignis.Skip( skip = True )
2428 return
2429
2430
2431
2432
2433
2434
2435 self.__Fortschritt__.nimmDelta( delta = 100 / 8 )
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446 if( self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.istPermDaten_Flex ) :
2447
2448
2449
2450
2451
2452
2453
2454 if( self.__anderesProjektHinweisZeigen__ ) :
2455
2456 dlg = wx.MessageDialog( self
2457 , "Die Sicherheitsanforderung befindet sich in einem anderen Projekt.\n\nBitte beachte, daß die zugeordneten Sicherheitsanforderungen nicht übernommen werden.\nDie zugeordneten Strukturpunkte werden vollständig übernommen. Von den zugeordneten Dokumenten werden nur Dokument-Id und Dokumentbezeichnung übernommen. Gefahrenprotokolleinträge werden nicht übernommen.\n\nBehalte diese Hinweise im Kopf.Sie werden nicht mehr angezeigt, solange Du dieses Fenster geöffnet hast.\n\nSoll die Sicherheitsanforderung in das aktuelle Projekt übernommen werden ?"
2458 , "Sicherheitsanforderung in das aktuelle Projekt übernehmen ?"
2459 , style = wx.YES_NO | wx.ICON_QUESTION )
2460
2461 dlg.CenterOnScreen()
2462
2463 if ( dlg.ShowModal() == wx.ID_NO ):
2464
2465 dlg.Destroy()
2466
2467 if( ereignis != None ) :
2468
2469 ereignis.Skip( skip = True )
2470 return
2471
2472 dlg.Destroy()
2473 self.__anderesProjektHinweisZeigen__ = False
2474
2475
2476
2477
2478
2479
2480
2481
2482 listePrtProtokollId = [prtProtokollId]
2483 if( prtProtokollId not in self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt ) :
2484
2485 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__
2486 , listeWerte = [[
2487
2488
2489 None
2490
2491
2492
2493 , self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt_Flex[prtProtokollId][0][1]
2494
2495
2496
2497 , None
2498
2499
2500
2501 , None
2502
2503
2504
2505 , None
2506
2507
2508
2509 , None
2510
2511
2512
2513 , 0
2514
2515
2516
2517 , prtProtokollId
2518
2519
2520
2521 , self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt_Flex[prtProtokollId][0][3]
2522
2523
2524
2525 , None
2526
2527
2528
2529 , None ]] )
2530
2531
2532
2533
2534
2535 self.istGeaendert__daten__prtProtokoll_siAnf__Sprache__Projekt = True
2536 self.__dbVerbindung__.daten__prtProtokoll_siAnf__Sprache__Projekt.clear()
2537 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549 if( prtProtokollId in self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex ) :
2550
2551
2552
2553
2554 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt, spalte = 1 )
2555
2556 istAenderungProjekt = False
2557 for strId in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex[prtProtokollId] ) :
2558
2559 if( bereitsZugeordnet is not None and strId in bereitsZugeordnet ) : continue
2560
2561 istAenderungProjekt = True
2562
2563 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex, spalte = 1 ).index( strId )
2564
2565 self.__dbVerbindung__.schreibe__PrjPpStrStrkt(
2566 Fortschritt = self.__Fortschritt__
2567 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
2568 , strStrktId = strId
2569 , prjPersonenId = "1"
2570 , sprUebvarId = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][4]
2571 , fbereignis = ""
2572 , notizen = "" )
2573
2574 if( len( str( self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][2] ) ) > 0 ) :
2575
2576 self.__dbVerbindung__.schreibe__prjPStrverbindung(
2577 Fortschritt = self.__Fortschritt__
2578 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
2579 , strStrktIdVorg = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][2]
2580 , strStrktIdNachf = strId )
2581
2582
2583
2584
2585
2586 bereitsZugeordnet = None
2587 if( prtProtokollId in self.__dbVerbindung__.daten__ProtId_StruktId__Projekt ) :
2588
2589 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt[prtProtokollId] )
2590
2591 istAenderungSiAnf = False
2592 for strId in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt_Flex[prtProtokollId] ) :
2593
2594 if( bereitsZugeordnet is not None and strId in bereitsZugeordnet ) : continue
2595
2596 istAenderungSiAnf = True
2597
2598 self.__dbVerbindung__.schreibe__PrjPPrtStrStrkt( Fortschritt = self.__Fortschritt__
2599 , listeWerte = [
2600
2601
2602 prtProtokollId
2603
2604
2605
2606 , strId ] )
2607
2608
2609
2610
2611 if( istAenderungProjekt ) :
2612
2613 self.istGeaendert__daten__strStrkt__Sprache__Projekt = True
2614 self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt = []
2615 self.__dbVerbindung__.init__strStrkt__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2616
2617 if( istAenderungSiAnf ) :
2618
2619 self.istGeaendert__daten__ProtId_StruktId__Projekt = True
2620 self.__dbVerbindung__.daten__ProtId_StruktId__Projekt.clear()
2621 self.__dbVerbindung__.init__ProtId_StruktId__Projekt( Fortschritt = self.__Fortschritt__ )
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632 if( prtProtokollId in self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex ) :
2633
2634
2635
2636
2637 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt )
2638
2639 istAenderungProjekt = False
2640 for dokId in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex[prtProtokollId] ) :
2641
2642 if( bereitsZugeordnet is not None and dokId in bereitsZugeordnet ) : continue
2643
2644 istAenderungProjekt = True
2645
2646 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex ).index( dokId )
2647
2648 self.__dbVerbindung__.schreibe__prjPlDokAusgabe( Fortschritt = self.__Fortschritt__
2649 , listeWerte = [
2650
2651
2652 dokId
2653
2654
2655
2656 , '????'
2657
2658
2659
2660 , self.__dbVerbindung__.daten__dokDoku__Sprache[dokId][0][3] ] )
2661
2662
2663
2664
2665 bereitsZugeordnet = None
2666 if( prtProtokollId in self.__dbVerbindung__.daten__ProtId_DokuId__Projekt ) :
2667
2668 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt[prtProtokollId] )
2669
2670 istAenderungSiAnf = False
2671 for dokId in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_DokuId__Projekt_Flex[prtProtokollId] ) :
2672
2673 if( bereitsZugeordnet is not None and dokId in bereitsZugeordnet ) : continue
2674
2675 istAenderungSiAnf = True
2676
2677 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt_Flex ).index( dokId )
2678
2679 self.__dbVerbindung__.schreibe__prjPlPrtDokDoku( Fortschritt = self.__Fortschritt__
2680 , listeWerte = [
2681
2682
2683 self.__dbVerbindung__.daten__dokDoku__Sprache[dokId][0][0]
2684
2685
2686
2687 , 'false'
2688
2689
2690
2691 , dokId
2692
2693
2694
2695 , self.__dbVerbindung__.filter__prj_projekte_id
2696
2697
2698
2699 , prtProtokollId ] )
2700
2701
2702
2703
2704 if( istAenderungProjekt ) :
2705
2706 self.istGeaendert__daten__dokDoku__Sprache__Projekt = True
2707 self.__dbVerbindung__.daten__dokDoku__Sprache__Projekt = []
2708 self.__dbVerbindung__.init__dokDoku__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2709
2710 if( istAenderungSiAnf ) :
2711
2712 self.istGeaendert__daten__ProtId_DokuId__Projekt = True
2713 self.__dbVerbindung__.daten__ProtId_DokuId__Projekt.clear()
2714 self.__dbVerbindung__.init__ProtId_DokuId__Projekt( Fortschritt = self.__Fortschritt__ )
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario( Fortschritt = self.__Fortschritt__
2731 , listePrtProtokollId = listePrtProtokollId
2732 , psGefszenarioId = self.__dbVerbindung__.ps_gefszenario_id )
2733
2734
2735
2736 if( prtProtokollId_Vorg is not None ) :
2737
2738 for gefszenId in self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt.iteritems():
2739
2740 if( prtProtokollId in zk.gibListeTeilmenge( liste = gefszenId[1] ) ) :
2741
2742 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario( Fortschritt = self.__Fortschritt__
2743 , listePrtProtokollId = [prtProtokollId_Vorg]
2744 , psGefszenarioId = gefszenId[0] )
2745
2746
2747
2748
2749 self.istGeaendert__daten__GefszenId_ProtId_siAnf__Projekt = True
2750 self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt.clear()
2751 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__ )
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765 if( prtProtokollId_Vorg is not None ) :
2766
2767 self.__dbVerbindung__.schreibe__prjPPrtVerbindung(
2768 Fortschritt = self.__Fortschritt__
2769 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
2770 , prtProtokollIdVorg = prtProtokollId_Vorg
2771 , prtProtokollIdNachf = prtProtokollId )
2772
2773
2774
2775
2776
2777 self.istGeaendert__daten__prtProtokoll_siAnf_vorg__Sprache__Projekt = True
2778 self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt.clear()
2779 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794 if( prtProtokollId_Vorg is None
2795 and prtProtokollId in self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt ) :
2796
2797 for prtProtokollId_vorg in self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt[prtProtokollId] :
2798
2799 self.__dbVerbindung__.schreibe__prjPPrtVerbindung(
2800 Fortschritt = self.__Fortschritt__
2801 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
2802 , prtProtokollIdVorg = prtProtokollId_vorg[0]
2803 , prtProtokollIdNachf = prtProtokollId
2804 , trennen = True )
2805
2806
2807
2808
2809
2810 self.istGeaendert__daten__prtProtokoll_siAnf_vorg__Sprache__Projekt = True
2811 self.__dbVerbindung__.daten__prtProtokoll_siAnf_vorg__Sprache__Projekt.clear()
2812 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
2813
2814
2815
2816
2817
2818 self.__Fortschritt__.loescheFortschritt()
2819
2820
2821
2822
2823
2824
2825 self.SiAnf__SiAnf.liesDB()
2826 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2827
2828 self.Notebook__Verfuegbar.GetPage( 0 ).__ereignisLiesDBVerfSiAnf__()
2829 self.Notebook__Verfuegbar.GetPage( 0 ).SiAnf__VerfSiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2830
2831
2832
2833
2834
2835
2836
2837 if( ereignis != None ) : ereignis.Skip( skip = True )
2838
2839
2840
2841
2842
2843
2844
2845
2846
2848 """
2849 Den aktuellen Strukturpunkt / die Strukturpunkte von der gewählten Sicherheitsanforderung lösen.
2850
2851 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
2852 @type ereignis: C{wx - Ereignisobjekt}
2853 """
2854
2855
2856
2857
2858
2859
2860 if( self.Notebook__Verfuegbar.GetCurrentPage() == self.Notebook__Verfuegbar.GetPage( 0 )
2861 or ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) != HK_STR
2862 or ereignis.GetEventObject().istHauptknoten() ) :
2863
2864 if( ereignis != None ) :
2865
2866 ereignis.Skip( skip = True )
2867 return
2868
2869
2870
2871
2872
2873
2874 listeStrStrktId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
2875 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
2876
2877
2878
2879
2880
2881
2882
2883 self.__Fortschritt__.nimmDelta( delta = 100 / 1 )
2884
2885
2886
2887
2888
2889
2890 for strId in listeStrStrktId :
2891
2892 self.__dbVerbindung__.schreibe__PrjPPrtStrStrkt( Fortschritt = self.__Fortschritt__
2893 , listeWerte = [
2894
2895
2896 prtProtokollId_SiAnf
2897
2898
2899
2900 , strId ]
2901 , entfernen = True )
2902
2903
2904
2905
2906
2907
2908 self.istGeaendert__daten__ProtId_StruktId__Projekt = True
2909 self.__dbVerbindung__.daten__ProtId_StruktId__Projekt.clear()
2910 self.__dbVerbindung__.init__ProtId_StruktId__Projekt( Fortschritt = self.__Fortschritt__ )
2911
2912
2913
2914
2915
2916
2917 self.__Fortschritt__.loescheFortschritt()
2918
2919
2920
2921
2922
2923
2924 self.SiAnf__SiAnf.liesDB()
2925 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
2926
2927
2928
2929
2930
2931
2932
2933 if( ereignis != None ) : ereignis.Skip( skip = True )
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2945 """
2946 Den aktuellen Strukturpunkt / die Strukturpunkte der gewählten Sicherheitsanforderung zuordnen.
2947
2948 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
2949 @type ereignis: C{wx - Ereignisobjekt}
2950 """
2951
2952
2953
2954
2955
2956 if( ereignis.GetEventObject().istHauptknoten()
2957 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.istHauptknoten()
2958 or self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetSelection() == self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.GetRootItem() ) :
2959
2960 if( ereignis != None ) : ereignis.Skip( skip = True )
2961 return
2962
2963
2964
2965
2966
2967
2968 listeStrStrktId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() )
2969 strStrktId = ereignis.GetEventObject().gibDbId()
2970 prtProtokollId_SiAnf = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.gibDbId()
2971
2972 bereitsZugeordnet = []
2973 if( prtProtokollId_SiAnf in self.__dbVerbindung__.daten__ProtId_StruktId__Projekt ) :
2974 bereitsZugeordnet = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_StruktId__Projekt[prtProtokollId_SiAnf] )
2975
2976
2977
2978
2979
2980
2981
2982
2983 if( strStrktId in bereitsZugeordnet ) :
2984
2985 dlg = wx.MessageDialog( self
2986 , "Der Strukturpunkt ist bereits zugeordnet !\n\nDas Verschieben wird abgebrochen."
2987 , "Strukturpunkt wird nicht zugeordnet !"
2988 , wx.OK | wx.ICON_ERROR )
2989 dlg.CenterOnScreen()
2990 dlg.ShowModal()
2991 dlg.Destroy()
2992
2993 if( ereignis != None ) :
2994
2995 ereignis.Skip( skip = True )
2996 return
2997
2998
2999
3000
3001
3002
3003
3004 self.__Fortschritt__.nimmDelta( delta = 100 / 2 )
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016 if( self.Notebook__Verfuegbar.GetPage( 1 ).__istFlex__ ) :
3017
3018
3019
3020
3021
3022
3023
3024
3025 if( self.__anderesProjektHinweisZeigen__ ) :
3026
3027 dlg = wx.MessageDialog( self
3028 , "Der Strukturpunkt befindet sich in einem anderen Projekt.\n\nEr wird gemeinsam mit seinen untergeordneten Strukturpunkten in das aktuelle Projekt übernommen. Sollte der Vorgänger des Strukturpunktes bereits im Projekt vorhanden sein, wird die Verbindung zwischen beiden Strukturpunkten hergestellt.\n\nBehalte diese Hinweise im Kopf. Sie wedren nicht mehr angezeigt, solange Du dieses Fenster geöffnet hast.\n\nSoll der Strukturpunkt (einschließlich untergeordneter Strukturpunkte) in das aktuelle Projekt übernommen werden ?"
3029 , "Strukturpunkt in das aktuelle Projekt übernehmen ?"
3030 , style = wx.YES_NO | wx.ICON_QUESTION )
3031
3032 dlg.CenterOnScreen()
3033
3034 if ( dlg.ShowModal() == wx.ID_NO ):
3035
3036 dlg.Destroy()
3037
3038 if( ereignis != None ) :
3039
3040 ereignis.Skip( skip = True )
3041 return
3042
3043 dlg.Destroy()
3044 self.__anderesProjektHinweisZeigen__ = False
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054 bereitsVorhanden = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt, spalte = 1 )
3055
3056 istAenderung = False
3057 for strId in listeStrStrktId :
3058
3059 if( bereitsVorhanden is not None and strId in bereitsVorhanden ) : continue
3060
3061 istAenderung = True
3062
3063 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex, spalte = 1 ).index( strId )
3064
3065 self.__dbVerbindung__.schreibe__PrjPpStrStrkt(
3066 Fortschritt = self.__Fortschritt__
3067 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
3068 , strStrktId = strId
3069 , prjPersonenId = "1"
3070 , sprUebvarId = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][4]
3071 , fbereignis = ""
3072 , notizen = "" )
3073
3074 if( len( str( self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][2] ) ) > 0 ) :
3075
3076 self.__dbVerbindung__.schreibe__prjPStrverbindung(
3077 Fortschritt = self.__Fortschritt__
3078 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id
3079 , strStrktIdVorg = self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt_Flex[lfdNr][2]
3080 , strStrktIdNachf = strId )
3081
3082
3083
3084
3085
3086 if( istAenderung ) :
3087
3088 self.istGeaendert__daten__strStrkt__Sprache__Projekt = True
3089 self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt = []
3090 self.__dbVerbindung__.init__strStrkt__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
3091
3092
3093
3094
3095
3096
3097
3098
3099 for strId in listeStrStrktId :
3100
3101 if( strId in bereitsZugeordnet ) : continue
3102
3103 self.__dbVerbindung__.schreibe__PrjPPrtStrStrkt( Fortschritt = self.__Fortschritt__
3104 , listeWerte = [
3105
3106
3107 prtProtokollId_SiAnf
3108
3109
3110
3111 , strId ] )
3112
3113
3114
3115
3116
3117 self.istGeaendert__daten__ProtId_StruktId__Projekt = True
3118 self.__dbVerbindung__.daten__ProtId_StruktId__Projekt.clear()
3119 self.__dbVerbindung__.init__ProtId_StruktId__Projekt( Fortschritt = self.__Fortschritt__ )
3120
3121
3122
3123
3124
3125
3126 self.__Fortschritt__.loescheFortschritt()
3127
3128
3129
3130
3131
3132
3133 self.SiAnf__SiAnf.liesDB()
3134 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.ExpandAll()
3135
3136
3137
3138
3139
3140
3141
3142 if( ereignis != None ) : ereignis.Skip( skip = True )
3143
3144
3145
3146
3147
3148
3149
3150
3151
3153 """
3154 Initialisierung.
3155 """
3156
3157
3158
3159
3160 self.Notebook__Verfuegbar.GetPage(0).init_VerfSiAnf()
3161 self.Notebook__Verfuegbar.GetPage(1).init_VerfStrkt()
3162 self.Notebook__Verfuegbar.GetPage(2).init_VerfDok()
3163 self.Notebook__Verfuegbar.GetPage(3).init_VerfProtokolleintraege()
3164
3165
3166
3167
3168
3169
3170 self.SiAnf__SiAnf.liesDB()
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3182 """
3183 Mit Aufruf dieser Methode wird die Karteikarte 'Protokolleinträge' ausgewählt.
3184
3185 """
3186
3187
3188
3189
3190 self.Notebook__Verfuegbar.ChangeSelection( 3 )
3191 self.__ereignisKKGewechselt__()
3192