'************************************************************************* ' ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ' ' Copyright 2008 by Sun Microsystems, Inc. ' ' OpenOffice.org - a multi-platform office productivity suite ' ' $RCSfile: forms_OFormattedFieldWrapper.xba,v $ ' ' $Revision: 1.3 $ ' ' This file is part of OpenOffice.org. ' ' OpenOffice.org is free software: you can redistribute it and/or modify ' it under the terms of the GNU Lesser General Public License version 3 ' only, as published by the Free Software Foundation. ' ' OpenOffice.org 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 version 3 for more details ' (a copy is included in the LICENSE file that accompanied this code). ' ' You should have received a copy of the GNU Lesser General Public License ' version 3 along with OpenOffice.org. If not, see ' ' for a copy of the LGPLv3 License. ' '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit ' REQUIRED VARIABLES for interface/service tests: ' Requiered for com.sun.star.lang.XComponent Global oComponentInstance As Object ' it will be disposed ' Requiered for com.sun.star.io.XPersistObject Global oPersistInstance As Object ' for XUpdateBroadcaster Global bCustomUpdate As Boolean Global oForm As Object Sub CreateObj() '************************************************************************* ' COMPONENT: ' forms.OFormattedFieldWrapper '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim oShape As Object, oDrawPage As Object bOK = true oDoc = utils.createDocument("swriter", cObjectName) oShape = toolkittools.addControlToDefaultForm("DatabaseFormattedField", 1000, 1000, 2000, 1000) oObj = oShape.getControl() oShape = toolkittools.addControlToDefaultForm("DatabaseFormattedField", 1000, 3000, 2000, 1000) oComponentInstance = oShape.getControl() oShape = toolkittools.addControlToDefaultForm("DatabaseFormattedField", 1000, 5000, 2000, 1000) oPersistInstance = oShape.getControl() 'get control from document oDrawPage = oDoc.DrawPage oForm = oDrawPage.Forms.getByName("Standard") oForm.DataSourceName = "Bibliography" oForm.Command = "biblio" oForm.CommandType = com.sun.star.sdb.CommandType.TABLE oObj.DataField = "Custom2" oForm.load() ' for XUpdateBroadcaster bCustomUpdate = true ' Switching to non-design mode switchDesignMode(oDoc) Exit Sub ErrHndl: Test.Exception() End Sub Sub switchDesignMode(xDoc as Object) On Error Goto ErrHndl Dim frame as Variant, disp as Variant, transf as Object Dim URL as new com.sun.star.util.URL Dim noProps() Dim res as Boolean frame = xDoc.getCurrentController().getFrame() URL.Complete = ".uno:SwitchControlDesignMode" transf = createUnoService("com.sun.star.util.URLTransformer") res = transf.parseStrict(URL) out.log("URL parsed :" + res) disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _ OR com.sun.star.frame.FrameSearchFlag.CHILDREN) out.log("disp get.") disp.dispatch(URL, noProps()) Exit Sub ErrHndl: Test.Exception() End Sub Global sChangedText As String ' for XBoundComponent Sub prepareCommit() On Error Goto ErrHndl Out.Log("prepareCommit() called.") if isNull(oObj.EffectiveValue) OR isEmpty(oObj.EffectiveValue) then oObj.EffectiveValue = "12" endif sChangedText = "9" + oObj.EffectiveValue Out.Log("Text was: '" + oObj.EffectiveValue + "', set to '" + sChangedText + "'") oObj.EffectiveValue = sChangedText exit sub ErrHndl: Test.Exception() End Sub ' for XBoundComponent Function checkCommit() As Boolean On Error Goto ErrHndl Out.Log("checkCommit() called.") Dim rowText As Variant rowText = oForm.getString(oForm.findColumn("Custom2")) Out.Log("Result test: '" + rowText + "'") checkCommit() = (rowText = sChangedText) exit function ErrHndl: Test.Exception() End Function ' for XUpdateBroadcaster Sub UpdateComponent() oObj.EffectiveValue = "_" + oObj.EffectiveValue oObj.commit() End Sub