|
Module bearbeiteanmerkung
|
|
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 FlexGridSizerWxObjTitel
47 from wxuniversal import CheckBoxErg
48 from wxuniversal import ComboBoxErg
49 from wxuniversal import DialogErg
50 from wxuniversal import farbeAuswahlListe
51 from wxuniversal import farbeBearbeiten
52 from wxuniversal import ListBoxErg
53 from wxuniversal import TreeCtrlErg
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
86
87 """
88 Klasse zur Abbildung des Eingabeformulars 'Anmerkungen bearbeiten.
89 """
90
91
92
93
94
95
96 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
97 DialogErg.__init__( self
98 , parent = parent
99 , title = u"Anmerkungen bearbeiten."
100 , dbVerbindung = dbVerbindung )
101
102
103
104
105 self.SetName( name = "BearbeiteAnmerkung" )
106
107
108
109
110
111 self.__Notizen__ = Notizen
112 self.__Fortschritt__ = Fortschritt
113 self.__dbVerbindung__ = dbVerbindung
114
115 self.__aktPrjProjekteId__ = self.__dbVerbindung__.filter__prj_projekte_id
116 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
117 self.__istFlex__ = False
118 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt
119
120
121
122
123
124
125
126
127
128
129
130
131 self.ListBox__AnmerkungId = FlexGridSizerWxObjTitel( parent = self
132 , wxObj = ListBoxErg( self
133 , style = wx.BORDER_SUNKEN
134 , Notizen = self.__Notizen__ )
135 , titel = u"Dem Gefahrenszenario zugeordnete Anmerkungen"
136 , orient = wx.VERTICAL )
137
138
139 self.ListBox__AnmerkungId.wxObjekt.SetMinSize( ( 450, 500 ) )
140
141 self.ListBox__AnmerkungId.wxObjekt.nimmWerteStatusleiste(
142 DBSpNameErlaeuterung = u"Anmerkungen / Randbedingungen zum aktuelle Gefahrenszenario."
143 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" )
144
145 self.ListBox__AnmerkungId.wxObjekt.nimmTooltip( u"Doppelklick:\nVerbindung zwischen Anmerkung und Gefahrenszenario aufheben.\n\nF3:\nÜbersetzung der Anmerkung bearbeiten." )
146
147 self.ListBox__AnmerkungId.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeBearbeiten ) )
148
149 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK
150 , self.__ereignisAnmerkungLoesen__ )
151
152 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_KEY_DOWN
153 , self.__ereignisAnmerkungBearbeiten__ )
154
155 self.ListBox__AnmerkungId.wxObjekt.Bind( wx.EVT_LISTBOX
156 , self.__ereignisNotizenAnzeigen__ )
157
158
159
160
161
162
163 self.CheckBoxErg__NurGefszen = FlexGridSizerWxObjTitel( parent = self
164 , wxObj = CheckBoxErg( self
165 , Notizen = self.__Notizen__ )
166 , titel = "Gefahrenszenario"
167 , orient = wx.VERTICAL )
168
169 self.CheckBoxErg__NurGefszen.wxObjekt.nimmWerteStatusleiste(
170 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen auf das aktuelle Gefahrenszenario einschränken."
171 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" )
172
173 self.CheckBoxErg__NurGefszen.wxObjekt.Bind( wx.EVT_CHECKBOX
174 , self.__ereignisLiesDBVerfAnm__ )
175
176
177
178
179
180 self.ComboBoxErg__Projekt = FlexGridSizerWxObjTitel(
181 parent = self
182 , wxObj = ComboBoxErg( self
183 , choices = []
184 , style = wx.CB_DROPDOWN|wx.CB_READONLY|wx.CB_SORT
185 , Notizen = self.__Notizen__ )
186 , orient = wx.VERTICAL
187 , titel = u"Projekt" )
188
189 self.ComboBoxErg__Projekt.wxObjekt.nimmWerteStatusleiste(
190 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen auf das Projekt einschränken."
191 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" )
192
193 self.ComboBoxErg__Projekt.wxObjekt.Bind( wx.EVT_COMBOBOX
194 , self.__ereignisLiesDBVerfAnm__ )
195
196
197
198
199
200
201
202 self.ListBoxErg__VerfAnmerkungen = FlexGridSizerWxObjTitel( parent = self
203 , wxObj = ListBoxErg( self
204 , style = wx.BORDER_SUNKEN
205 , Notizen = self.__Notizen__ )
206 , titel = u"Anmerkungen"
207 , orient = wx.VERTICAL )
208
209 self.ListBoxErg__VerfAnmerkungen.wxObjekt.SetMinSize( ( 450, 425 ) )
210
211 self.ListBoxErg__VerfAnmerkungen.wxObjekt.nimmWerteStatusleiste(
212 DBSpNameErlaeuterung = u"Die verfügbaren Anmerkungen."
213 , DBSpName = "ps.anmerkung / prj.pl_psgefanm" )
214
215 self.ListBoxErg__VerfAnmerkungen.wxObjekt.nimmTooltip( u"Doppelklick:\nAnmerkung in das Fenster 'Anmerkungen' schieben" )
216
217 self.ListBoxErg__VerfAnmerkungen.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
218
219 self.ListBoxErg__VerfAnmerkungen.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK
220 , self.__ereignisAnmerkungZuordnen__ )
221
222 self.ListBoxErg__VerfAnmerkungen.wxObjekt.Bind( wx.EVT_LISTBOX
223 , self.__ereignisNotizenAnzeigen__ )
224
225
226
227
228
229
230
231
232
233
234 FlexGridSizer_Selektionskrit = wx.FlexGridSizer( rows = 1, cols = 2, vgap = 0, hgap = 10 )
235
236 FlexGridSizer_Selektionskrit.AddGrowableCol( idx = 1, proportion = 1 )
237
238 FlexGridSizer_Selektionskrit.Add( self.CheckBoxErg__NurGefszen
239 , flag = wx.EXPAND )
240
241 FlexGridSizer_Selektionskrit.Add( self.ComboBoxErg__Projekt
242 , flag = wx.EXPAND )
243
244
245
246
247
248 FlexGridSizer_VerfAnm = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 10, hgap = 0 )
249
250 FlexGridSizer_VerfAnm.AddGrowableCol( idx = 0, proportion = 1 )
251 FlexGridSizer_VerfAnm.AddGrowableRow( idx = 2, proportion = 1 )
252
253 FlexGridSizer_VerfAnm.Add( wx.StaticText( parent = self, label = "Verfügbare Anmerkungen" )
254 , flag = wx.EXPAND )
255
256 FlexGridSizer_VerfAnm.Add( FlexGridSizer_Selektionskrit
257 , flag = wx.EXPAND )
258
259 FlexGridSizer_VerfAnm.Add( self.ListBoxErg__VerfAnmerkungen
260 , flag = wx.EXPAND )
261
262
263
264
265
266 FlexGridSizer = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 0, hgap = 10 )
267
268 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 )
269 FlexGridSizer.AddGrowableCol( idx = 1, proportion = 0 )
270 FlexGridSizer.AddGrowableCol( idx = 2, proportion = 1 )
271 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 )
272
273 FlexGridSizer.Add( self.ListBox__AnmerkungId
274 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.BOTTOM
275 , border = 5 )
276
277 FlexGridSizer.Add( wx.StaticLine( parent = self, style = wx.LI_VERTICAL )
278 , flag = wx.EXPAND|wx.TOP|wx.BOTTOM
279 , border = 5 )
280
281 FlexGridSizer.Add( FlexGridSizer_VerfAnm
282 , flag = wx.EXPAND|wx.RIGHT|wx.TOP|wx.BOTTOM
283 , border = 5 )
284
285
286
287
288
289 self.nimmDialogElemente( FlexGridSizer )
290
291
292
293
294
295
296 self.__dbVerbindung__.selektiere__prjProjekte( ComboBoxErg = self.ComboBoxErg__Projekt.wxObjekt )
297 self.ComboBoxErg__Projekt.wxObjekt.selektiereWert( dbId = self.__aktPrjProjekteId__ )
298
299 psAnmerkungId = None
300 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) :
301
302 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] )
303
304 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt(
305 TreeCtrlErg_ListBoxErg = self.ListBox__AnmerkungId.wxObjekt
306 , psAnmerkungId = psAnmerkungId )
307 self.__ereignisLiesDBVerfAnm__()
308
309
310
311
312
313 self.Button__Verwerfen.Enable( False )
314 self.Button__Sichern.Enable( False )
315
316
317
318
319
320
321 self.CenterOnScreen()
322
323
324
325
326
327
328
329
330
332 """
333 Methode die aufgerufen wird, wenn der Text der Sicherheitsanforderung bearbeitet werden soll.
334
335 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
336 @type ereignis: C{wx - Ereignisobjekt}
337 """
338
339
340
341
342 if( not ereignis.GetKeyCode() == wx.WXK_F3 ) : return
343 if( ereignis.GetEventObject().GetSelection() == wx.NOT_FOUND ) : return
344
345
346
347
348
349
350 ps_anmerkung_id = ereignis.GetEventObject().gibDbId()
351
352 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ).index( ps_anmerkung_id )
353
354 spr_uebvar_id = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1]
355 notizen = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][3]
356
357
358
359
360
361
362 dlg = BearbeiteUebersetzung( parent = self
363 , Notizen = self.__Notizen__
364 , Fortschritt = self.__Fortschritt__
365 , dbVerbindung = self.__dbVerbindung__
366 , sprUebvarId = spr_uebvar_id
367 , notizen_db = None
368 , notizenKontext_db = notizen )
369
370 dlg.ShowModal()
371 dlg.Destroy()
372
373
374
375
376
377
378
379 if( dlg.gibWerte()[0]
380 and ( dlg.gibWerte()[1] != spr_uebvar_id or dlg.gibWerte()[2] != notizen ) ) :
381
382 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__
383 , listeWerte = [
384
385
386 ps_anmerkung_id
387
388
389
390 , dlg.gibWerte()[1]
391
392
393
394 , dlg.gibWerte()[2]
395
396
397
398 , spr_uebvar_id ] )
399
400 self.__Fortschritt__.loescheFortschritt()
401
402
403
404
405
406
407
408 self.__spezAktionenVerwerfen__()
409 self.__ereignisLiesDBVerfAnm__()
410
411
412
413
414
415
416
417 self.Button__Verwerfen.Enable( True )
418 self.Button__Sichern.Enable( True )
419
420
421
422
423
424
425
426 ereignis.Skip( skip = True )
427
428
429
430
431
432
433
434
435
437 """
438 Anmerkung vom Gefahrenszenario lösen (entfernen).
439
440 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
441 @type ereignis: C{wx - Ereignisobjekt}
442 """
443
444
445
446
447 ps_anmerkung_id = ereignis.GetEventObject().gibDbId()
448
449 lfdNr = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ).index( ps_anmerkung_id )
450
451
452
453
454
455
456
457 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__
458 , listeWerte = [
459
460
461 ps_anmerkung_id
462
463
464
465 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1]
466
467
468
469 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][3]
470
471
472
473 , self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][lfdNr][1] ]
474 , logentfernt = 'true' )
475
476 self.__Fortschritt__.loescheFortschritt()
477
478
479
480
481
482
483
484 self.__spezAktionenVerwerfen__()
485 self.__ereignisLiesDBVerfAnm__()
486
487
488
489
490
491
492 self.Button__Verwerfen.Enable( True )
493 self.Button__Sichern.Enable( True )
494
495
496
497
498
499
500
501 ereignis.Skip( skip = True )
502
503
504
505
506
507
508
509
510
511
513 """
514 Anmerkung übernehmen
515
516 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
517 @type ereignis: C{wx - Ereignisobjekt}
518 """
519
520
521
522
523 ps_anmerkung_id = ereignis.GetEventObject().gibDbId()
524
525 if( allg.hatWert__List( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id]
526 , pos = 0
527 , wert = ps_anmerkung_id ) ) :
528
529 dlg = wx.MessageDialog( self
530 , "Die dem Gefahrenszenario zuzuordnende Anmerkung ist bereits zugeordnet !\n\nSie wird dem Gefahrenszenario nicht zugeordnet."
531 , "Anmerkung ist bereits zugeordnet !"
532 , wx.OK | wx.ICON_INFORMATION )
533 dlg.CenterOnScreen()
534 dlg.ShowModal()
535 dlg.Destroy()
536
537 return
538
539
540
541
542
543
544 spr_uebvar_id = None
545 notizen = None
546 for gefSzen in self.__daten__GefszenId_AnmId__Sprache__Projekt__.values() :
547
548 for anm in gefSzen :
549
550 if( anm[0] == ps_anmerkung_id ) :
551
552 spr_uebvar_id = anm[1]
553 notizen = anm[3]
554
555 break
556
557
558
559
560
561
562 self.__dbVerbindung__.schreibe__PrjPlPsGefAnm( Fortschritt = self.__Fortschritt__
563 , listeWerte = [
564
565
566 ps_anmerkung_id
567
568
569
570 , spr_uebvar_id
571
572
573
574 , notizen
575
576
577
578 , spr_uebvar_id ] )
579
580 self.__Fortschritt__.loescheFortschritt()
581
582
583
584
585
586
587 self.__spezAktionenVerwerfen__()
588 self.__ereignisLiesDBVerfAnm__()
589
590
591
592
593
594 self.Button__Verwerfen.Enable( True )
595 self.Button__Sichern.Enable( True )
596
597
598
599
600
601
602 ereignis.Skip( skip = True )
603
604
605
606
607
608
609
610
611
613 """
614 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.CheckBox} 'Zeige alle Anmerkungen' die Datenbank ausgelesen werden muß.
615
616 @requires: Erst ist muß C{self.ListBox__AnmerkungId} gefüllt sein.
617
618 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
619 @type ereignis: C{wx - Ereignisobjekt}
620
621 @param allesLesen: Wenn C{True} angegeben wird, werden alle Anmerungen gelesen
622 @type allesLesen: C{wx - Ereignisobjekt}
623 """
624
625
626
627
628 liesAlles = allesLesen
629 if( ereignis != None ) : liesAlles = ereignis.GetEventObject().gibWert()
630
631
632
633
634
635
636 self.__istFlex__ = False
637 self.__aktPrjProjekteId__ = self.ComboBoxErg__Projekt.wxObjekt.gibDbId()
638 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt
639
640 if( self.__aktPrjProjekteId__ != self.__dbVerbindung__.filter__prj_projekte_id ) :
641
642
643
644
645
646
647 if( self.__aktPrjProjekteId__ != self.__letztesPrjProjekteId__ ) :
648
649 self.__letztesPrjProjekteId__ = self.__aktPrjProjekteId__
650
651 self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt_Flex.clear()
652 self.__dbVerbindung__.init__GefszenId_AnmId__Sprache__Projekt(
653 Fortschritt = self.__Fortschritt__
654 , prjProjekteId = self.__aktPrjProjekteId__ )
655
656 self.__Fortschritt__.loescheFortschritt()
657
658
659
660
661
662 self.__istFlex__ = True
663 self.__daten__GefszenId_AnmId__Sprache__Projekt__ = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt_Flex
664
665
666
667
668
669
670 psAnmerkungId = None
671 if( self.CheckBoxErg__NurGefszen.wxObjekt.gibWert()
672 and self.__dbVerbindung__.ps_gefszenario_id in self.__daten__GefszenId_AnmId__Sprache__Projekt__ ) :
673
674 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__daten__GefszenId_AnmId__Sprache__Projekt__[self.__dbVerbindung__.ps_gefszenario_id] )
675
676
677
678
679
680
681 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt(
682 TreeCtrlErg_ListBoxErg = self.ListBoxErg__VerfAnmerkungen.wxObjekt
683 , psAnmerkungId = psAnmerkungId
684 , istFlex = self.__istFlex__ )
685
686
687
688
689
690
691
692 if( ereignis != None ) :
693 ereignis.Skip( skip = True )
694
695
696
697
698
699
700
701
702
704 """
705 Notizen in der Statusleiste anzeigen
706
707 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
708 @type ereignis: C{wx - Ereignisobjekt}
709 """
710
711
712
713
714 self.__Notizen__.TextCtrlErg__li.nimmWert( "" )
715
716
717
718
719
720
721 daten__GefszenId_AnmId__Sprache__Projekt = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt
722
723 if( ereignis.GetId() == self.ListBoxErg__VerfAnmerkungen.wxObjekt.GetId() ) :
724
725 daten__GefszenId_AnmId__Sprache__Projekt = self.__daten__GefszenId_AnmId__Sprache__Projekt__
726
727
728
729
730
731
732 if( self.__dbVerbindung__.ps_gefszenario_id in daten__GefszenId_AnmId__Sprache__Projekt ) :
733
734 self.__Notizen__.TextCtrlErg__li.nimmWert( daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] )
735
736
737
738
739
740
741
742 if( ereignis != None ) : ereignis.Skip( skip = True )
743
744
745
746
747
748
749
750
752 """
753 Methode die aufgerufen wird, wenn die dem Gefahrenszenario zugeordneten Anmerkungen-Id ausgelesen werden sollen.
754 """
755
756
757
758
759 self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt.clear()
760 self.__dbVerbindung__.init__GefszenId_AnmId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ )
761
762 self.__Fortschritt__.loescheFortschritt()
763
764
765
766
767
768
769
771 """
772 Methode die aufgerufen wird, wenn die dem Gefahrenszenario zugeordneten Anmerkungen-Id ausgelesen werden sollen.
773 """
774
775
776
777
778 self.__spezAktionenSchliessen__()
779
780
781
782
783
784
785 self.ListBox__AnmerkungId.wxObjekt.loescheAlles()
786
787 psAnmerkungId = None
788 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) :
789
790 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] )
791
792 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt(
793 TreeCtrlErg_ListBoxErg = self.ListBox__AnmerkungId.wxObjekt
794 , psAnmerkungId = psAnmerkungId )
795