2016-07-12 1 views
0

오픈 오피스 용 자바 확장을 만들고 오픈 오피스 실행 취소 메소드를 사용해야합니다. XUndoManager에 대한 설명서를 찾았지만 API에 익숙하지 않아 코드에서 사용하는 방법을 알지 못합니다.오픈 오피스 자바 확장 실행 취소 및 onStartApp 메소드

또한 문서를 열기 전에이 확장 프로그램을 사용하여 onStartApp에 ​​대해 알아 봤지만 경험이 없기 때문에 내 코드에서 사용하는 방법을 모르겠습니다.

누군가 나를 도울 수 있습니까? 미리 감사드립니다.

답변

0

실행 취소하려면 목록 4.3에 표시된대로 Andrew Pitonyak's macro document의 디스패처 호출을 사용하십시오.

OnStartApp의 경우 많은 설명서를 찾지 못했습니다. 다음과 같은 코드로 Events.xcu라는 파일을 만듭니다

<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> 

변경 자바와 함께 사용 vnd.sun.star.script의 값을, this documentation에 따라.

그런 manifest.xml이 추가 :

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

GitHub의에서 CTLO 프로젝트는이 방법으로 Events.xcumanifest.xml를 사용하는 예입니다.

편집 : 여기

자바에서 디스패처 호출의 예입니다

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

왜 오픈 오피스 확장에 대한 모든 문서는 기본이어야한다 ... 내가 발견하지 않습니다 createUnoService 또는 java에서 dispatch를 실행하는 것과 같습니다. – Benjamin

+0

[XDispatch API 페이지] (https://www.openoffice.org/api/docs/common/ref/com/sun/)와 같은 몇 가지 예가 있습니다. star/frame/XDispatch.html). 하지만 Java 코드를 작성하여 디스패처를 사용하는 사람들에게는 일반적이지 않은 것 같습니다. 나는 예를 보여주기 위해 나의 대답을 편집했다. 그런데 UNO 서비스를 만들려면 Java에서 [XMultiServiceFactory] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/lang/XMultiServiceFactory.html)를 사용합니다. –

관련 문제