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