1 /* 2 * AceAfterCommandExecutedEvent.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 package org.rstudio.studio.client.workbench.views.source.editors.text.ace; 16 17 import com.google.gwt.core.client.JavaScriptObject; 18 import com.google.gwt.event.shared.EventHandler; 19 import com.google.gwt.event.shared.GwtEvent; 20 21 public class AceAfterCommandExecutedEvent extends GwtEvent<AceAfterCommandExecutedEvent.Handler> 22 { AceAfterCommandExecutedEvent()23 public AceAfterCommandExecutedEvent() 24 { 25 this(nullEvent()); 26 } 27 AceAfterCommandExecutedEvent(JavaScriptObject event)28 public AceAfterCommandExecutedEvent(JavaScriptObject event) 29 { 30 event_ = event; 31 } 32 getCommandData()33 public JavaScriptObject getCommandData() 34 { 35 return event_; 36 } 37 isChainEvent()38 public boolean isChainEvent() 39 { 40 return isChainEvent(event_); 41 } 42 isChainEvent(JavaScriptObject event)43 private static final native boolean isChainEvent(JavaScriptObject event) /*-{ 44 if (event == null) 45 return true; 46 var command = event.command; 47 return command === "null" || command === "chainKeys"; 48 }-*/; 49 50 private final JavaScriptObject event_; 51 nullEvent()52 private static native final JavaScriptObject nullEvent() /*-{ 53 return {command: "null"}; 54 }-*/; 55 56 // Boilerplate ---- 57 58 public interface Handler extends EventHandler 59 { onAceAfterCommandExecuted(AceAfterCommandExecutedEvent event)60 void onAceAfterCommandExecuted(AceAfterCommandExecutedEvent event); 61 } 62 63 @Override getAssociatedType()64 public Type<Handler> getAssociatedType() 65 { 66 return TYPE; 67 } 68 69 @Override dispatch(Handler handler)70 protected void dispatch(Handler handler) 71 { 72 handler.onAceAfterCommandExecuted(this); 73 } 74 75 public static final Type<Handler> TYPE = new Type<>(); 76 } 77