1 /* 2 * PanmirrorXRefServer.java 3 * 4 * Copyright (C) 2021 by RStudio, PBC 5 * 6 * Unless you have received this program directly from RStudio pursuant 7 * to the terms of a commercial license agreement with RStudio, then 8 * this program is licensed to you under the terms of version 3 of the 9 * GNU Affero General Public License. This program is distributed WITHOUT 10 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, 11 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the 12 * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. 13 * 14 */ 15 16 17 package org.rstudio.studio.client.panmirror.server; 18 19 import org.rstudio.core.client.promise.PromiseServerRequestCallback; 20 import org.rstudio.studio.client.RStudioGinjector; 21 22 import com.google.gwt.core.client.JavaScriptObject; 23 import com.google.inject.Inject; 24 25 import elemental2.promise.Promise; 26 import elemental2.promise.Promise.PromiseExecutorCallbackFn.RejectCallbackFn; 27 import elemental2.promise.Promise.PromiseExecutorCallbackFn.ResolveCallbackFn; 28 import jsinterop.annotations.JsType; 29 30 @JsType 31 public class PanmirrorXRefServer 32 { PanmirrorXRefServer()33 public PanmirrorXRefServer() { 34 RStudioGinjector.INSTANCE.injectMembers(this); 35 } 36 37 @Inject initialize(PanmirrorXRefServerOperations server)38 void initialize(PanmirrorXRefServerOperations server) 39 { 40 server_ = server; 41 } 42 indexForFile(String file)43 public Promise<JavaScriptObject> indexForFile(String file) 44 { 45 return new Promise<>((ResolveCallbackFn<JavaScriptObject> resolve, RejectCallbackFn reject) -> { 46 server_.xrefIndexForFile( 47 file, 48 new PromiseServerRequestCallback<>(resolve, reject) 49 ); 50 }); 51 } 52 xrefForId(String file, String id)53 public Promise<JavaScriptObject> xrefForId(String file, String id) 54 { 55 return new Promise<>((ResolveCallbackFn<JavaScriptObject> resolve, RejectCallbackFn reject) -> { 56 server_.xrefForId( 57 file, 58 id, 59 new PromiseServerRequestCallback<>(resolve, reject) 60 ); 61 }); 62 } 63 64 public Promise<JavaScriptObject> quartoIndexForFile(String file) 65 { 66 return new Promise<>((ResolveCallbackFn<JavaScriptObject> resolve, RejectCallbackFn reject) -> { 67 server_.quartoXrefIndexForFile( 68 file, 69 new PromiseServerRequestCallback<>(resolve, reject) 70 ); 71 }); 72 } 73 74 public Promise<JavaScriptObject> quartoXrefForId(String file, String id) 75 { 76 return new Promise<>((ResolveCallbackFn<JavaScriptObject> resolve, RejectCallbackFn reject) -> { 77 server_.quartoXrefForId( 78 file, 79 id, 80 new PromiseServerRequestCallback<>(resolve, reject) 81 ); 82 }); 83 } 84 85 86 private PanmirrorXRefServerOperations server_; 87 } 88