| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> |
| <script:module xmlns:script="http://openoffice.org/2000/script" script:name="forms_OFormattedFieldWrapper" script:language="StarBasic"> |
| |
| |
| '************************************************************************* |
| ' |
| ' Licensed to the Apache Software Foundation (ASF) under one |
| ' or more contributor license agreements. See the NOTICE file |
| ' distributed with this work for additional information |
| ' regarding copyright ownership. The ASF licenses this file |
| ' to you under the Apache License, Version 2.0 (the |
| ' "License"); you may not use this file except in compliance |
| ' with the License. You may obtain a copy of the License at |
| ' |
| ' http://www.apache.org/licenses/LICENSE-2.0 |
| ' |
| ' Unless required by applicable law or agreed to in writing, |
| ' software distributed under the License is distributed on an |
| ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ' KIND, either express or implied. See the License for the |
| ' specific language governing permissions and limitations |
| ' under the 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 |
| </script:module> |