2 # -*- coding: utf_8 -*-
4 Extension pour faciliter l'intégration du logiciel Coda.
5 Gestion de la fenêtre des options.
7 Copyright : Agence universitaire de la Francophonie
8 Licence : GNU General Public Licence, version 2
9 Auteur : Jean Christophe André
10 Date de création : juillet 2009
16 from com
.sun
.star
.lang
import XServiceInfo
17 from com
.sun
.star
.awt
import XContainerWindowEventHandler
20 class DialogHandler(unohelper
.Base
, XServiceInfo
, XContainerWindowEventHandler
):
21 def __init__(self
, ctx
):
23 self
.cp
= self
.ctx
.ServiceManager
.createInstanceWithContext(
24 "com.sun.star.configuration.ConfigurationProvider",
26 node
= uno
.createUnoStruct("com.sun.star.beans.PropertyValue")
27 node
.Name
= "nodepath"
28 node
.Value
= "/org.openoffice.VCL/Settings/Transfer"
30 self
.cfg_names
= ("SelectionTimeout",)
33 # XContainerWindowEventHandler
34 def callHandlerMethod(self
, window
, eventObject
, method
):
35 if method
== "external_event":
37 self
.handleExternalEvent(window
, eventObject
)
42 # XContainerWindowEventHandler
43 def getSupportedMethodNames(self
):
44 return ("external_event",)
46 def supportsService(self
, name
):
49 def getImplementationName(self
):
50 return "org.auf.openoffice.macros.DialogHandler"
52 def getSupportedServiceNames(self
):
55 def handleExternalEvent(self
, window
, eventName
):
58 elif eventName
== "back":
59 self
.loadData(window
, "back")
60 elif eventName
== "initialize":
61 self
.loadData(window
, "initialize")
64 # load and set the data
65 def loadData(self
, window
, ev
):
66 name
= window
.getModel().Name
67 if name
!= "MacrosDialog":
69 settings
= self
.configreader()
72 for name
in self
.cfg_names
:
73 window
.getControl(name
).setValue(settings
.get(name
, ''))
76 # making the save data
77 def saveData(self
,window
):
78 name
= window
.getModel().Name
79 if name
!= "MacrosDialog":
82 for name
in self
.cfg_names
:
83 settings
.append(str(int(window
.getControl(name
).Value
)))
84 self
.configwriter(tuple(settings
))
88 def configreader(self
):
91 ConfigReader
= self
.cp
.createInstanceWithArguments(
92 "com.sun.star.configuration.ConfigurationAccess",
94 #cfg_values = ConfigReader.getPropertyValues(self.cfg_names)
95 for i
in range(len(self
.cfg_names
)):
96 cfg_value
= ConfigReader
.getByName(self
.cfg_names
[i
])
97 settings
[self
.cfg_names
[i
]] = cfg_value
102 # write configuration, cfg_values: tuple
103 # keep the order of the values
104 def configwriter(self
, cfg_values
):
106 ConfigWriter
= self
.cp
.createInstanceWithArguments(
107 "com.sun.star.configuration.ConfigurationUpdateAccess",
109 #ConfigWriter.setPropertyValues(self.cfg_names, cfg_values)
110 for i
in range(len(self
.cfg_names
)):
111 ConfigWriter
.replaceByName(self
.cfg_names
[i
], cfg_values
[i
])
112 ConfigWriter
.commitChanges()
117 g_ImplementationHelper
= unohelper
.ImplementationHelper()
118 g_ImplementationHelper
.addImplementation( \
119 DialogHandler
, "org.auf.openoffice.macros.DialogHandler", \
120 ("org.auf.openoffice.macros.DialogHandler",),)