1# ************************************************************* 2# 3# Licensed to the Apache Software Foundation (ASF) under one 4# or more contributor license agreements. See the NOTICE file 5# distributed with this work for additional information 6# regarding copyright ownership. The ASF licenses this file 7# to you under the Apache License, Version 2.0 (the 8# "License"); you may not use this file except in compliance 9# with the License. You may obtain a copy of the License at 10# 11# http://www.apache.org/licenses/LICENSE-2.0 12# 13# Unless required by applicable law or agreed to in writing, 14# software distributed under the License is distributed on an 15# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16# KIND, either express or implied. See the License for the 17# specific language governing permissions and limitations 18# under the License. 19# 20# ************************************************************* 21 22import uno 23import unohelper 24 25from com.sun.star.task import XJobExecutor 26 27# implement a UNO component by deriving from the standard unohelper.Base class 28# and from the interface(s) you want to implement. 29class HelloWorldJob( unohelper.Base, XJobExecutor ): 30 def __init__( self, ctx ): 31 # store the component context for later use 32 self.ctx = ctx 33 34 def trigger( self, args ): 35 # note: args[0] == "HelloWorld", see below config settings 36 37 # retrieve the desktop object 38 desktop = self.ctx.ServiceManager.createInstanceWithContext( 39 "com.sun.star.frame.Desktop", self.ctx ) 40 41 # get current document model 42 model = desktop.getCurrentComponent() 43 44 # access the document's text property 45 text = model.Text 46 47 # create a cursor 48 cursor = text.createTextCursor() 49 50 # insert the text into the document 51 text.insertString( cursor, "Hello World", 0 ) 52 53# pythonloader looks for a static g_ImplementationHelper variable 54g_ImplementationHelper = unohelper.ImplementationHelper() 55 56# 57g_ImplementationHelper.addImplementation( \ 58 HelloWorldJob, # UNO object class 59 "org.openoffice.comp.pyuno.demo.HelloWorld", # implemenation name 60 ("com.sun.star.task.Job",),) # list of implemented services 61 # (the only service) 62