def _executeDispatch(self, control): tag = control.Model.Tag document = createService(self.ctx, 'com.sun.star.frame.Desktop').CurrentComponent frame = document.CurrentController.Frame dispatcher = createService(self.ctx, 'com.sun.star.frame.DispatchHelper') if tag == 'DataSource': dispatcher.executeDispatch(frame, '.uno:AutoPilotAddressDataSource', '', 0, ()) elif tag == 'AddressBook': dispatcher.executeDispatch(frame, '.uno:AddressBookSource', '', 0, ()) return True
def getDocumentDataSource(self): setting = 'com.sun.star.document.Settings' document = createService(self.ctx, 'com.sun.star.frame.Desktop').CurrentComponent if document.supportsService('com.sun.star.text.TextDocument'): return document.createInstance(setting).CurrentDatabaseDataSource return ''
def __init__(self, ctx, event, scheme, plugin): try: msg = "DataSource for Scheme: %s loading ... " % scheme print("DataSource __init__() 1") self.ctx = ctx self.scheme = scheme self.plugin = plugin self._CahedUser = {} self._Calls = {} self.Error = None self.sync = event self.Provider = createService(self.ctx, '%s.Provider' % plugin) print("DataSource __init__() 2") self.datasource, url, created = getDataSource( self.ctx, scheme, plugin, True) print("DataSource __init__() 3 %s" % created) self.DataBase = DataBase(self.ctx, self.datasource) if created: self.Error = self.DataBase.createDataBase() if self.Error is None: self.DataBase.storeDataBase(url) self.DataBase.addCloseListener(self) folder, link = self.DataBase.getContentType() self.Provider.initialize(scheme, plugin, folder, link) self.replicator = Replicator(ctx, self.datasource, self.Provider, self._CahedUser, self.sync) print("DataSource __init__() 4") logMessage(self.ctx, INFO, "stage 2", 'DataSource', '__init__()') print("DataSource __init__() 5") msg += "Done" logMessage(self.ctx, INFO, msg, 'DataSource', '__init__()') except Exception as e: msg = "DataSource __init__(): Error: %s - %s" % ( e, traceback.print_exc()) print(msg)
def _upload(self, dialog): service = 'com.sun.star.util.PathSubstitution' ps = createService(self.ctx, service) path = ps.substituteVariables('$(work)', True) service = 'com.sun.star.ui.dialogs.FilePicker' fp = createService(self.ctx, service) fp.setDisplayDirectory(path) fp.appendFilter(g_jar, '*.jar') fp.setCurrentFilter(g_jar) if fp.execute() == OK: url = getUrl(self.ctx, fp.getFiles()[0]) if url.Name == g_jar: jar = '%s/%s' % (g_path, g_jar) target = getResourceLocation(self.ctx, g_identifier, jar) getSimpleFile(self.ctx).copy(url.Main, target) self._reloadVersion(dialog)
def getUrl(ctx, identifier): url = uno.createUnoStruct('com.sun.star.util.URL') url.Complete = identifier transformer = createService(ctx, 'com.sun.star.util.URLTransformer') success, url = transformer.parseStrict(url) if success: identifier = transformer.getPresentation(url, True) return identifier
def __init__(self, ctx, wizard): self.ctx = ctx self._wizard = wizard self._provider = createService(self.ctx, 'com.sun.star.awt.ContainerWindowProvider') self._stringResource = getStringResource(self.ctx, g_identifier, g_extension) self._configuration = getConfiguration(self.ctx, g_identifier, True) self._handler = WizardHandler(self.ctx, self._wizard) self._maxsize = self._configuration.getByName("MaxSizeMo") * MOTOBIT
def _createPeer(self, peer=None): self._dialog.setVisible(False) toolkit = createService(self.ctx, 'com.sun.star.awt.Toolkit') if peer is None: peer = toolkit.getDesktopWindow() self._dialog.createPeer(toolkit, peer) #self.xWindowPeer = self.DialogWindow.getPeer() return self._dialog.getPeer()
def __init__(self, ctx, rowset): self._listeners = [] self._datalisteners = [] self._order = '' self.RowCount = self.ColumnCount = 0 self.ColumnModel = createService( ctx, 'com.sun.star.awt.grid.DefaultGridColumnModel') self._resultset = None rowset.addRowSetListener(self)
def __init__(self, ctx, code, uuid, address, port, lock): Thread.__init__(self) self.ctx = ctx self.code = code self.uuid = uuid self.argument = 'socket,host=%s,port=%s,tcpNoDelay=1' % (address, port) self.acceptor = createService(self.ctx, 'com.sun.star.connection.Acceptor') self.lock = lock
def __init__(self, ctx, wizard): self.ctx = ctx self._wizard = wizard #self._dbcontext = createService(self.ctx, 'com.sun.star.sdb.DatabaseContext') self._listeners = [] self._disabled = False self._modified = False self._address = createService(self.ctx, 'com.sun.star.sdb.RowSet') self._address.CommandType = TABLE self._address.FetchSize = g_fetchsize self._recipient = createService(self.ctx, 'com.sun.star.sdb.RowSet') self._recipient.CommandType = TABLE self._recipient.FetchSize = g_fetchsize self._statement = None self._table = None self._database = None self._quey = None self._emailcolumns = self._indexcolumns = () self.index = -1
def getDataSourceConnection(ctx, url, dbname, name='', password=''): dbcontext = createService(ctx, 'com.sun.star.sdb.DatabaseContext') odb = dbname if dbcontext.hasByName(dbname) else '%s/%s.odb' % (url, dbname) datasource = dbcontext.getByName(odb) connection, error = None, None try: connection = datasource.getConnection(name, password) except SQLException as e: error = e return connection, error
def __init__(self, ctx): try: self.ctx = ctx self.stringResource = getStringResource(self.ctx, g_identifier, 'OAuth2OOo', 'OptionsDialog') self.service = createService(self.ctx, g_oauth2) logMessage(self.ctx, INFO, "Loading ... Done", 'OptionsDialog', '__init__()') except Exception as e: msg = "Error: %s - %s" % (e, traceback.print_exc()) logMessage(self.ctx, SEVERE, msg, 'OptionsDialog', '__init__()')
def _getUrl(self): path = getResourceLocation(self.ctx, g_identifier, g_path) url = '%s/dbversion.odb' % path if not getSimpleFile(self.ctx).exists(url): service = 'com.sun.star.sdb.DatabaseContext' datasource = createService(self.ctx, service).createInstance() datasource.URL = self._getDataSourceUrl(path) datasource.Settings.JavaDriverClass = g_class datasource.Settings.JavaDriverClassPath = self._getDataSourceClassPath( path) datasource.DatabaseDocument.storeAsURL(url, ()) return url
def getDataSourceUrl(ctx, dbname, plugin, register): error = None url = getResourceLocation(ctx, plugin, g_path) odb = '%s/%s.odb' % (url, dbname) dbcontext = createService(ctx, 'com.sun.star.sdb.DatabaseContext') if not getSimpleFile(ctx).exists(odb): datasource = createDataSource(dbcontext, url, dbname) error = createDataBase(ctx, datasource, url, dbname) if error is None: datasource.DatabaseDocument.storeAsURL(odb, ()) if error is None and register: registerDataSource(dbcontext, dbname, odb) return url, error
def getDataSource(ctx, dbname, plugin, register): location = getResourceLocation(ctx, plugin, g_path) url = '%s/%s.odb' % (location, dbname) dbcontext = createService(ctx, 'com.sun.star.sdb.DatabaseContext') if getSimpleFile(ctx).exists(url): odb = dbname if dbcontext.hasByName(dbname) else url datasource = dbcontext.getByName(odb) created = False else: datasource = createDataSource(dbcontext, location, dbname) created = True if register: registerDataSource(dbcontext, dbname, url) return datasource, url, created
def getDataSourceConnection(ctx, url, dbname, name='', password=''): print("getDataSourceConnection() 1") dbcontext = createService(ctx, 'com.sun.star.sdb.DatabaseContext') print("getDataSourceConnection() 2") odb = dbname if dbcontext.hasByName(dbname) else '%s/%s.odb' % (url, dbname) print("getDataSourceConnection() 3 %s - %s" % (odb, dbcontext.hasByName(odb))) datasource = dbcontext.getByName(odb) print("getDataSourceConnection() 4") connection, error = None, None try: print("getDataSourceConnection() 5") connection = datasource.getConnection(name, password) print("getDataSourceConnection() 6") except SQLException as e: error = e print("getDataSourceConnection() 7") return connection, error
def _getDriverVersion(self): try: service = '%s.Driver' % g_identifier driver = createService(self.ctx, service) url = 'sdbc:embedded:hsqldb' infos = getPropertyValueSet({'URL': self._getUrl()}) connection = driver.connect(url, infos) version = connection.getMetaData().getDriverVersion() connection.close() return version except UnoException as e: msg = getMessage(self.ctx, g_message, 141, e.Message) logMessage(self.ctx, SEVERE, msg, 'OptionsDialog', '_getDriverVersion()') except Exception as e: msg = getMessage(self.ctx, g_message, 142, (e, traceback.print_exc())) logMessage(self.ctx, SEVERE, msg, 'OptionsDialog', '_getDriverVersion()')
def handleInteractionRequest(self, interaction): # TODO: interaction.getRequest() does not seem to be functional under LibreOffice !!! # TODO: throw error AttributeError: "args" # TODO: on File "/usr/lib/python3/dist-packages/uno.py" # TODO: at line 525 in "_uno_struct__setattr__" # TODO: as a workaround we must set an "args" attribute of type "sequence<any>" to # TODO: IDL file of com.sun.star.auth.OAuth2Request Exception who is normally returned... print("OAuth2Service.handleInteractionRequest() 1") request = interaction.getRequest() mri = createService(self.ctx, 'mytools.Mri') if mri: print("OAuth2Service.handleInteractionRequest() 2") mri.inspect(interaction) url = request.ResourceUrl user = request.UserName if user != '': approved = self._getToken(interaction, url, user, request.Format) else: approved = self._showUserDialog(interaction, url, request.Message) return approved
def setDocumentRecord(self, index): try: dispatch = None document = createService( self.ctx, 'com.sun.star.frame.Desktop').CurrentComponent frame = document.getCurrentController().Frame flag = uno.getConstantByName( 'com.sun.star.frame.FrameSearchFlag.SELF') if document.supportsService('com.sun.star.text.TextDocument'): url = self._getUrl('.uno:DataSourceBrowser/InsertContent') dispatch = frame.queryDispatch(url, '_self', flag) elif document.supportsService( 'com.sun.star.sheet.SpreadsheetDocument'): url = self._getUrl('.uno:DataSourceBrowser/InsertColumns') dispatch = frame.queryDispatch(url, '_self', flag) if dispatch is not None: dispatch.dispatch(url, self._getDataDescriptor(index + 1)) self.index = index except Exception as e: print("WizardHandler.setDocumentRecord() ERROR: %s - %s" % (e, traceback.print_exc()))
def __init__(self, ctx, wizard, session, url, username, autoclose): self.ctx = ctx self._provider = createService( self.ctx, 'com.sun.star.awt.ContainerWindowProvider') self.Session = session self.Configuration = WizardSetting(self.ctx) self.ResourceUrl = url self.UserName = username self.AutoClose = autoclose self._pages = [1] self.AuthorizationCode = uno.createUnoStruct( 'com.sun.star.beans.Optional<string>') self.Server = WizardServer(self.ctx) self.Uuid = generateUuid() self._wizard = wizard self.Error = '' self._stringResource = getStringResource(self.ctx, g_identifier, 'OAuth2OOo') self._handler = WizardHandler(ctx, session, self.Configuration, wizard) path = getActivePath(self.Configuration) print("WizardController.__init__() %s" % path) self._wizard.activatePath(path, True)
def createPage(self, parent, id): try: msg = "PageId: %s ..." % id handler = WizardHandler(self.ctx, self.Session, self.Configuration, self.Wizard) url = getDialogUrl('OAuth2OOo', 'PageWizard%s' % id) provider = createService(self.ctx, 'com.sun.star.awt.ContainerWindowProvider') window = provider.createContainerWindow(url, '', parent, handler) page = WizardPage(self.ctx, self.Configuration, id, window, self.Uuid, self.AuthorizationCode) msg += " Done" logMessage(self.ctx, INFO, msg, 'WizardController', 'createPage()') return page except Exception as e: msg = "Error: %s - %s" % (e, traceback.print_exc()) logMessage(self.ctx, SEVERE, msg, 'WizardController', 'createPage()')
def __init__(self, ctx, event, scheme, plugin): msg = "DataSource for Scheme: %s loading ... " % scheme self.ctx = ctx self._Users = {} self._Uris = {} self._Identifiers = OrderedDict() self.Error = None self.sync = event self.Provider = createService(self.ctx, '%s.Provider' % plugin) datasource, url, created = getDataSource(self.ctx, scheme, plugin, True) self.DataBase = DataBase(self.ctx, datasource) if created: self.Error = self.DataBase.createDataBase() if self.Error is None: self.DataBase.storeDataBase(url) self.DataBase.addCloseListener(self) folder, link = self.DataBase.getContentType() self.Provider.initialize(scheme, plugin, folder, link) self.Replicator = Replicator(ctx, datasource, self.Provider, self._Users, self.sync) msg += "Done" logMessage(self.ctx, INFO, msg, 'DataSource', '__init__()')
def _splitDataBase(self, transformer, sf, url, split, dbname): service = 'com.sun.star.packages.zip.ZipFileAccess' args = (url.Main, ) zip = createService(self.ctx, service, *args) self._unzipDataBase(transformer, sf, zip, split, dbname)
def _getToolkit(self): return createService(self.ctx, 'com.sun.star.awt.Toolkit')
def DataSources(self): dbcontext = createService(self.ctx, 'com.sun.star.sdb.DatabaseContext') return dbcontext.getElementNames()
def getOAuth2(ctx, url, name): oauth2 = createService(ctx, g_oauth2) if oauth2 is not None: oauth2.initializeSession(url, name) return oauth2
def getRequest(self, name): request = createService(self.ctx, g_oauth2) if request is not None: request.initializeSession(self.Provider.Scheme, name) return request
def getUri(ctx, url): factory = createService(ctx, 'com.sun.star.uri.UriReferenceFactory') uri = factory.parse(url) return uri
def getRequest(ctx, scheme, name): request = createService(ctx, g_oauth2) if request is not None: request.initializeSession(scheme, name) return request
def _getDataSource(self, transformer, url, name): service = 'com.sun.star.sdb.DatabaseContext' datasource = createService(self.ctx, service).createInstance() self._setDataSource(datasource, transformer, url, name) return datasource