2016-07-12 6 views
0

Ich erstelle eine Java-Erweiterung für das offene Büro und ich brauche es, um die Open Office Undo-Methode zu verwenden. Ich habe die Dokumentation über XUndoManager gefunden, aber da ich mit der API ziemlich unerfahren bin, weiß ich nicht, wie ich sie in meinem Code verwenden soll.open office java extension undo und onStartApp methode

Darüber hinaus möchte ich diese Erweiterung Dinge vor dem Öffnen des Dokuments tun, habe ich über onStartApp gefunden, aber wieder aufgrund meiner nicht Erfahrung, ich weiß nicht, wie man es auf meinem Code verwenden.

Kann mir jemand helfen? Vielen Dank im Voraus!

Antwort

0

Verwenden Sie zum Rückgängigmachen einen Dispatcher-Aufruf, wie in Listing 4.3 von Andrew Pitonyak's macro document gezeigt.

Für OnStartApp habe ich nicht viel Dokumentation gefunden. Erstellen Sie eine Datei Events.xcu mit Code wie folgt genannt:

<node oor:name="ApplicationEvents"> 
    <node oor:name="Bindings"> 
     <node oor:name="OnStartApp" oor:op="replace"> 
      <prop oor:name="BindingURL" oor:type="xs:string"> 
       <value>vnd.sun.star.script:events.py$OnStartApp?language=Python&amp;location=application</value> 

Ändern Sie den Wert von vnd.sun.star.script für die Verwendung mit Java, nach this documentation.

Dann fügen Sie diese manifest.xml:

<manifest:file-entry 
    manifest:media-type="application/vnd.sun.star.configuration-data" 
     manifest:full-path="Events.xcu" /> 

Das CTLO Projekt bei GitHub ist ein Beispiel für Events.xcu und manifest.xml auf diese Weise verwendet wird.

EDIT:

Hier ein Beispiel für einen Dispatcher Aufruf in Java ist:

PropertyValue[] printProperties = new PropertyValue[1]; 
printProperties[0] = new PropertyValue(); 
printProperties[0].Name = "Print"; 
printProperties[0].Value = new Boolean(true); 
XDispatchProvider xDispatchProvider = (XDispatchProvider) 
    UnoRuntime.queryInterface (XDispatchProvider.class, xDesktop); 
dispatcher.executeDispatch(
    xDispatchProvider, ".uno:Print","_self", 0, printProperties); 
+1

Warum sollten alle Unterlagen über Open Office-Erweiterung für Grund sein ... finde ich nicht das Äquivalent von createUnoService oder execute dispatch in java ... – Benjamin

+0

Es gibt einige Beispiele, wie die [XDispatch API-Seite] (https://www.openoffice.org/api/docs/common/ref/com/sun/) Stern/Rahmen/XDispatch.html). Aber es scheint nicht so üblich für Leute zu sein, die Java-Code schreiben, um den Dispatcher zu benutzen. Ich habe meine Antwort bearbeitet, um ein Beispiel zu zeigen. Die Erstellung eines UNO-Dienstes erfolgt übrigens mit [XMultiServiceFactory] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/lang/XMultiServiceFactory.html) in Java. –

Verwandte Themen