cleanandvalidate/Redaction/Configuration.xba

219 lines
8.9 KiB
Text
Raw Normal View History

2020-03-05 20:23:54 +01:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
2020-03-05 20:55:14 +01:00
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Configuration" script:language="StarBasic" script:moduleType="normal">Public Const redactionExtensionName As String = &quot;cleanAndValidate&quot;
2021-02-01 11:35:58 +01:00
Public Const redactionExtensionVersion = &quot;0.9.27&quot;
2020-03-05 20:23:54 +01:00
Function initRedactionConfiguration()
On Error Goto exceptionHandler
Dim regFactory As Object
Dim reg As Object
2020-03-21 11:55:13 +01:00
Dim redactionProps As Object
2020-03-05 20:23:54 +01:00
Dim props(2) As New com.sun.star.beans.PropertyValue
Dim propSetInfo As Object
2020-03-05 20:23:54 +01:00
regFactory = CreateUnoService(&quot;com.sun.star.ucb.Store&quot;)
2020-03-05 20:55:14 +01:00
reg = regFactory.createPropertySetRegistry(redactionExtensionName)
redactionProps = reg.openPropertySet(redactionExtensionName, TRUE)
propSetInfo = redactionProps.getPropertySetInfo()
If Not propSetInfo.hasPropertyByName(&quot;superscript_max_length&quot;) Then
redactionProps.addProperty(&quot;superscript_max_length&quot;, 128, &quot;10&quot;)
EndIf
If Not propSetInfo.hasPropertyByName(&quot;subscript_max_length&quot;) Then
redactionProps.addProperty(&quot;subscript_max_length&quot;, 128, &quot;10&quot;)
EndIf
If Not propSetInfo.hasPropertyByName(&quot;fixes_russian_iph&quot;) Then
redactionProps.addProperty(&quot;fixes_russian_iph&quot;, 128, &quot;true&quot;)
EndIf
If Not propSetInfo.hasPropertyByName(&quot;complexity&quot;) Then
redactionProps.addProperty(&quot;complexity&quot;, 128, &quot;user&quot;)
EndIf
2020-04-23 14:15:18 +02:00
exceptionHandler:
2020-03-21 12:37:32 +01:00
Resume Next
2020-04-23 14:15:18 +02:00
On Error Goto exceptionHandler2
2021-01-14 12:09:53 +01:00
If Not propSetInfo.hasPropertyByName(&quot;defaultTemplate&quot;) Then
redactionProps.addProperty(&quot;defaultTemplate&quot;, 128, &quot;Статья.ott&quot;)
EndIf
2020-04-23 14:15:18 +02:00
exceptionHandler2:
Resume Next
2020-03-05 20:23:54 +01:00
initRedactionConfiguration = redactionProps
End Function
2020-03-21 11:55:13 +01:00
Private Sub setConfigFromDialog(dialog As Object)
2020-03-05 20:23:54 +01:00
Dim config As Object
config = initRedactionConfiguration()
2020-05-18 17:16:20 +02:00
2020-03-05 20:55:14 +01:00
If dialog.getControl(&quot;CB_complexity&quot;).state = 1 Then
config.setPropertyValue(&quot;complexity&quot;, &quot;makerUp&quot;)
Else
config.setPropertyValue(&quot;complexity&quot;, &quot;user&quot;)
EndIf
2020-05-18 17:16:20 +02:00
If dialog.getControl(&quot;cb_russian_fixes_iph&quot;).state = 1 Then
config.setPropertyValue(&quot;fixes_russian_iph&quot;, &quot;true&quot;)
Else
config.setPropertyValue(&quot;fixes_russian_iph&quot;, &quot;false&quot;)
EndIf
config.setPropertyValue(&quot;superscript_max_length&quot;, dialog.getControl(&quot;tf_max_superscript&quot;).getText())
config.setPropertyValue(&quot;subscript_max_length&quot;, dialog.getControl(&quot;tf_max_subscript&quot;).getText())
2020-03-05 20:55:14 +01:00
End Sub
2020-03-21 11:55:13 +01:00
Private Sub loadConfigToDialog(dialog As Object)
2020-03-05 20:55:14 +01:00
Dim config As Object
config = initRedactionConfiguration()
If config.getPropertyValue(&quot;complexity&quot;) = &quot;makerUp&quot; Then
dialog.getControl(&quot;CB_complexity&quot;).state = 1
Else
dialog.getControl(&quot;CB_complexity&quot;).state = 0
EndIf
2020-05-18 17:16:20 +02:00
If config.getPropertyValue(&quot;fixes_russian_iph&quot;) = &quot;true&quot; Then
dialog.getControl(&quot;cb_russian_fixes_iph&quot;).state = 1
Else
dialog.getControl(&quot;cb_russian_fixes_iph&quot;).state = 0
EndIf
dialog.getControl(&quot;tf_max_superscript&quot;).setText(config.getPropertyValue(&quot;superscript_max_length&quot;))
dialog.getControl(&quot;tf_max_subscript&quot;).setText(config.getPropertyValue(&quot;subscript_max_length&quot;))
2020-03-05 20:55:14 +01:00
End Sub
Private Sub configurationDialog
Dim dialog As Object
DialogLibraries.LoadLibrary(&quot;Redaction&quot;)
dialog = CreateUnoDialog(DialogLibraries.Redaction.ConfigDialog)
2020-05-04 14:28:39 +02:00
loadConfigToDialog(dialog)
2020-05-04 16:43:15 +02:00
dialog.getControl(&quot;CB_complexity&quot;).Label = getTranslation(&quot;dialogConfigComplexity&quot;)
2020-05-18 17:16:20 +02:00
dialog.getControl(&quot;cb_russian_fixes_iph&quot;).Label = getTranslation(&quot;dialogRussianFixesIPH&quot;)
dialog.getControl(&quot;label_max_superscript&quot;).setText(getTranslation(&quot;dialogConfigMaxSuperscript&quot;))
dialog.getControl(&quot;label_max_subscript&quot;).setText(getTranslation(&quot;dialogConfigMaxSubscript&quot;))
2020-05-04 16:43:15 +02:00
dialog.Title = getTranslation(&quot;dialogConfigTitle&quot;)
dialog.getControl(&quot;OK&quot;).Label = getTranslation(&quot;buttonYes&quot;)
dialog.getControl(&quot;CANCEL&quot;).Label = getTranslation(&quot;buttonStop&quot;)
2020-03-05 20:55:14 +01:00
dialog.setVisible(true)
Select Case dialog.Execute()
Case 1
setConfigFromDialog(dialog)
Case 0
End Select
dialog.setVisible(false)
dialog.dispose()
Exit sub
2020-03-05 20:23:54 +01:00
End Sub
2020-04-23 14:15:18 +02:00
Private Sub quietStartDialog
Dim dialog As Object
DialogLibraries.LoadLibrary(&quot;Redaction&quot;)
dialog = CreateUnoDialog(DialogLibraries.Redaction.StartQuietCleaning)
Dim description As String
Dim buttonNameOk As String
Dim buttonNameStop As String
Dim buttonNameLoad As String
2020-04-23 14:33:18 +02:00
Dim dialogTitle As String
2020-05-04 14:28:39 +02:00
description = getTranslation(&quot;startQuietCleaningDescription&quot;)
buttonNameOk = getTranslation(&quot;buttonYes&quot;)
buttonNameStop = getTranslation(&quot;buttonStop&quot;)
buttonNameLoad = getTranslation(&quot;buttonLoad&quot;)
dialogTitle = getTranslation(&quot;quietStartCleaningTitle&quot;)
2020-04-23 14:33:18 +02:00
dialog.Title = dialogTitle
2020-04-23 14:15:18 +02:00
dialog.getControl(&quot;Description&quot;).setText(description)
dialog.getControl(&quot;buttonOk&quot;).Label = buttonNameOk
dialog.getControl(&quot;buttonStop&quot;).Label = buttonNameStop
dialog.getControl(&quot;buttonLoad&quot;).Label = buttonNameLoad
dialog.setVisible(true)
Select Case dialog.Execute()
Case 1
dialog.setVisible(false)
dialog.dispose()
quietCleaning
Case 0
dialog.setVisible(false)
dialog.dispose()
End Select
Exit sub
End Sub
Private Sub noStylesFileDialog
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
Dim dialog As Object
DialogLibraries.LoadLibrary(&quot;Redaction&quot;)
dialog = CreateUnoDialog(DialogLibraries.Redaction.NoStyleFile)
Dim description As String
Dim buttonName As String
2020-04-23 14:33:18 +02:00
Dim dialogTitle As String
Dim buttonTemplateNotFoundSkip As String
2020-05-04 14:28:39 +02:00
dialogTitle = getTranslation(&quot;noStylesFileDialogTitle&quot;)
description = getTranslation(&quot;noFileWithStylesFound&quot;)
buttonName = getTranslation(&quot;buttonNameToSelectFileWithStyles&quot;)
buttonTemplateNotFoundSkip = getTranslation(&quot;buttonTemplateNotFoundSkip&quot;)
2020-04-23 14:33:18 +02:00
dialog.Title = dialogTitle
2020-04-23 14:15:18 +02:00
dialog.getControl(&quot;Description&quot;).setText(description)
dialog.getControl(&quot;FileSelection&quot;).Label = buttonName
2020-04-23 14:33:18 +02:00
dialog.getControl(&quot;buttonOk&quot;).Label = buttonTemplateNotFoundSkip
dialog.setVisible(true)
2020-04-23 14:15:18 +02:00
Select Case dialog.Execute()
Case 1
2020-04-23 14:33:18 +02:00
setDeafultTemplate()
2020-04-23 14:15:18 +02:00
Case 0
End Select
dialog.setVisible(false)
dialog.dispose()
Exit sub
End Sub
Sub setDeafultTemplate()
Dim selectedTemplate As String
selectedTemplate = getFileURLDialog()
2020-04-23 14:33:18 +02:00
oSimpleFileAccess = CreateUnoService( &quot;com.sun.star.ucb.SimpleFileAccess&quot; )
If NOT (oSimpleFileAccess.exists( selectedTemplate ) AND NOT oSimpleFileAccess.isFolder( selectedTemplate ) ) Then
Exit sub
End If
2020-04-23 14:15:18 +02:00
Dim fileName As String
Dim config As Object
config = initRedactionConfiguration()
fileName = Dir(selectedTemplate)
config.setPropertyValue(&quot;defaultTemplate&quot;,fileName)
Dim templatePath As String
templatePath = getTemplatePath()
2021-01-14 12:09:53 +01:00
MkDir(templatePath)
2020-04-23 14:15:18 +02:00
FileCopy(selectedTemplate, templatePath &amp; &quot;/&quot; &amp; fileName)
End Sub
Function getFileURLDialog() As String
Dim oFilePicker As Object, oSimpleFileAccess As Object
Dim oSettings As Object, oPathSettings As Object
Dim oTextField As Object, oTextFieldModel As Object
Dim sFileURL As String
Dim sFiles As Variant
oFilePicker = CreateUnoService( &quot;com.sun.star.ui.dialogs.FilePicker&quot; )
oFilePicker.AppendFilter( &quot;All files (*.*)&quot;, &quot;*.*&quot; )
oFilePicker.AppendFilter( &quot;Open Document Text&quot;, &quot;*.odt;*.ott&quot; )
oFilePicker.SetCurrentFilter( &quot;Open Document Text&quot; )
If sFileURL = &quot;&quot; Then
oPathSettings = CreateUnoService( &quot;com.sun.star.util.PathSettings&quot; )
sFileURL = oPathSettings.Work
End If
REM set display directory
oSimpleFileAccess = CreateUnoService( &quot;com.sun.star.ucb.SimpleFileAccess&quot; )
If oSimpleFileAccess.exists( sFileURL ) And oSimpleFileAccess.isFolder( sFileURL ) Then
oFilePicker.setDisplayDirectory( sFileURL )
End If
If oFilePicker.execute() Then
sFiles = oFilePicker.getFiles()
sFileURL = sFiles(0)
If oSimpleFileAccess.exists( sFileURL ) Then
getFileURLDialog = sFileURL
Exit Function
End If
End If
getFileURLDialog = &quot;&quot;
End Function
</script:module>