Skip to content

Commit 5ef00e9

Browse files
committed
two features: update with existing workfile and autocomplte with source words list
1 parent 32fee33 commit 5ef00e9

8 files changed

+146
-49
lines changed

BasicCAT/BasicCAT.b4j

+43-43
Original file line numberDiff line numberDiff line change
@@ -169,53 +169,53 @@ Library8=jrandomaccessfile
169169
Library9=jb4xencryption
170170
Module1=FileChooserUtils
171171
Module10=preTranslateDialog
172-
Module11=AutoSaver
173-
Module12=xliffFilter
174-
Module13=icu4j
175-
Module14=Preferences
176-
Module15=tikal
177-
Module16=idmlFilter
178-
Module17=PDF2TXT
179-
Module18=FileUtils
180-
Module19=XMLUtils
172+
Module11=SearchView
173+
Module12=TMManager
174+
Module13=importDialog
175+
Module14=idmlFilter
176+
Module15=Xml2Map
177+
Module16=XMLUtils
178+
Module17=Utils
179+
Module18=TMX
180+
Module19=searchAndReplaceDialog
181181
Module2=Project
182-
Module20=Map2Xml
183-
Module21=MT
184-
Module22=Utils
185-
Module23=SRX
186-
Module24=SearchView
187-
Module25=POIWord
188-
Module26=pdfbox
189-
Module27=git
190-
Module28=dictWebView
191-
Module29=InputTextAreaBox
182+
Module20=xliffFilter
183+
Module21=Preferences
184+
Module22=ITP
185+
Module23=AutoSaver
186+
Module24=icu4j
187+
Module25=tikal
188+
Module26=PDF2TXT
189+
Module27=FileUtils
190+
Module28=Map2Xml
191+
Module29=MT
192192
Module3=segmentation
193-
Module30=searchAndReplaceDialog
194-
Module31=FontPicker
195-
Module32=ITP
196-
Module33=TermEditor
197-
Module34=TermManager
198-
Module35=HistoryViewer
199-
Module36=HistoryRecord
200-
Module37=TMManager
201-
Module38=Previewer
202-
Module39=ClientKVS
193+
Module30=SRX
194+
Module31=POIWord
195+
Module32=pdfbox
196+
Module33=git
197+
Module34=dictWebView
198+
Module35=InputTextAreaBox
199+
Module36=FontPicker
200+
Module37=TermEditor
201+
Module38=TermManager
202+
Module39=HistoryViewer
203203
Module4=CustomListView
204-
Module40=statistics
205-
Module41=LanguageTool
206-
Module42=confirmReviewDialog
207-
Module43=LanguagePairSelector
208-
Module44=idmlUtils
209-
Module45=editDistance
210-
Module46=InputBox
211-
Module47=MTParamsFiller
212-
Module48=importDialog
213-
Module49=progressDialog
204+
Module40=HistoryRecord
205+
Module41=Previewer
206+
Module42=ClientKVS
207+
Module43=statistics
208+
Module44=LanguageTool
209+
Module45=confirmReviewDialog
210+
Module46=LanguagePairSelector
211+
Module47=idmlUtils
212+
Module48=editDistance
213+
Module49=InputBox
214214
Module5=txtFilter
215-
Module50=filterGenericUtils
216-
Module51=TMX
217-
Module52=TBX
218-
Module53=Xml2Map
215+
Module50=MTParamsFiller
216+
Module51=progressDialog
217+
Module52=filterGenericUtils
218+
Module53=TBX
219219
Module54=CallSubUtils
220220
Module55=viewSegment
221221
Module56=serverLauncher

BasicCAT/BasicCAT.b4j.meta

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,4 @@ ModuleClosedNodes7=
188188
ModuleClosedNodes8=
189189
ModuleClosedNodes9=
190190
SelectedBuild=0
191-
VisibleModules=1,2,3,4,5,6,7,8,9,10,24,37,48,16,53,19,22,51,30,12
191+
VisibleModules=1,2,3,4,5,6,7,8,9,10,57,51

BasicCAT/Files/autocomplete.bjl

599 Bytes
Binary file not shown.

BasicCAT/ITP.bas

+3-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ Sub getAllSegmentTranslation(text As String,engine As String) As ResumableSub
4242
Dim address As String=""
4343
If Main.preferencesMap.ContainsKey("corenlp_address") Then
4444
address=Main.preferencesMap.Get("corenlp_address")
45-
4645
End If
4746
'Log("address:"&address)
4847

@@ -81,6 +80,9 @@ Sub getAllSegmentTranslation(text As String,engine As String) As ResumableSub
8180
End If
8281
End If
8382

83+
If Main.preferencesMap.GetDefault("addSourceWords",False) Then
84+
translationList.AddAll(wordList)
85+
End If
8486

8587
Return duplicatedRemovedList(translationList)
8688
End Sub

BasicCAT/Preferences.bas

+11-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Sub Class_Globals
3636
Private maxSuggestionNumSpinner As Spinner
3737
Private maxCheckDropdownNumSpinner As Spinner
3838
Private lineHeightTextField As TextField
39+
Private sourceWordsListCheckBox As CheckBox
3940
End Sub
4041

4142
'Initializes the object. You can add parameters to this method if needed.
@@ -136,6 +137,10 @@ Sub categoryListView_SelectedIndexChanged(Index As Int)
136137
If unsavedPreferences.ContainsKey("maxSuggestionNum") Then
137138
maxSuggestionNumSpinner.Value=unsavedPreferences.Get("maxSuggestionNum")
138139
End If
140+
If unsavedPreferences.ContainsKey("addSourceWords") Then
141+
sourceWordsListCheckBox.Checked=unsavedPreferences.Get("addSourceWords")
142+
End If
143+
139144
Case 5
140145
'Language Check
141146
SettingPane.RemoveAllNodes
@@ -263,6 +268,10 @@ Sub autocompleteEnabledCheckBox_CheckedChange(Checked As Boolean)
263268
unsavedPreferences.Put("autocompleteEnabled",Checked)
264269
End Sub
265270

271+
Sub sourceWordsListCheckBox_CheckedChange(Checked As Boolean)
272+
unsavedPreferences.Put("addSourceWords",Checked)
273+
End Sub
274+
266275
Sub saveAddressButton_MouseClicked (EventData As MouseEvent)
267276
unsavedPreferences.Put("corenlp_address",corenlpAddressTextField.Text)
268277
End Sub
@@ -417,4 +426,5 @@ Sub lineHeightTextField_TextChanged (Old As String, New As String)
417426
fx.Msgbox(frm,"Wrong Value","")
418427
End Try
419428

420-
End Sub
429+
End Sub
430+

BasicCAT/Project.bas

+87-1
Original file line numberDiff line numberDiff line change
@@ -290,11 +290,15 @@ Sub addFilesToTreeTable(filename As String)
290290
exportMenu.MenuItems.Add(mi3)
291291
exportMenu.MenuItems.Add(mi4)
292292
exportMenu.MenuItems.Add(mi5)
293+
294+
Dim mi6 As MenuItem
295+
mi6.Initialize("Update with existing workfile","updateWithWorkfileMi")
293296

294297
fileCM.MenuItems.Add(mi)
295298
fileCM.MenuItems.Add(mi2)
296299
fileCM.MenuItems.Add(exportMenu)
297-
300+
fileCM.MenuItems.Add(mi6)
301+
298302
lbl.ContextMenu=fileCM
299303

300304
tti.Initialize("tti",Array As Object(lbl))
@@ -303,6 +307,7 @@ Sub addFilesToTreeTable(filename As String)
303307
mi3.Tag=filename
304308
mi4.Tag=filename
305309
mi5.Tag=filename
310+
mi6.Tag=filename
306311
subTreeTableItem.Children.Add(tti)
307312
End Sub
308313

@@ -807,6 +812,77 @@ Sub importReviewMi_Action
807812

808813
End Sub
809814

815+
Sub updateWithWorkfileMI_Action
816+
Dim mi As MenuItem=Sender
817+
Dim selectedFilename As String=mi.tag
818+
If selectedFilename<>currentFilename Then
819+
fx.Msgbox(Main.MainForm,"Please first open this file","")
820+
Return
821+
End If
822+
823+
Dim fc As FileChooser
824+
fc.Initialize
825+
fc.SetExtensionFilter("workfile",Array("*.json"))
826+
Dim workFilePath As String
827+
workFilePath=fc.ShowOpen(Main.MainForm)
828+
If workFilePath="" Then
829+
Return
830+
End If
831+
832+
Dim fileSegments As List
833+
fileSegments.Initialize
834+
835+
Dim workfile As Map
836+
Dim json As JSONParser
837+
json.Initialize(File.ReadString(workFilePath,""))
838+
workfile=json.NextObject
839+
Dim sourceFiles As List
840+
sourceFiles=workfile.Get("files")
841+
For Each sourceFileMap As Map In sourceFiles
842+
Dim innerFilename As String
843+
innerFilename=sourceFileMap.GetKeyAt(0)
844+
Dim segmentsList As List
845+
segmentsList=sourceFileMap.Get(innerFilename)
846+
fileSegments.AddAll(segmentsList)
847+
Next
848+
849+
Dim sourceMap As Map
850+
sourceMap.Initialize
851+
For Each segment As List In fileSegments
852+
Dim source As String
853+
source=segment.Get(0)
854+
sourceMap.Put(source,segment)
855+
Next
856+
857+
progressDialog.Show("Updating","update")
858+
Dim size As Int=segments.Size
859+
Dim index As Int
860+
progressDialog.update(index,size)
861+
Sleep(0)
862+
For Each segment As List In segments
863+
index=index+1
864+
progressDialog.update(index,size)
865+
Dim source As String
866+
source=segment.Get(0)
867+
If sourceMap.ContainsKey(source) Then
868+
Dim segmentFromWorkfile As List
869+
segmentFromWorkfile=sourceMap.Get(source)
870+
Dim extra As Map
871+
extra=segment.Get(4)
872+
Dim extraFromWorkfile As Map
873+
extraFromWorkfile=segmentFromWorkfile.Get(4)
874+
If extraFromWorkfile.GetDefault("createdTime",0)>=extra.GetDefault("createdTime",0) Then
875+
segment.Clear
876+
segment.AddAll(segmentFromWorkfile)
877+
End If
878+
End If
879+
Next
880+
progressDialog.close
881+
refillVisiblePane
882+
contentIsChanged
883+
fx.Msgbox(Main.MainForm,"Done","")
884+
End Sub
885+
810886
Sub removeFileMi_Action
811887
Dim mi As MenuItem
812888
mi=Sender
@@ -1652,6 +1728,16 @@ Sub viewInfoMI_Action
16521728
fx.Msgbox(Main.MainForm,infoBuilder.ToString,"")
16531729
End Sub
16541730

1731+
Sub refillVisiblePane
1732+
Dim visibleRange As Range
1733+
visibleRange=Main.getVisibleRange(Main.editorLV)
1734+
Dim ExtraSize As Int
1735+
ExtraSize=15
1736+
For i=Max(0,visibleRange.firstIndex-ExtraSize*2) To Min(Main.editorLV.Items.Size - 1,visibleRange.lastIndex+ExtraSize*2)
1737+
Main.editorLV.Items.Set(i,"")
1738+
Next
1739+
fillPane(visibleRange.firstIndex,visibleRange.lastIndex)
1740+
End Sub
16551741

16561742
Public Sub fillPane(FirstIndex As Int, LastIndex As Int)
16571743
Log("fillPane")

BasicCAT/Utils.bas

-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ Sub Process_Globals
1010
Private menus As Map
1111
End Sub
1212

13-
14-
1513
Sub LanguageHasSpace(lang As String) As Boolean
1614
Dim languagesWithoutSpaceList As List
1715
languagesWithoutSpaceList=File.ReadList(File.DirAssets,"languagesWithoutSpace.txt")

BasicCAT/progressDialog.bas

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Sub Process_Globals
1313
Private progressTypeValue As String
1414
End Sub
1515

16+
'input a random type name
1617
Sub Show(title As String,progressType As String)
1718
frm.Initialize("frm",600,200)
1819
frm.RootPane.LoadLayout("progress")

0 commit comments

Comments
 (0)