Danny.OOo.Listeners.ListenerProcAdapters.py

From Apache OpenOffice Wiki
Jump to: navigation, search

This module has various helpers that make it extremely easy to create listeners on the fly, and make them call an arbitrary python procedure.

#********************************************************************** 
# 
#   Danny.OOo.Listeners.ListenerProcAdapters.py 
# 
#   A module to easily work with OpenOffice.org. 
# 
#********************************************************************** 
#   Copyright (c) 2003-2004 Danny Brewer 
#   d29583@groovegarden.com 
# 
#   This library is free software; you can redistribute it and/or 
#   modify it under the terms of the GNU Lesser General Public 
#   License as published by the Free Software Foundation; either 
#   version 2.1 of the License, or (at your option) any later version. 
# 
#   This library is distributed in the hope that it will be useful, 
#   but WITHOUT ANY WARRANTY; without even the implied warranty of 
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
#   Lesser General Public License for more details. 
# 
#   You should have received a copy of the GNU Lesser General Public 
#   License along with this library; if not, write to the Free Software 
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
# 
#   See:  http://www.gnu.org/licenses/lgpl.html 
# 
#********************************************************************** 
#   If you make changes, please append to the change log below. 
# 
#   Change Log 
#   Danny Brewer         Revised 2004-06-05-01 
# 
#********************************************************************** 
 
 
 
# OOo's libraries 
import uno 
import unohelper 
 
 
 
 
#-------------------------------------------------- 
# An ActionListener adapter. 
# This object implements com.sun.star.awt.XActionListener. 
# When actionPerformed is called, this will call an arbitrary 
#  python procedure, passing it... 
#   1. the oActionEvent 
#   2. any other parameters you specified to this object's constructor (as a tuple). 
from com.sun.star.awt import XActionListener 
class ActionListenerProcAdapter( unohelper.Base, XActionListener ): 
    def __init__( self, oProcToCall, tParams=() ): 
        self.oProcToCall = oProcToCall # a python procedure 
        self.tParams = tParams # a tuple 
 
    # oActionEvent is a com.sun.star.awt.ActionEvent struct. 
    def actionPerformed( self, oActionEvent ): 
        if callable( self.oProcToCall ): 
            apply( self.oProcToCall, (oActionEvent,) + self.tParams ) 
 
 
#-------------------------------------------------- 
# An ItemListener adapter. 
# This object implements com.sun.star.awt.XItemListener. 
# When itemStateChanged is called, this will call an arbitrary 
#  python procedure, passing it... 
#   1. the oItemEvent 
#   2. any other parameters you specified to this object's constructor (as a tuple). 
from com.sun.star.awt import XItemListener 
class ItemListenerProcAdapter( unohelper.Base, XItemListener ): 
    def __init__( self, oProcToCall, tParams=() ): 
        self.oProcToCall = oProcToCall # a python procedure 
        self.tParams = tParams # a tuple 
 
    # oItemEvent is a com.sun.star.awt.ItemEvent struct. 
    def itemStateChanged( self, oItemEvent ): 
        if callable( self.oProcToCall ): 
            apply( self.oProcToCall, (oItemEvent,) + self.tParams ) 
 
 
#-------------------------------------------------- 
# An TextListener adapter. 
# This object implements com.sun.star.awt.XTextistener. 
# When textChanged is called, this will call an arbitrary 
#  python procedure, passing it... 
#   1. the oTextEvent 
#   2. any other parameters you specified to this object's constructor (as a tuple). 
from com.sun.star.awt import XTextListener 
class TextListenerProcAdapter( unohelper.Base, XTextListener ): 
    def __init__( self, oProcToCall, tParams=() ): 
        self.oProcToCall = oProcToCall # a python procedure 
        self.tParams = tParams # a tuple 
 
    # oTextEvent is a com.sun.star.awt.TextEvent struct. 
    def textChanged( self, oTextEvent ): 
        if callable( self.oProcToCall ): 
            apply( self.oProcToCall, (oTextEvent,) + self.tParams )
Personal tools