1 /* 2 * SuspendAndRestartEvent.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.application.events; 16 17 import com.google.gwt.event.shared.EventHandler; 18 import org.rstudio.studio.client.application.model.SuspendOptions; 19 20 import com.google.gwt.core.client.JavaScriptObject; 21 import com.google.gwt.event.shared.GwtEvent; 22 23 public class SuspendAndRestartEvent extends GwtEvent<SuspendAndRestartEvent.Handler> 24 { 25 public static final Type<Handler> TYPE = new Type<>(); 26 27 public static class Data extends JavaScriptObject 28 { Data()29 protected Data() 30 { 31 } 32 getOptions()33 public native final SuspendOptions getOptions() /*-{ 34 return this.options; 35 }-*/; 36 getAfterRestartCommand()37 public native final String getAfterRestartCommand() /*-{ 38 return this.after_restart; 39 }-*/; 40 } 41 SuspendAndRestartEvent(Data data)42 public SuspendAndRestartEvent(Data data) 43 { 44 this(data.getOptions(), data.getAfterRestartCommand()); 45 } 46 SuspendAndRestartEvent(SuspendOptions suspendOptions, String afterRestartCommand)47 public SuspendAndRestartEvent(SuspendOptions suspendOptions, 48 String afterRestartCommand) 49 { 50 if (suspendOptions == null) 51 suspendOptions = SuspendOptions.createSaveAll(false); 52 suspendOptions_ = suspendOptions; 53 afterRestartCommand_ = afterRestartCommand; 54 } 55 SuspendAndRestartEvent(String afterRestartCommand)56 public SuspendAndRestartEvent(String afterRestartCommand) 57 { 58 this(null, afterRestartCommand); 59 } 60 getSuspendOptions()61 public SuspendOptions getSuspendOptions() 62 { 63 return suspendOptions_; 64 } 65 getAfterRestartCommand()66 public String getAfterRestartCommand() 67 { 68 return afterRestartCommand_; 69 } 70 71 @Override dispatch(Handler handler)72 protected void dispatch(Handler handler) 73 { 74 handler.onSuspendAndRestart(this); 75 } 76 77 @Override getAssociatedType()78 public GwtEvent.Type<Handler> getAssociatedType() 79 { 80 return TYPE; 81 } 82 83 private final SuspendOptions suspendOptions_; 84 private final String afterRestartCommand_; 85 86 public interface Handler extends EventHandler 87 { onSuspendAndRestart(SuspendAndRestartEvent event)88 void onSuspendAndRestart(SuspendAndRestartEvent event); 89 } 90 } 91