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