1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="form_XFormController" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9'
10' Copyright 2000, 2010 Oracle and/or its affiliates.
11'
12' OpenOffice.org - a multi-platform office productivity suite
13'
14' This file is part of OpenOffice.org.
15'
16' OpenOffice.org is free software: you can redistribute it and/or modify
17' it under the terms of the GNU Lesser General Public License version 3
18' only, as published by the Free Software Foundation.
19'
20' OpenOffice.org is distributed in the hope that it will be useful,
21' but WITHOUT ANY WARRANTY; without even the implied warranty of
22' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23' GNU Lesser General Public License version 3 for more details
24' (a copy is included in the LICENSE file that accompanied this code).
25'
26' You should have received a copy of the GNU Lesser General Public License
27' version 3 along with OpenOffice.org.  If not, see
28' <http://www.openoffice.org/license.html>
29' for a copy of the LGPLv3 License.
30'
31'*************************************************************************
32*****
33'*************************************************************************
34
35
36
37' Be sure that all variables are dimensioned:
38option explicit
39
40'*************************************************************************
41' This Interface/Service test depends on the following GLOBAL variables,
42' which must be specified in the object creation:
43
44'     - Global otherWin As Object
45
46'*************************************************************************
47
48
49
50
51
52
53Sub RunTest()
54
55'*************************************************************************
56' INTERFACE:
57' com.sun.star.form.XFormController
58'*************************************************************************
59On Error Goto ErrHndl
60    Dim bOK As Boolean
61    Dim cntrl As Object
62    Dim list1 As Object, list2 As Object
63
64    Test.StartMethod("getCurrentControl()")
65    bOK = true
66    cntrl = oObj.getCurrentControl()
67    bOK = bOK AND NOT isNull(cntrl)
68    Test.MethodTested("getCurrentControl()", bOK)
69
70    Test.StartMethod("addActivateListener()")
71    bOK = true
72    list1 = createUnoListener("L1_", "com.sun.star.form.XFormControllerListener")
73    list2 = createUnoListener("L2_", "com.sun.star.form.XFormControllerListener")
74    oObj.addActivateListener(list1)
75    oObj.addActivateListener(list2)
76
77    Test.StartMethod("removeActivateListener()")
78    oObj.removeActivateListener(list1)
79
80    if NOT hasUnoInterfaces(cntrl, "com.sun.star.awt.XWindow") then
81        Out.Log("The oObj.getCurrentControl() return object doesn't support")
82        Out.Log("com.sun.star.awt.XWindow interface required for testing !!!")
83        Out.Log("Interface test must be redesigned thus !!!")
84    else
85        cntrl.setFocus()
86        wait(500)
87        otherWin.setFocus()
88        wait(500)
89    end if
90
91    Test.MethodTested("addActivateListener()", L2called)
92    Test.MethodTested("removeActivateListener()", _
93        L2called AND NOT L1called)
94
95Exit Sub
96ErrHndl:
97    Test.Exception()
98    bOK = false
99    resume next
100End Sub
101
102Dim L1called As Boolean
103Dim L2called As Boolean
104
105Sub L1_formActivated(ev As Object)
106    L1called = true
107    Out.Log("L1 activated Called !!!!!!!!!")
108end Sub
109
110Sub L1_formDeactivated(ev As Object)
111    L1called = true
112    Out.Log("L1 deactivated Called !!!!!!!!!")
113end Sub
114
115Sub L2_formActivated()
116    L2called = true
117    Out.Log("L2 activated Called !!!!!!!!!")
118end Sub
119
120Sub L2_formDeactivated()
121    L2called = true
122    Out.Log("L2 deactivated Called !!!!!!!!!")
123end Sub
124</script:module>
125