*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Mon, 15 May 2006 15:49:52 +0200
changeset 2048 dcec4e818069
parent 2047 5f9b26862c57
child 2049 d10762e5d924
*** empty log message ***
Tools__InternationalLanguageTranslationEditor.st
--- a/Tools__InternationalLanguageTranslationEditor.st	Mon May 15 11:08:40 2006 +0200
+++ b/Tools__InternationalLanguageTranslationEditor.st	Mon May 15 15:49:52 2006 +0200
@@ -10,7 +10,9 @@
 		languageShownHolders dataSetView lastExtractedClass
 		lastExtractedApplicationClass stopApplicationIconVisibleHolder
 		monitoredApplication originalTextModifiedHolder
-		languageTextModifiedHolder inSingleFileMode lastExtractedProject'
+		languageTextModifiedHolder languageTextAcceptHolder
+		inSingleFileMode lastExtractedProject lastLanguage
+		lastSelectedKey'
 	classVariableNames:'LastExtractedClass LastExtractedApplicationClass
 		LastExtractedProject'
 	poolDictionaries:''
@@ -94,9 +96,9 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:InternationalLanguageTranslationEditor andSelector:#windowSpec
-     InternationalLanguageTranslationEditor new openInterface:#windowSpec
-     InternationalLanguageTranslationEditor open
+     UIPainter new openOnClass:Tools::InternationalLanguageTranslationEditor andSelector:#windowSpec
+     Tools::InternationalLanguageTranslationEditor new openInterface:#windowSpec
+     Tools::InternationalLanguageTranslationEditor open
     "
 
     <resource: #canvas>
@@ -180,6 +182,7 @@
                           model: languageTextHolder
                           hasHorizontalScrollBar: true
                           hasVerticalScrollBar: true
+                          acceptChannel: languageTextAcceptHolder
                           modifiedChannel: languageTextModifiedHolder
                         )
                        )
@@ -532,6 +535,13 @@
     ^ holder.
 !
 
+languageTextAcceptHolder
+    languageTextAcceptHolder isNil ifTrue:[
+        languageTextAcceptHolder := false asValue.
+    ].
+    ^ languageTextAcceptHolder.
+!
+
 languageTextHolder
     languageTextHolder isNil ifTrue:[
         languageTextHolder := '' asValue.
@@ -586,6 +596,7 @@
     shownLanguages isNil ifTrue:[
         shownLanguages := List new.
         shownLanguages addAll:(self languagesList).
+        "/ shownLanguages addDependent:self. 
         shownLanguages onChangeSend:#shownLanguagesChanged to:self.
     ].
     ^ shownLanguages.
@@ -598,6 +609,15 @@
     ^ stopApplicationIconVisibleHolder.
 ! !
 
+!InternationalLanguageTranslationEditor methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+    changedObject == shownLanguages ifTrue:[
+         self shownLanguagesChanged.
+         ^ self.
+    ].
+! !
+
 !InternationalLanguageTranslationEditor methodsFor:'initialization & release'!
 
 closeRequest
@@ -913,10 +933,11 @@
     |shownLanguagesInOrder|
 
     (self shownLanguages includes:newLang) ifFalse:[
-        shownLanguagesInOrder := self languagesList
-                                    select:[:lang | (self shownLanguages includes:lang)
-                                                    or:[ lang = newLang ]].
-        self shownLanguages contents:shownLanguagesInOrder.
+"/        shownLanguagesInOrder := self languagesList
+"/                                    select:[:lang | (self shownLanguages includes:lang)
+"/                                                    or:[ lang = newLang ]].
+"/        self shownLanguages contents:shownLanguagesInOrder.
+        self shownLanguages add:newLang.
     ]
 !
 
@@ -1243,7 +1264,35 @@
 
 selectionChanged
     |rowSelectionIndex colSelectionIndex language selectedKey originalText languageText
-     answer|
+     answer newText autoAccept|
+
+    autoAccept := true.
+
+    self originalTextModifiedHolder value ifTrue:[ 
+        answer := OptionBox 
+                      request:'Accept changed original text (key) ?' 
+                      label:'Original text (key) changed'
+                      image:(WarningBox iconBitmap)
+                      buttonLabels:#('Cancel' 'Accept' 'Accept As New')
+                      values:#(nil #accept #acceptAsNew)
+                      default:#acceptAsNew.
+
+        answer isNil ifTrue:[^ self ].
+        answer == #accept ifTrue:[
+self halt.        ].
+        answer == #acceptAsNew ifTrue:[
+self halt.        ].
+    ].
+    self languageTextModifiedHolder value ifTrue:[ 
+        (autoAccept or:[Dialog confirm:'Accept changed translation ?']) ifTrue:[
+            languageTextAcceptHolder value:true.
+self halt.
+            lastLanguage notNil ifTrue:[
+                newText := self languageTextHolder value asCollectionOfLines first.
+                keyStringsToLanguageMappings at:lastSelectedKey language:lastLanguage put:newText.
+            ]
+        ]
+    ].
 
     colSelectionIndex := dataSetView selectedColIndex.
     language := colSelectionIndex > 1 ifTrue:[ shownLanguages at:colSelectionIndex-1 ] ifFalse:nil.
@@ -1260,32 +1309,14 @@
         ]
     ].
 
-    self originalTextModifiedHolder value ifTrue:[ 
-        answer := OptionBox 
-                      request:'Accept changed original text (key) ?' 
-                      label:'Original text (key) changed'
-                      image:(WarningBox iconBitmap)
-                      buttonLabels:#('Cancel' 'Accept' 'Accept As New')
-                      values:#(nil #accept #acceptAsNew)
-                      default:#acceptAsNew.
-
-        answer isNil ifTrue:[^ self ].
-        answer == #accept ifTrue:[
-self halt.        ].
-        answer == #acceptAsNew ifTrue:[
-self halt.        ].
-    ].
-    self languageTextModifiedHolder value ifTrue:[ self halt.
-        (Dialog confirm:'Accept changed translation ?') ifTrue:[
-            self halt.
-        ]
-    ].
-
     self originalTextHolder value:originalText.
     self languageTextHolder value:languageText.
 
     self originalTextModifiedHolder value:false.
     self languageTextModifiedHolder value:false.
+
+    lastLanguage := language.
+    lastSelectedKey := selectedKey.
 !
 
 shownLanguagesChanged