|
Module bearbeiteuebersetzung
|
|
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 universal import zk
42
43 from wxuniversal import ComboBoxErg
44 from wxuniversal import DialogErg
45 from wxuniversal import farbeAuswahlListe
46 from wxuniversal import FlexGridSizerWxObjTitel
47 from wxuniversal import ListBoxErg
48 from wxuniversal import TextCtrlErg
49
50
51
52
53
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
83
84 """
85 Klasse zur Abbildung des Eingabeformulars 'Übersetzung anzeigen/bearbeiten.
86 Dem Formular wird eine >spr_uebvar_id< einschließlich aktueller >spr.sprachen.id< und zugeordnete >notizen< übergeben.
87
88 Beim Bearbeiten der Sicherheitsanforderung wird der Einfluß auf weitere Verwendungen der >spr_uebvar_id< überwacht !
89 Wenn die aktuelle >spr_uebvar_id< mehrfach verwendet wird, wird sie nicht verändert, sondern eine Kopie einschließlich zugeordneter Übersetzungen angelegt
90 """
91
92
93
94
95
96
97 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung, sprUebvarId, notizen_db = None, notizenKontext_db = None ):
98 DialogErg.__init__( self
99 , parent = parent
100 , title = u"Übersetzungen bearbeiten."
101 , dbVerbindung = dbVerbindung )
102
103
104
105
106 self.SetName( name = "BearbeiteUebersetzung" )
107
108
109
110
111
112
113 self.__Notizen__ = Notizen
114 self.__Fortschritt__ = Fortschritt
115 self.__dbVerbindung__ = dbVerbindung
116
117 self.sprUebvarId = sprUebvarId
118 self.sprUebvarIdStart = sprUebvarId
119 self.notizen_db = notizen_db
120 self.notizenStart = notizen_db
121 self.notizenKontext_db = notizenKontext_db
122 self.notizenKontextStart = notizenKontext_db
123
124
125
126
127
128
129 self.TextCtrlErg__Id = FlexGridSizerWxObjTitel( parent = self
130 , wxObj = TextCtrlErg( self
131 , style = wx.TE_READONLY|wx.BORDER_SUNKEN
132 , Notizen = self.__Notizen__ )
133 , titel = u"Id der Übersetzungsvariante"
134 , orient = wx.VERTICAL )
135
136 self.TextCtrlErg__Id.wxObjekt.Enable( False )
137
138
139
140
141
142
143 self.ListBox__Uebersetzungsvarianten = FlexGridSizerWxObjTitel( parent = self
144 , wxObj = ListBoxErg( self
145 , style = wx.BORDER_SUNKEN | wx.LB_SORT
146 , Notizen = self.__Notizen__ )
147 , titel = u"Übersetzungen"
148 , orient = wx.VERTICAL )
149
150 self.ListBox__Uebersetzungsvarianten.wxObjekt.nimmWerteStatusleiste(
151 DBSpNameErlaeuterung = u"Alle Übersetzungen zur aktuellen Übersetzungsvariante."
152 , DBSpName = "spr.pos / spr.wgruppe / spr.uebersetzung / spr.uebvar" )
153
154 self.ListBox__Uebersetzungsvarianten.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeAuswahlListe ) )
155
156 self.ListBox__Uebersetzungsvarianten.wxObjekt.Bind( wx.EVT_LISTBOX
157 , self.__ereignisNavigation__ )
158
159
160
161
162
163
164
165
166 self.ComboBox__Sprache = FlexGridSizerWxObjTitel( parent = self
167 , wxObj = ComboBoxErg( self
168 , choices = []
169 , style = wx.CB_DROPDOWN|wx.CB_READONLY
170 , Notizen = self.__Notizen__ )
171 , orient = wx.VERTICAL
172 , titel = u"Sprache" )
173
174 self.ComboBox__Sprache.wxObjekt.nimmWerteStatusleiste(
175 DBSpNameErlaeuterung = u"Die Sprache der Übersetzungsvariante."
176 , DBSpName = "spr.sprachen" )
177
178 self.__dbVerbindung__.selektiere__sprSprachen( ComboBoxErg = self.ComboBox__Sprache.wxObjekt )
179
180 self.ComboBox__Sprache.wxObjekt.Bind( wx.EVT_COMBOBOX
181 , self.__ereignisNavigation__ )
182
183
184
185
186
187
188 self.TextCtrlErg__Uebersetzung = FlexGridSizerWxObjTitel( parent = self
189 , wxObj = TextCtrlErg( self
190 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN
191 , Notizen = self.__Notizen__ )
192 , titel = u"Übersetzung bearbeiten"
193 , orient = wx.VERTICAL )
194
195 self.TextCtrlErg__Uebersetzung.wxObjekt.nimmWerteStatusleiste(
196 DBSpNameErlaeuterung = u"Die Übersetzung zur aktuellen Übersetzungsvariante bearbeiten."
197 , DBSpName = "spr.pos / spr.wgruppe / spr.uebersetzung / spr.uebvar" )
198
199 self.TextCtrlErg__Uebersetzung.wxObjekt.Bind( wx.EVT_TEXT
200 , self.__ereignisAenderung__ )
201
202
203
204
205
206
207 self.TextCtrlErg__Notizen = FlexGridSizerWxObjTitel( parent = self
208 , wxObj = TextCtrlErg( self
209 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN
210 , Notizen = self.__Notizen__ )
211 , titel = u"Interne Notizen zur Übersetzung"
212 , orient = wx.VERTICAL )
213
214 self.TextCtrlErg__Notizen.wxObjekt.Bind( wx.EVT_TEXT
215 , self.__ereignisAenderung__ )
216
217 if( self.notizen_db is None ) :
218
219 self.notizen_db = zk.gibZk( "" )
220 self.notizenStart = self.notizen_db
221
222 self.TextCtrlErg__Notizen.wxObjekt.Enable( False )
223
224
225
226
227
228
229 self.TextCtrl__KontextNotizen = FlexGridSizerWxObjTitel( parent = self
230 , wxObj = TextCtrlErg( self
231 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN
232 , Notizen = self.__Notizen__ )
233 , titel = u"Interne Notizen (kontextbezogen)"
234 , orient = wx.VERTICAL )
235
236 self.TextCtrl__KontextNotizen.wxObjekt.nimmWerteStatusleiste(
237 DBSpNameErlaeuterung = u"Interne, kontextbezogene Notizen zur aktuellen Übersetzungsvariante bearbeiten."
238 , DBSpName = "kontextabhaengig" )
239
240 self.TextCtrl__KontextNotizen.wxObjekt.Bind( wx.EVT_TEXT
241 , self.__ereignisAenderung__ )
242
243 if( self.notizenKontext_db is None ) :
244
245 self.notizenKontext_db = zk.gibZk( "" )
246 self.notizenKontextStart = self.notizenKontext_db
247
248 self.TextCtrl__KontextNotizen.wxObjekt.Enable( False )
249
250
251
252
253
254
255 FlexGridSizer = wx.FlexGridSizer( rows = 7, cols = 1, vgap = 10, hgap = 0 )
256
257 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 )
258
259 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 )
260 FlexGridSizer.AddGrowableRow( idx = 3, proportion = 1 )
261 FlexGridSizer.AddGrowableRow( idx = 4, proportion = 1 )
262 FlexGridSizer.AddGrowableRow( idx = 6, proportion = 1 )
263
264 FlexGridSizer.Add( self.TextCtrlErg__Id
265 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT
266 , border = 5 )
267
268 FlexGridSizer.Add( self.ListBox__Uebersetzungsvarianten
269 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT
270 , border = 5 )
271
272 FlexGridSizer.Add( self.ComboBox__Sprache
273 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT
274 , border = 5 )
275
276 FlexGridSizer.Add( self.TextCtrlErg__Uebersetzung
277 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT
278 , border = 5 )
279
280 FlexGridSizer.Add( self.TextCtrlErg__Notizen
281 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT
282 , border = 5 )
283
284 FlexGridSizer.Add( wx.StaticLine( parent = self, style = wx.LI_HORIZONTAL )
285 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT
286 , border = 5 )
287
288 FlexGridSizer.Add( self.TextCtrl__KontextNotizen
289 , flag = wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT
290 , border = 5 )
291
292
293
294
295
296
297 self.nimmDialogElemente( FlexGridSizer )
298
299
300
301
302
303 self.__spezAktionenVerwerfen__()
304
305
306
307
308
309
310 self.CenterOnScreen()
311
312
313
314
315
316
317
318
319
320
322 """
323 Innerhalb der verfügbaren Übersetzungen / Sprachen navigieren. Die entsprechende Sicherheitsanforderung wird in das Objekt zur Textbearbeitung eingetragen.
324
325 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
326 @type ereignis: C{wx - Ereignisobjekt}
327 """
328
329
330
331
332
333 if( self.ListBox__Uebersetzungsvarianten.wxObjekt.IsEmpty()
334 or self.ComboBox__Sprache.wxObjekt.IsEmpty() ) :
335
336 return
337
338
339
340
341
342
343 if( self.TextCtrlErg__Uebersetzung.wxObjekt.istBenutzerAenderungJetzt ) :
344
345 if( self.aktLfdNr_Uebersetzungsvarianten is not None ) :
346
347 self.ListBox__Uebersetzungsvarianten.wxObjekt.SetString(
348 self.aktLfdNr_Uebersetzungsvarianten
349 , zk.gibZk( zk = self.TextCtrlErg__Uebersetzung.wxObjekt.gibWert()
350 , leerZkAlternativ = self.TextCtrlErg__Uebersetzung.wxObjekt.wertNichtMod[0] ) )
351
352 else :
353
354 self.ListBox__Uebersetzungsvarianten.wxObjekt.nimmWert(
355 wert = zk.gibZk( zk = self.TextCtrlErg__Uebersetzung.wxObjekt.gibWert()
356 , leerZkAlternativ = self.TextCtrlErg__Uebersetzung.wxObjekt.wertNichtMod[0] )
357 , dbId = self.aktSprSprachenId )
358
359 self.__schreibDB__()
360
361 self.TextCtrlErg__Uebersetzung.wxObjekt.istBenutzerAenderungJetzt = False
362
363
364
365
366
367
368 if( ereignis is not None
369 and ereignis.GetId() == self.ListBox__Uebersetzungsvarianten.wxObjekt.GetId() ) :
370
371
372
373
374 self.aktLfdNr_Uebersetzungsvarianten = self.ListBox__Uebersetzungsvarianten.wxObjekt.GetSelection()
375
376 self.aktSprSprachenId = self.ListBox__Uebersetzungsvarianten.wxObjekt.gibDbId()
377
378 self.ComboBox__Sprache.wxObjekt.selektiereWert( self.aktSprSprachenId )
379
380
381
382
383
384
385
386 elif( ereignis is None
387 or ereignis.GetId() == self.ComboBox__Sprache.wxObjekt.GetId() ) :
388
389
390
391
392
393 self.aktSprSprachenId = self.ComboBox__Sprache.wxObjekt.gibDbId()
394
395
396
397
398 if( not self.ListBox__Uebersetzungsvarianten.wxObjekt.selektiereWert( self.aktSprSprachenId ) ) :
399
400 self.aktLfdNr_Uebersetzungsvarianten = None
401
402
403
404
405
406
407
408
409 if( ereignis is not None ) :
410 self.TextCtrlErg__Uebersetzung.wxObjekt.nimmWert(
411 wert = self.ListBox__Uebersetzungsvarianten.wxObjekt.gibWert() )
412
413
414
415
416
417
418
419 self.notizen_db = self.TextCtrlErg__Notizen.wxObjekt.gibWert()
420
421
422
423
424
425
426
427 self.notizenKontext_db = self.TextCtrl__KontextNotizen.wxObjekt.gibWert()
428
429
430
431
432
433
434
435
436
438 """
439 Methode die aufgerufen wird, wenn die Änderungen in die Datenbank geschrieben werden sollen.
440
441 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben.
442 @type ereignis: C{wx - Ereignisobjekt}
443 """
444
445
446
447
448 self.sprUebvarId = self.__dbVerbindung__.schreibe__sprUebvar(
449 Fortschritt = self.__Fortschritt__
450 , ListBoxErg = self.ListBox__Uebersetzungsvarianten.wxObjekt
451 , sprUebvarId = self.sprUebvarId )
452
453 self.__Fortschritt__.loescheFortschritt()
454
455
456
457
458
459
460 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = str( self.sprUebvarId ) )
461
462
463
464
465
466
467
468
469
470
472 """
473 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Speichern der Änderungen auszuführen.
474 """
475
476
477
478
479 self.__ereignisNavigation__()
480
481
482
483
484
485
486
487
488
490 """
491 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Verwerfen der Änderungen auszuführen.
492 """
493
494
495
496
497 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = str( self.sprUebvarIdStart ) )
498
499
500
501
502
503 self.ListBox__Uebersetzungsvarianten.wxObjekt.loescheAlles()
504
505 self.__dbVerbindung__.dbAbfrage__sprWgruppe( Fortschritt = self.__Fortschritt__
506 , wxListBox = self.ListBox__Uebersetzungsvarianten.wxObjekt
507 , sprUebvarId = self.sprUebvarIdStart )
508
509 self.__Fortschritt__.loescheFortschritt()
510
511 self.ListBox__Uebersetzungsvarianten.wxObjekt.selektiereWert(
512 dbId = self.__dbVerbindung__.filter__spr_sprachen_id )
513
514 self.aktLfdNr_Uebersetzungsvarianten = self.ListBox__Uebersetzungsvarianten.wxObjekt.GetSelection()
515
516
517
518
519
520 self.ComboBox__Sprache.wxObjekt.selektiereWert( dbId = self.__dbVerbindung__.filter__spr_sprachen_id )
521
522 self.aktSprSprachenId = self.ComboBox__Sprache.wxObjekt.gibDbId()
523
524
525
526
527
528 self.TextCtrlErg__Uebersetzung.wxObjekt.nimmWert( wert = self.ListBox__Uebersetzungsvarianten.wxObjekt.gibWert() )
529
530
531
532
533
534 self.TextCtrlErg__Notizen.wxObjekt.nimmWert( wert = self.notizenStart )
535
536
537
538
539
540 self.TextCtrl__KontextNotizen.wxObjekt.nimmWert( wert = self.notizenKontextStart )
541
542
543
544
545
546
547
548
549
551 """
552 Es wird der Änderungszustand (wenn Änderungen vorliegen C{True}), die veränderbaren Werte C{spr_uebvar_id} und die kontextbezogenen C{notizen} zurückgegeben.
553
554 @return: Es wird C{[spr_uebvar_id, notizen]} zurückgegeben.
555 @rtype: Python-Liste
556 """
557
558 return [self.gibAenderung(), self.sprUebvarId, self.notizenKontext_db]
559