'************************************************************************* ' ' 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) < 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