public CommandResult NewSFUConnectionWithDialog(SFUTerminalParam param) { if (!CheckPaneCount()) { return(CommandResult.Denied); } if (SFUUtil.GuessRootDirectory().Length == 0) { return(CommandResult.Failed); } LocalShellLoginDialog dlg = new LocalShellLoginDialog(); if (param != null) { dlg.ApplyParam(param); } else { dlg.ApplyParam(GApp.ConnectionHistory.TopSFUParam); } if (GCUtil.ShowModalDialog(_frame, dlg) == DialogResult.OK) { ConnectionTag con = dlg.Result; if (con != null) { AddNewTerminal(con); return(CommandResult.Success); } } return(CommandResult.Cancelled); }
public CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { IPoderosaMainWindow window = (IPoderosaMainWindow)target.GetAdapter(typeof(IPoderosaMainWindow)); if (window == null) return CommandResult.Ignored; LocalShellLoginDialog dlg = new LocalShellLoginDialog(window); using (dlg) { dlg.ApplyParam(); if (dlg.ShowDialog(window.AsForm()) == DialogResult.OK) { ITerminalConnection con = dlg.Result; if (con != null) { ISessionManager sm = (ISessionManager)CygwinPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.core.sessions", typeof(ISessionManager)); TerminalSession ts = new TerminalSession(con, dlg.TerminalSettings); sm.StartNewSession(ts, dlg.TargetView); sm.ActivateDocument(ts.Terminal.IDocument, ActivateReason.InternalAction); IAutoExecMacroParameter autoExecParam = con.Destination.GetAdapter(typeof(IAutoExecMacroParameter)) as IAutoExecMacroParameter; if (autoExecParam != null && autoExecParam.AutoExecMacroPath != null && CygwinPlugin.Instance.MacroEngine != null) { CygwinPlugin.Instance.MacroEngine.RunMacro(autoExecParam.AutoExecMacroPath, ts); } return CommandResult.Succeeded; } } } return CommandResult.Cancelled; }