use of com.sun.star.frame.XDesktop in project translationstudio8 by heartsome.
the class TerminationOpenoffice method closeOpenoffice.
// public static void main(String[] args) {
/**
* Close openoffice.
* @param port
* the port
*/
public static void closeOpenoffice(String port) {
XComponentContext xRemoteContext = null;
XMultiComponentFactory xRemoteServiceManager = null;
XDesktop xDesktop = null;
try {
XComponentContext xLocalContext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager();
Object urlResolver = xLocalServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", //$NON-NLS-1$
xLocalContext);
XUnoUrlResolver xUnoUrlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(XUnoUrlResolver.class, urlResolver);
Object initialObject = xUnoUrlResolver.resolve(//$NON-NLS-1$ //$NON-NLS-2$
"uno:socket,host=localhost,port=" + port + ";urp;StarOffice.ServiceManager");
// Object initialObject =
// xUnoUrlResolver.resolve("uno:pipe,name=my_app;urp;StarOffice.ServiceManager"
// );
XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, initialObject);
//$NON-NLS-1$
Object context = xPropertySet.getPropertyValue("DefaultContext");
xRemoteContext = (XComponentContext) UnoRuntime.queryInterface(XComponentContext.class, context);
xRemoteServiceManager = xRemoteContext.getServiceManager();
// get Desktop instance
Object desktop = xRemoteServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", //$NON-NLS-1$
xRemoteContext);
xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, desktop);
TerminateListener terminateListener = new TerminateListener();
xDesktop.addTerminateListener(terminateListener);
// try to terminate while we are at work
atWork = true;
boolean terminated = xDesktop.terminate();
System.out.println(//$NON-NLS-1$
"The Office " + //$NON-NLS-1$ //$NON-NLS-2$
(terminated ? "has been terminated" : "is still running, we are at work"));
// no longer at work
atWork = false;
// once more: try to terminate
terminated = xDesktop.terminate();
System.out.println(//$NON-NLS-1$
"The Office " + (//$NON-NLS-1$
terminated ? //$NON-NLS-1$
"has been terminated" : //$NON-NLS-1$
"is still running. Someone else prevents termination, e.g. the quickstarter"));
} catch (java.lang.Exception e) {
if (Converter.DEBUG_MODE) {
e.printStackTrace();
}
}
}
use of com.sun.star.frame.XDesktop in project translationstudio8 by heartsome.
the class TerminationOpenoffice method getCurrentComponent.
/**
* Gets the current component.
* @return the current component
* @throws Exception
* the exception
*/
public static XComponent getCurrentComponent() throws Exception {
XComponentContext xRemoteContext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
// XComponentContext xRemoteContext =
// com.sun.star.comp.helper.Bootstrap.bootstrap();
XMultiComponentFactory xRemoteServiceManager = xRemoteContext.getServiceManager();
//$NON-NLS-1$
Object desktop = xRemoteServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", xRemoteContext);
XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, desktop);
XComponent currentComponent = xDesktop.getCurrentComponent();
return currentComponent;
}
use of com.sun.star.frame.XDesktop in project languagetool by languagetool-org.
the class Main method getXComponent.
@Nullable
private XComponent getXComponent() {
try {
XMultiComponentFactory xMCF = xContext.getServiceManager();
Object desktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
XDesktop xDesktop = UnoRuntime.queryInterface(XDesktop.class, desktop);
return xDesktop.getCurrentComponent();
} catch (Throwable t) {
showError(t);
return null;
}
}
use of com.sun.star.frame.XDesktop in project jabref by JabRef.
the class OOBibBase method simpleBootstrap.
private XDesktop simpleBootstrap(String pathToExecutable) throws IllegalAccessException, InvocationTargetException, BootstrapException, CreationException, IOException {
ClassLoader loader = ClassLoader.getSystemClassLoader();
if (loader instanceof URLClassLoader) {
URLClassLoader cl = (URLClassLoader) loader;
Class<URLClassLoader> sysclass = URLClassLoader.class;
try {
Method method = sysclass.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
method.invoke(cl, new File(pathToExecutable).toURI().toURL());
} catch (SecurityException | NoSuchMethodException | MalformedURLException t) {
LOGGER.error("Error, could not add URL to system classloader", t);
cl.close();
throw new IOException("Error, could not add URL to system classloader", t);
}
} else {
LOGGER.error("Error occured, URLClassLoader expected but " + loader.getClass() + " received. Could not continue.");
}
//Get the office component context:
XComponentContext xContext = Bootstrap.bootstrap();
//Get the office service manager:
XMultiComponentFactory xServiceManager = xContext.getServiceManager();
//Create the desktop, which is the root frame of the
//hierarchy of frames that contain viewable components:
Object desktop;
try {
desktop = xServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
} catch (Exception e) {
throw new CreationException(e.getMessage());
}
XDesktop resultDesktop = UnoRuntime.queryInterface(XDesktop.class, desktop);
UnoRuntime.queryInterface(XComponentLoader.class, desktop);
return resultDesktop;
}
Aggregations