blob: d293f9fcf7bd2b4262826f11811b86fa5e45434b [file] [log] [blame]
<?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_OTimeModel" 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:
' for XComponent
Global oComponentInstance As Object
' for XPersistObject
Global oPersistInstance As Object
' for XUpdateBroadcaster
Global bCustomUpdate As Boolean
Global oForm As Object
Global oConnection As Object
Sub CreateObj()
'*************************************************************************
' COMPONENT:
' forms.OTimeModel
'*************************************************************************
On Error Goto ErrHndl
Dim bOK As Boolean
Dim oShape As Object, oDrawPage As Object
bOK = true
' --- create a document if needed
oDoc = utils.createDocument("swriter", cObjectName)
oShape = toolkittools.addControlToDefaultForm("TimeField", 1000, 1000, 2000, 1000)
oObj = oShape.getControl()
oShape = toolkittools.addControlToDefaultForm("TimeField", 1000, 3000, 2000, 1000)
oComponentInstance = oShape.getControl()
oShape = toolkittools.addControlToDefaultForm("TimeField", 1000, 5000, 2000, 1000)
oPersistInstance = oShape.getControl()
'get control from document
oDrawPage = oDoc.DrawPage
oForm = oDrawPage.Forms.getByName("Standard")
Dim oRowSet As Object, facc As Object, dbSource As Object
Dim srcFile As String, dstFile As String, dbSrcURL As String
' Copying DB file to temp location
srcFile = utils.Path2URL(cTestDocsDir) + "TestDB/testDB.dbf"
dstFile = utils.getTempFileURL("OTimeModelDB.dbf")
dbSrcURL = "sdbc:dbase:" + utils.StrReplace(dstFile, "/OTimeModelDB.dbf", "")
facc = createUnoService("com.sun.star.ucb.SimpleFileAccess")
if (facc.exists(dstFile)) then facc.kill(dstFile)
facc.copy(srcFile, dstFile)
dbtools.RegisterDataSource("DBTest", dbSrcURL)
oForm.DataSourceName = "DBTest"
oForm.Command = "OTimeModelDB"
oForm.CommandType = com.sun.star.sdb.CommandType.TABLE
oObj.DataField = "_DOUBLE"
oForm.load()
oConnection = oForm.ActiveConnection
' for XUpdateBroadcaster
bCustomUpdate = true
Exit Sub
ErrHndl:
Test.Exception()
End Sub
Global aChangedValue As Variant
' for XBoundComponent
Sub prepareCommit()
On Error Goto ErrHndl
Out.Log("prepareCommit() called.")
if NOT (isNull(oObj.Time) OR isEmpty(oObj.Time)) then
Out.Log("The old value was: " + oObj.Time)
aChangedValue = oObj.Time + 150000 ' adding 15 minutes
else
aChangedValue = 150000 ' setting to 0:15
end if
oObj.Time = aChangedValue
exit sub
ErrHndl:
Test.Exception()
End Sub
' for XBoundComponent
Function checkCommit() As Boolean
On Error Goto ErrHndl
Out.Log("checkCommit() called.")
Dim rowValue As Variant
oForm.updateRow()
oForm.reload()
rowValue = oObj.Time
Out.Log("Value was set to " + aChangedValue )
Out.Log("the value in current row is " + rowValue)
checkCommit() = abs(rowValue - aChangedValue) &lt; 100
exit function
ErrHndl:
Test.Exception()
checkCommit() = false
End Function
' for XUpdateBroadcaster
Sub UpdateComponent()
Out.Log("UpdateComponent() called.")
if NOT (isNull(oObj.Time) OR isEmpty(oObj.Time)) then
oObj.Time = oObj.Time + 150000
else
oObj.Time = 150000
end if
oObj.commit()
exit sub
ErrHndl:
Test.Exception()
End Sub
Sub DisposeObj()
On Error Goto ErrHndl
Out.Log("Closing DB connection ...")
oConnection.close()
Out.Log("Revoking 'DBTest' datasource ...")
dbtools.RevokeDB("DBTest")
Exit Sub
ErrHndl:
Test.Exception()
resume next
End Sub
</script:module>