1ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5ef39d40dSAndrew Rist  * distributed with this work for additional information
6ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10ef39d40dSAndrew Rist  *
11ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12ef39d40dSAndrew Rist  *
13ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18ef39d40dSAndrew Rist  * under the License.
19ef39d40dSAndrew Rist  *
20ef39d40dSAndrew Rist  *************************************************************/
21ef39d40dSAndrew Rist 
22ef39d40dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package ifc.awt;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import java.io.PrintWriter;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir import lib.MultiMethodTest;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir import com.sun.star.awt.XMenuBar;
31cdf0e10cSrcweir import com.sun.star.awt.XTopWindow;
32cdf0e10cSrcweir import com.sun.star.awt.XTopWindowListener;
33cdf0e10cSrcweir import com.sun.star.lang.EventObject;
34cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory;
35cdf0e10cSrcweir import com.sun.star.text.XTextDocument;
36cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
37cdf0e10cSrcweir 
38cdf0e10cSrcweir /**
39cdf0e10cSrcweir * Testing <code>com.sun.star.awt.XTopWindow</code>
40cdf0e10cSrcweir * interface methods :
41cdf0e10cSrcweir * <ul>
42cdf0e10cSrcweir *  <li><code> addTopWindowListener()</code></li>
43cdf0e10cSrcweir *  <li><code> removeTopWindowListener()</code></li>
44cdf0e10cSrcweir *  <li><code> toFront()</code></li>
45cdf0e10cSrcweir *  <li><code> toBack()</code></li>
46cdf0e10cSrcweir *  <li><code> setMenuBar()</code></li>
47cdf0e10cSrcweir * </ul> <p>
48cdf0e10cSrcweir * Test is <b> NOT </b> multithread compilant. <p>
49cdf0e10cSrcweir * @see com.sun.star.awt.XTopWindow
50cdf0e10cSrcweir */
51cdf0e10cSrcweir public class _XTopWindow extends MultiMethodTest {
52cdf0e10cSrcweir 
53cdf0e10cSrcweir     public XTopWindow oObj = null;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     /**
56cdf0e10cSrcweir     * Listener implementation which sets flags on different
57cdf0e10cSrcweir     * method calls.
58cdf0e10cSrcweir     */
59cdf0e10cSrcweir     protected class TestListener implements XTopWindowListener {
60cdf0e10cSrcweir         private PrintWriter log = null ;
61cdf0e10cSrcweir         public boolean activated = false ;
62cdf0e10cSrcweir         public boolean deactivated = false ;
63cdf0e10cSrcweir 
TestListener(PrintWriter log)64cdf0e10cSrcweir         public TestListener(PrintWriter log) {
65cdf0e10cSrcweir             this.log = log ;
66cdf0e10cSrcweir         }
67cdf0e10cSrcweir 
initListener()68cdf0e10cSrcweir         public void initListener() {
69cdf0e10cSrcweir             activated = false;
70cdf0e10cSrcweir             deactivated = false;
71cdf0e10cSrcweir         }
72cdf0e10cSrcweir 
windowOpened(EventObject e)73cdf0e10cSrcweir         public void windowOpened(EventObject e) {
74cdf0e10cSrcweir             log.println("windowOpened() called") ;
75cdf0e10cSrcweir         }
windowClosing(EventObject e)76cdf0e10cSrcweir         public void windowClosing(EventObject e) {
77cdf0e10cSrcweir             log.println("windowClosing() called") ;
78cdf0e10cSrcweir         }
windowClosed(EventObject e)79cdf0e10cSrcweir         public void windowClosed(EventObject e) {
80cdf0e10cSrcweir             log.println("windowClosed() called") ;
81cdf0e10cSrcweir         }
windowMinimized(EventObject e)82cdf0e10cSrcweir         public void windowMinimized(EventObject e) {
83cdf0e10cSrcweir             log.println("windowMinimized() called") ;
84cdf0e10cSrcweir         }
windowNormalized(EventObject e)85cdf0e10cSrcweir         public void windowNormalized(EventObject e) {
86cdf0e10cSrcweir             log.println("windowNormalized() called") ;
87cdf0e10cSrcweir         }
windowActivated(EventObject e)88cdf0e10cSrcweir         public void windowActivated(EventObject e) {
89cdf0e10cSrcweir             activated = true;
90cdf0e10cSrcweir             log.println("windowActivated() called") ;
91cdf0e10cSrcweir         }
windowDeactivated(EventObject e)92cdf0e10cSrcweir         public void windowDeactivated(EventObject e) {
93cdf0e10cSrcweir             deactivated = true;
94cdf0e10cSrcweir             log.println("windowDeactivated() called") ;
95cdf0e10cSrcweir         }
disposing(EventObject e)96cdf0e10cSrcweir         public void disposing(EventObject e) {}
97cdf0e10cSrcweir     }
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     protected TestListener listener = null ;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     XTextDocument aTextDoc = null;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 
before()104cdf0e10cSrcweir     protected void before() {
105cdf0e10cSrcweir         aTextDoc = util.WriterTools.createTextDoc((XMultiServiceFactory)tParam.getMSF());
106cdf0e10cSrcweir     }
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     /**
109cdf0e10cSrcweir      * Adds a listener . <p>
110cdf0e10cSrcweir      *
111cdf0e10cSrcweir      * Has <b>OK</b> status always (listener calls are checked in
112cdf0e10cSrcweir      * other methods. <p>
113cdf0e10cSrcweir      */
_addTopWindowListener()114cdf0e10cSrcweir     public void _addTopWindowListener() {
115cdf0e10cSrcweir         listener = new TestListener(log) ;
116cdf0e10cSrcweir 
117cdf0e10cSrcweir         oObj.addTopWindowListener(listener) ;
118cdf0e10cSrcweir 
119cdf0e10cSrcweir         tRes.tested("addTopWindowListener()", true);
120cdf0e10cSrcweir     }
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     /**
123cdf0e10cSrcweir      * Removes a listener added before. <p>
124cdf0e10cSrcweir      * Has <b>OK</b> status always. <p>
125cdf0e10cSrcweir      * The following method tests are to be completed successfully before :
126cdf0e10cSrcweir      * <ul>
127cdf0e10cSrcweir      *  <li> <code> toBack </code> : to have a definite method execution
128cdf0e10cSrcweir      *    order.</li>
129cdf0e10cSrcweir      * </ul>
130cdf0e10cSrcweir      */
_removeTopWindowListener()131cdf0e10cSrcweir     public void _removeTopWindowListener() {
132cdf0e10cSrcweir         executeMethod("toBack()");
133cdf0e10cSrcweir 
134cdf0e10cSrcweir         oObj.removeTopWindowListener(listener);
135cdf0e10cSrcweir 
136cdf0e10cSrcweir         tRes.tested("removeTopWindowListener()", true);
137cdf0e10cSrcweir     }
138cdf0e10cSrcweir 
139cdf0e10cSrcweir     /**
140cdf0e10cSrcweir      * Moves the window to front and check the listener calls. <p>
141cdf0e10cSrcweir      * Has <b>OK</b> status if listener <code>activated</code> method
142cdf0e10cSrcweir      * was called.
143cdf0e10cSrcweir      */
_toFront()144cdf0e10cSrcweir     public void _toFront() {
145cdf0e10cSrcweir         requiredMethod("addTopWindowListener()");
146cdf0e10cSrcweir         listener.initListener();
147cdf0e10cSrcweir         oObj.toFront();
148cdf0e10cSrcweir         shortWait();
149cdf0e10cSrcweir 
150cdf0e10cSrcweir         tRes.tested("toFront()", listener.activated && !listener.deactivated);
151cdf0e10cSrcweir     }
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     /**
154cdf0e10cSrcweir      * This method doesn't do anything the Office implementation. <p>
155cdf0e10cSrcweir      * So it has always <b>OK</b> status
156cdf0e10cSrcweir      */
_toBack()157cdf0e10cSrcweir     public void _toBack() {
158cdf0e10cSrcweir         oObj.toBack();
159cdf0e10cSrcweir         tRes.tested("toBack()", true);
160cdf0e10cSrcweir     }
161cdf0e10cSrcweir 
162cdf0e10cSrcweir     /**
163cdf0e10cSrcweir     * Creates a simple menu bar and adds to the window. <p>
164*bb6af6bcSPedro Giffuni     * Has <b>OK</b> status if no runtime exceptions occurred.
165cdf0e10cSrcweir     */
_setMenuBar()166cdf0e10cSrcweir     public void _setMenuBar() {
167cdf0e10cSrcweir         XMenuBar menu = null ;
168cdf0e10cSrcweir         boolean result = true ;
169cdf0e10cSrcweir 
170cdf0e10cSrcweir         try {
171cdf0e10cSrcweir             menu = (XMenuBar) UnoRuntime.queryInterface(XMenuBar.class,
172cdf0e10cSrcweir                 ((XMultiServiceFactory)tParam.getMSF()).
173cdf0e10cSrcweir                 createInstance("com.sun.star.awt.MenuBar")) ;
174cdf0e10cSrcweir         } catch (com.sun.star.uno.Exception e) {
175cdf0e10cSrcweir             log.println("Can't instanciate MenuBar service") ;
176cdf0e10cSrcweir             result = false ;
177cdf0e10cSrcweir         }
178cdf0e10cSrcweir 
179cdf0e10cSrcweir         menu.insertItem((short)1, "MenuItem",
180cdf0e10cSrcweir             com.sun.star.awt.MenuItemStyle.CHECKABLE, (short)1) ;
181cdf0e10cSrcweir 
182cdf0e10cSrcweir         oObj.setMenuBar(menu) ;
183cdf0e10cSrcweir 
184cdf0e10cSrcweir         tRes.tested("setMenuBar()", result) ;
185cdf0e10cSrcweir     }
186cdf0e10cSrcweir 
187cdf0e10cSrcweir     /**
188cdf0e10cSrcweir      * Disposes the document created in <code>before</code> method.
189cdf0e10cSrcweir      */
after()190cdf0e10cSrcweir     protected void after() {
191cdf0e10cSrcweir         aTextDoc.dispose();
192cdf0e10cSrcweir     }
193cdf0e10cSrcweir 
shortWait()194cdf0e10cSrcweir     private void shortWait() {
195cdf0e10cSrcweir         try {
196cdf0e10cSrcweir             Thread.sleep(1000) ;
197cdf0e10cSrcweir         } catch (InterruptedException e) {
198cdf0e10cSrcweir             System.out.println("While waiting :" + e) ;
199cdf0e10cSrcweir         }
200cdf0e10cSrcweir     }
201cdf0e10cSrcweir }
202cdf0e10cSrcweir 
203