Update ooo320-m1
[ooovba.git] / odk / examples / DevelopersGuide / OfficeDev / TerminationTest / TerminationTest.java
blob7abe1066b9d7d4350adb00db5f9971c500dd6620
1 /*************************************************************************
3 * $RCSfile: TerminationTest.java,v $
5 * $Revision: 1.5 $
7 * last change: $Author: rt $ $Date: 2005-01-31 16:49:06 $
9 * The Contents of this file are made available subject to the terms of
10 * the BSD license.
12 * Copyright (c) 2003 by Sun Microsystems, Inc.
13 * All rights reserved.
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 * 3. Neither the name of Sun Microsystems, Inc. nor the names of its
24 * contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
30 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
31 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
34 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
37 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39 *************************************************************************/
41 import com.sun.star.uno.UnoRuntime;
42 import com.sun.star.uno.XComponentContext;
43 import com.sun.star.lang.XMultiComponentFactory;
44 import com.sun.star.frame.XDesktop;
46 /**
48 * @author dschulten
50 public class TerminationTest extends java.lang.Object {
52 private static boolean atWork = false;
53 /**
54 * @param args the command line arguments
56 public static void main(String[] args) {
58 XComponentContext xRemoteContext = null;
59 XMultiComponentFactory xRemoteServiceManager = null;
60 XDesktop xDesktop = null;
62 try {
63 // get the remote office context. If necessary a new office
64 // process is started
65 xRemoteContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
66 System.out.println("Connected to a running office ...");
67 xRemoteServiceManager = xRemoteContext.getServiceManager();
69 Object desktop = xRemoteServiceManager.createInstanceWithContext(
70 "com.sun.star.frame.Desktop", xRemoteContext);
71 xDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, desktop);
73 TerminateListener terminateListener = new TerminateListener();
74 xDesktop.addTerminateListener(terminateListener);
76 atWork = true;
77 // try to terminate while we are at work
78 boolean terminated = xDesktop.terminate();
79 System.out.println("The Office " +
80 (terminated == true ?
81 "has been terminated" :
82 "is still running, we are at work"));
84 // no longer at work
85 atWork = false;
86 // once more: try to terminate
87 terminated = xDesktop.terminate();
88 System.out.println("The Office " +
89 (terminated == true ?
90 "has been terminated" :
91 "is still running. Someone else prevents termination, " +
92 "e.g. the quickstarter"));
94 catch (java.lang.Exception e){
95 e.printStackTrace();
97 finally {
98 System.exit(0);
103 public static boolean isAtWork() {
104 return atWork;