| <?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) < 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> |