private void ShowAbnormalTerminationMessage() { IPoderosaMainWindow window = _session.OwnerWindow; if (window != null) { Debug.Assert(window.AsForm().InvokeRequired); ITCPParameter tcp = (ITCPParameter)GetConnection().Destination.GetAdapter(typeof(ITCPParameter)); if (tcp != null) { string msg = String.Format(GEnv.Strings.GetString("Message.AbstractTerminal.TCPDisconnected"), tcp.Destination); switch (GEnv.Options.DisconnectNotification) { case WarningOption.StatusBar: window.StatusBar.SetMainText(msg); break; case WarningOption.MessageBox: window.Warning(msg); //TODO Disableオプションつきのサポート break; } } } }
public SSHShortcutLoginDialog(IPoderosaMainWindow parent, ISSHLoginParameter param, ITerminalSettings settings) : base(parent) { this.TerminalSettings = settings; // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); this._privateKeyLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._privateKeyLabel"); this._passphraseLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._passphraseLabel"); this._logFileLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._logFileLabel"); this._hostLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._hostLabel"); this._methodLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._methodLabel"); this._accountLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._accountLabel"); this._authenticationTypeLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._authenticationTypeLabel"); this._encodingLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._encodingLabel"); this._logTypeLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._logTypeLabel"); this.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog.Text"); this._autoExecMacroPathLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._autoExecMacroPathLabel"); this._cancelButton.Text = TEnv.Strings.GetString("Common.Cancel"); this._loginButton.Text = TEnv.Strings.GetString("Common.OK"); this._logTypeBox.Items.AddRange(EnumListItem <LogType> .GetListItems()); _sshParam = param; InitUI(); }
private static CommandResult CmdCloseCurrentDocument(ICommandTarget target) { IPoderosaDocument document = CommandTargetUtil.AsDocumentOrViewOrLastActivatedDocument(target); if (document == null) { return(CommandResult.Ignored); } SessionManagerPlugin sm = SessionManagerPlugin.Instance; IPoderosaView view = sm.FindDocumentHost(document).LastAttachedView; IPoderosaMainWindow window = view == null ? null : (IPoderosaMainWindow)view.ParentForm.GetAdapter(typeof(IPoderosaMainWindow)); bool was_active = window == null ? false : window.DocumentTabFeature.ActiveDocument == document; PrepareCloseResult result = sm.CloseDocument(document); if (result == PrepareCloseResult.Cancel) { return(CommandResult.Cancelled); } //同じビューに別のドキュメントが来ていればそれをアクティブに if (was_active) { IPoderosaDocument newdoc = view.Document; if (newdoc != null) { sm.ActivateDocument(newdoc, ActivateReason.InternalAction); } } return(CommandResult.Succeeded); }
public SSHShortcutLoginDialog(IPoderosaMainWindow parent, ISSHLoginParameter param, ITerminalSettings settings) : base(parent) { this.TerminalSettings = settings; // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); this._privateKeyLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._privateKeyLabel"); this._passphraseLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._passphraseLabel"); this._logFileLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._logFileLabel"); this._hostLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._hostLabel"); this._methodLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._methodLabel"); this._accountLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._accountLabel"); this._authenticationTypeLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._authenticationTypeLabel"); this._encodingLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._encodingLabel"); this._logTypeLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._logTypeLabel"); this.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog.Text"); this._autoExecMacroPathLabel.Text = TEnv.Strings.GetString("Form.SSHShortcutLoginDialog._autoExecMacroPathLabel"); this._cancelButton.Text = TEnv.Strings.GetString("Common.Cancel"); this._loginButton.Text = TEnv.Strings.GetString("Common.OK"); this._logTypeBox.Items.AddRange(EnumListItem<LogType>.GetListItems()); _sshParam = param; InitUI(); }
/// <exclude/> public static IContentReplaceableView AsContentReplaceableViewOrLastActivatedView(ICommandTarget target) { if (target == null) { return(null); } IContentReplaceableViewSite view = (IContentReplaceableViewSite)target.GetAdapter(typeof(IContentReplaceableViewSite)); if (view != null) { return(view.CurrentContentReplaceableView); //成功 } else { IContentReplaceableView view2 = (IContentReplaceableView)target.GetAdapter(typeof(IContentReplaceableView)); if (view2 != null) { return(view2); } else { IPoderosaMainWindow window = AsWindow(target); if (window != null) { return(window.LastActivatedView); } else { return(null); } } } }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter destination, ITerminalSettings settings) { ISSHLoginParameter ssh = (ISSHLoginParameter)destination.GetAdapter(typeof(ISSHLoginParameter)); if (ssh.LetUserInputPassword && ssh.AuthenticationType != Granados.AuthenticationType.KeyboardInteractive) //ダイアログで入力を促して接続 { SSHShortcutLoginDialog dlg = new SSHShortcutLoginDialog(window, ssh, settings); if (dlg.ShowDialog(window.AsForm()) == DialogResult.OK) { ITerminalConnection con = dlg.Result; AdjustCaptionAndText(settings, ((ITCPParameter)con.Destination.GetAdapter(typeof(ITCPParameter))).Destination, StartCommandIcon.NewConnection); return(con); } else { return(null); } } else //主にReproduceやマクロ。設定済みのパスワードで接続 { IProtocolService protocolservice = TerminalSessionsPlugin.Instance.ProtocolService; ISynchronizedConnector conn = protocolservice.CreateFormBasedSynchronozedConnector(window); IInterruptable r = protocolservice.AsyncSSHConnect(conn.InterruptableConnectorClient, ssh); AdjustCaptionAndText(settings, ((ITCPParameter)destination.GetAdapter(typeof(ITCPParameter))).Destination, StartCommandIcon.NewConnection); return(conn.WaitConnection(r, TerminalSessionsPlugin.Instance.TerminalSessionOptions.TerminalEstablishTimeout)); //時間? } }
public void OnFirstMainWindowLoaded(IPoderosaMainWindow window) { IPoderosaApplication app = (IPoderosaApplication)_poderosaWorld.GetAdapter(typeof(IPoderosaApplication)); if (app.InitialOpenFile != null) OpenFile(window, app.InitialOpenFile); else DoAction(window, _originalOptions.StartupAction); }
public void OnDocumentActivated(IPoderosaMainWindow window, IPoderosaDocument document) { if (window != null && window.ToolBar != null) { window.ToolBar.RefreshComponent(this); } }
public LocalShellLoginDialog(IPoderosaMainWindow parentWindow) : base(parentWindow) { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); // // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // this._loginButton.Text = TEnv.Strings.GetString("Common.OK"); this._cancelButton.Text = TEnv.Strings.GetString("Common.Cancel"); this._homeDirectoryLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._homeDirectoryLabel"); this._lMessage.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._lMessage"); this._advancedOptionCheck.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._advancedOptionCheck"); this._shellLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._shellLabel"); this._logFileLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._logFileLabel"); this._logTypeLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._logTypeLabel"); this._encodingLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._encodingLabel"); this._terminalTypeLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._terminalTypeLabel"); this._cygwinDirLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._cygwinDirLabel"); this._autoExecMacroPathLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._autoExecMacroPathLabel"); this._logTypeBox.Items.AddRange(EnumDescAttribute.For(typeof(LogType)).DescriptionCollection()); this._encodingBox.Items.AddRange(EnumDescAttribute.For(typeof(EncodingType)).DescriptionCollection()); this._terminalTypeBox.Items.AddRange(EnumDescAttribute.For(typeof(TerminalType)).DescriptionCollection()); //作っておく AdjustLoginDialogUISupport("org.poderosa.terminalsessions.loginDialogUISupport", "cygwinLoginDialogUISupport"); }
/// <summary> /// Command execution /// </summary> public override CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { PipeTerminalParameter paramInit = null; PipeTerminalSettings settingsInit = null; IExtensionPoint ext = PipePlugin.Instance.PoderosaWorld.PluginManager.FindExtensionPoint("org.poderosa.terminalsessions.loginDialogUISupport"); if (ext != null && ext.ExtensionInterface == typeof(ILoginDialogUISupport)) { foreach (ILoginDialogUISupport sup in ext.GetExtensions()) { ITerminalParameter terminalParam; ITerminalSettings terminalSettings; sup.FillTopDestination(typeof(PipeTerminalParameter), out terminalParam, out terminalSettings); PipeTerminalParameter paramTemp = terminalParam as PipeTerminalParameter; PipeTerminalSettings settingsTemp = terminalSettings as PipeTerminalSettings; if (paramInit == null) { paramInit = paramTemp; } if (settingsInit == null) { settingsInit = settingsTemp; } } } if (paramInit == null) { paramInit = new PipeTerminalParameter(); } if (settingsInit == null) { settingsInit = new PipeTerminalSettings(); } IPoderosaMainWindow window = (IPoderosaMainWindow)target.GetAdapter(typeof(IPoderosaMainWindow)); CommandResult commandResult = CommandResult.Failed; using (OpenPipeDialog dialog = new OpenPipeDialog()) { dialog.OpenPipe = delegate(PipeTerminalParameter param, PipeTerminalSettings settings) { PipeTerminalConnection connection = PipeCreator.CreateNewPipeTerminalConnection(param, settings); commandResult = PipePlugin.Instance.CommandManager.Execute( PipePlugin.Instance.TerminalSessionsService.TerminalSessionStartCommand, window, connection, settings); return(commandResult == CommandResult.Succeeded); }; dialog.ApplyParams(paramInit, settingsInit); DialogResult dialogResult = dialog.ShowDialog(window != null ? window.AsForm() : null); if (dialogResult == DialogResult.Cancel) { commandResult = CommandResult.Cancelled; } } return(commandResult); }
public CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { IPoderosaMainWindow window = (IPoderosaMainWindow)target.GetAdapter(typeof(IPoderosaMainWindow)); if (window == null) { return(CommandResult.Ignored); } using (OpenSessionDialog dlg = new OpenSessionDialog(window)) { if (dlg.ShowDialog() == DialogResult.OK) { IContentReplaceableView view = (IContentReplaceableView)window.ViewManager.GetCandidateViewForNewDocument().GetAdapter(typeof(IContentReplaceableView)); IPoderosaView targetView = view.AssureViewClass(typeof(TerminalView)); ISessionManager sm = (ISessionManager)TelnetSSHPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.core.sessions", typeof(ISessionManager)); TerminalSession ts = new TerminalSession(dlg.TerminalConnection, dlg.TerminalSettings); sm.StartNewSession(ts, targetView); sm.ActivateDocument(ts.Terminal.IDocument, ActivateReason.InternalAction); IAutoExecMacroParameter autoExecParam = dlg.TerminalConnection.Destination.GetAdapter(typeof(IAutoExecMacroParameter)) as IAutoExecMacroParameter; if (autoExecParam != null && autoExecParam.AutoExecMacroPath != null && TelnetSSHPlugin.Instance.MacroEngine != null) { TelnetSSHPlugin.Instance.MacroEngine.RunMacro(autoExecParam.AutoExecMacroPath, ts); } return(CommandResult.Succeeded); } return(CommandResult.Cancelled); } }
public LocalShellLoginDialog(IPoderosaMainWindow parentWindow) : base(parentWindow) { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); // // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // this._loginButton.Text = TEnv.Strings.GetString("Common.OK"); this._cancelButton.Text = TEnv.Strings.GetString("Common.Cancel"); this._homeDirectoryLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._homeDirectoryLabel"); this._lMessage.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._lMessage"); this._advancedOptionCheck.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._advancedOptionCheck"); this._shellLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._shellLabel"); this._logFileLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._logFileLabel"); this._logTypeLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._logTypeLabel"); this._encodingLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._encodingLabel"); this._terminalTypeLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._terminalTypeLabel"); this._cygwinDirLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._cygwinDirLabel"); this._autoExecMacroPathLabel.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog._autoExecMacroPathLabel"); this._logTypeBox.Items.AddRange(EnumListItem<LogType>.GetListItems()); this._encodingBox.Items.AddRange(EnumListItem<EncodingType>.GetListItems()); this._terminalTypeBox.Items.AddRange(EnumListItem<TerminalType>.GetListItems()); //作っておく AdjustLoginDialogUISupport("org.poderosa.terminalsessions.loginDialogUISupport", "cygwinLoginDialogUISupport"); }
//IMainWindowContentFactory public IViewManager Create(IPoderosaMainWindow parent) { Debug.Assert(parent != null); Debug.Assert(_defaultViewFactory != null); //�{����Assert�ł͂܂��� SplittableViewManager pm = new SplittableViewManager(parent, _defaultViewFactory); return pm; }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter param, ITerminalSettings settings) { SerialTerminalParam sp = param as SerialTerminalParam; SerialTerminalSettings ts = settings as SerialTerminalSettings; Debug.Assert(sp != null && ts != null); return SerialPortUtil.CreateNewSerialConnection(window, sp, ts); }
public override CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); MacroList dlg = new MacroList(); dlg.ShowDialog(window.AsForm()); return(CommandResult.Succeeded); }
public IPoderosaDocument[] GetDocuments(IPoderosaMainWindow window) { List<IPoderosaDocument> r = new List<IPoderosaDocument>(); foreach (DocumentHost dh in _documentMap.Values) { if (dh.LastAttachedView != null && dh.LastAttachedView.ParentForm == window) r.Add(dh.Document); } return r.ToArray(); }
//IMainWindowContentFactory public IViewManager Create(IPoderosaMainWindow parent) { Debug.Assert(parent != null); Debug.Assert(_defaultViewFactory != null); //本当はAssertではまずい SplittableViewManager pm = new SplittableViewManager(parent, _defaultViewFactory); return(pm); }
public static CommandResult Test(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); ISplittableViewManager sp = (ISplittableViewManager)window.ViewManager.GetAdapter(typeof(ISplittableViewManager)); sp.ApplySplitInfo("V(33:Lterminal,33:Lterminal,L:Lterminal)"); return(CommandResult.Succeeded); }
private void HostCauseClose(string msg) { if (TerminalSessionsPlugin.Instance.TerminalEmulatorService.TerminalEmulatorOptions.CloseOnDisconnect) _sessionHost.TerminateSession(); else { IPoderosaMainWindow window = this.OwnerWindow; window.DocumentTabFeature.Update(_terminal.IDocument); } }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter param, ITerminalSettings settings) { PipeTerminalParameter tp = param as PipeTerminalParameter; PipeTerminalSettings ts = settings as PipeTerminalSettings; Debug.Assert(tp != null && ts != null); return(PipeCreator.CreateNewPipeTerminalConnection(tp, ts)); }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter param, ITerminalSettings settings) { SerialTerminalParam sp = param as SerialTerminalParam; SerialTerminalSettings ts = settings as SerialTerminalSettings; Debug.Assert(sp != null && ts != null); return(SerialPortUtil.CreateNewSerialConnection(window, sp, ts)); }
private void NotifyAdd(IPoderosaForm form, IPoderosaDocument document) { IPoderosaMainWindow window = (IPoderosaMainWindow)form.GetAdapter(typeof(IPoderosaMainWindow)); if (window != null) { window.DocumentTabFeature.Add(document); } }
private static CommandResult CmdShellSchemeEditor(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); ITerminalControlHost session = TerminalCommandTarget.AsTerminal(target); ShellSchemeEditor dlg = new ShellSchemeEditor(session == null ? null : session.TerminalSettings.ShellScheme); dlg.ShowDialog(window.AsForm()); return(CommandResult.Succeeded); }
private void CharDecodeErrorDialog(IPoderosaMainWindow window, string msg) { WarningWithDisableOption dlg = new WarningWithDisableOption(msg); dlg.ShowDialog(window.AsForm()); if (dlg.CheckedDisableOption) { GEnv.Options.CharDecodeErrorBehavior = WarningOption.Ignore; } }
//正常・異常とも呼ばれる public void CloseByReceptionThread(string msg) { if (_terminated) return; IPoderosaMainWindow window = this.OwnerWindow; if (window != null) { Debug.Assert(window.AsControl().InvokeRequired); //TerminalSessionはコントロールを保有しないので、ウィンドウで代用する window.AsControl().Invoke(new HostCauseCloseDelagate(HostCauseClose), msg); } }
/// <summary> /// Initialize the page /// </summary> /// <remarks> /// This method will be called in the constructor of the container dialog. /// </remarks> /// <param name="mainWindow">main window</param> public void Initialize(IPoderosaMainWindow mainWindow) { _mainWindow = mainWindow; _preventUpdateControlStatus = true; Localize(); SetDefaultValues(); LoadHistory(); _preventUpdateControlStatus = false; UpdateControlStatus(); }
public void OnDocumentDeactivated(IPoderosaMainWindow window) { //Debug.WriteLine("OnDocumentDeactivated"); TerminalToolBarInstance tb = FindToolbarInstance(window); if (tb != null) { tb.Detach(); } }
/// <summary> /// <ja> /// ウィンドウへと変換します。 /// </ja> /// <en> /// Convert to the window. /// </en> /// </summary> /// <param name="target"> /// <ja>対象となるターゲットです。</ja> /// <en>It is a target that becomes an object. </en> /// </param> /// <returns> /// <ja>変換したインターフェイスです。変換できないときにはnullが戻ります。</ja> /// <en>It is a converted interface. Null returns when it is not possible to convert it. </en> /// </returns> /// <remarks> /// <ja> /// メニューやツールバーのボタンから呼び出されたコマンドに引き渡された<paramref name="target">target</paramref>の場合、この呼び出しは成功します。 /// </ja> /// <en> /// This call succeeds for <paramref name="target">target</paramref> handed over to the command called from the button of the menu and the toolbar. /// </en> /// </remarks> public static IPoderosaMainWindow AsWindow(ICommandTarget target) { if (target == null) { return(null); } IPoderosaMainWindow window = (IPoderosaMainWindow)target.GetAdapter(typeof(IPoderosaMainWindow)); return(window); }
public static SerialTerminalConnection CreateNewSerialConnection(IPoderosaMainWindow window, SerialTerminalParam param, SerialTerminalSettings settings) { bool successful = false; FileStream strm = null; try { StringResource sr = SerialPortPlugin.Instance.Strings; //Debug.WriteLine("OPENING COM"+param.Port); string portstr = String.Format("\\\\.\\{0}", param.PortName); IntPtr ptr = Win32Serial.CreateFile(portstr, Win32.GENERIC_READ | Win32.GENERIC_WRITE, 0, IntPtr.Zero, Win32.OPEN_EXISTING, Win32.FILE_ATTRIBUTE_NORMAL | Win32.FILE_FLAG_OVERLAPPED, IntPtr.Zero); if (ptr == Win32.INVALID_HANDLE_VALUE) { string msg = sr.GetString("Message.FailedToOpenSerial"); int err = Marshal.GetLastWin32Error(); if (err == 2) msg += sr.GetString("Message.NoSuchDevice"); else if (err == 5) msg += sr.GetString("Message.DeviceIsBusy"); else msg += "\nGetLastError=" + Marshal.GetLastWin32Error(); throw new Exception(msg); } //strm = new FileStream(ptr, FileAccess.Write, true, 8, true); Win32Serial.DCB dcb = new Win32Serial.DCB(); FillDCB(ptr, ref dcb); UpdateDCB(ref dcb, settings); if (!Win32Serial.SetCommState(ptr, ref dcb)) { Win32.CloseHandle(ptr); throw new Exception(sr.GetString("Message.FailedToConfigSerial")); } Win32Serial.COMMTIMEOUTS timeouts = new Win32Serial.COMMTIMEOUTS(); Win32Serial.GetCommTimeouts(ptr, ref timeouts); timeouts.ReadIntervalTimeout = 0xFFFFFFFF; timeouts.ReadTotalTimeoutConstant = 0; timeouts.ReadTotalTimeoutMultiplier = 0; timeouts.WriteTotalTimeoutConstant = 100; timeouts.WriteTotalTimeoutMultiplier = 100; Win32Serial.SetCommTimeouts(ptr, ref timeouts); successful = true; SerialTerminalConnection r = new SerialTerminalConnection(param, settings, ptr); return r; } catch (Exception ex) { RuntimeUtil.SilentReportException(ex); if (window != null) window.Warning(ex.Message); else GUtil.Warning(Form.ActiveForm, ex.Message); //TODO 苦しい逃げ。IPoderosaFormを実装したベースクラスをCoreにでも持っていたほうがいいのか return null; } finally { if (!successful && strm != null) strm.Close(); } }
private static CommandResult CmdAgentKeyListDialog(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); Debug.Assert(window != null); AgentKeyListDialog dlg = new AgentKeyListDialog(); DialogResult r = dlg.ShowDialog(window.AsForm()); return(r == DialogResult.OK ? CommandResult.Succeeded : CommandResult.Cancelled); }
private static CommandResult CmdChangePassphrase(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); Debug.Assert(window != null); ChangePassphrase dlg = new ChangePassphrase(); DialogResult r = dlg.ShowDialog(window.AsForm()); return(r == DialogResult.OK ? CommandResult.Succeeded : CommandResult.Cancelled); }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter destination, ITerminalSettings settings) { ITCPParameter tcp = (ITCPParameter)destination.GetAdapter(typeof(ITCPParameter)); IProtocolService ps = TerminalSessionsPlugin.Instance.ProtocolService; ISynchronizedConnector sc = ps.CreateFormBasedSynchronozedConnector(window); IInterruptable t = ps.AsyncTelnetConnect(sc.InterruptableConnectorClient, tcp); ITerminalConnection con = sc.WaitConnection(t, TerminalSessionsPlugin.Instance.TerminalSessionOptions.TerminalEstablishTimeout); AdjustCaptionAndText(settings, tcp.Destination, StartCommandIcon.NewConnection); return(con); }
public static CommandResult OpenShortcutFile(ICommandTarget target, string filename) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); if (window == null) { window = (IPoderosaMainWindow)CommandTargetUtil.AsViewOrLastActivatedView(target).ParentForm.GetAdapter(typeof(IPoderosaMainWindow)); } if (window == null) { return(CommandResult.Ignored); } if (!File.Exists(filename)) { window.Warning(String.Format("{0} is not a file", filename)); return(CommandResult.Failed); } ShortcutFileContent f = null; try { f = ShortcutFileContent.LoadFromXML(filename); } catch (Exception ex) { //変なファイルをドロップしたなどで例外は簡単に起こりうる window.Warning(String.Format("Failed to read {0}\n{1}", filename, ex.Message)); return(CommandResult.Failed); } try { //独立ウィンドウにポップアップさせるようなことは考えていない IContentReplaceableView rv = (IContentReplaceableView)target.GetAdapter(typeof(IContentReplaceableView)); if (rv == null) { rv = (IContentReplaceableView)window.ViewManager.GetCandidateViewForNewDocument().GetAdapter(typeof(IContentReplaceableView)); } TerminalControl tc = (TerminalControl)rv.GetCurrentContent().GetAdapter(typeof(TerminalControl)); if (tc != null) //ターミナルコントロールがないときは無理に設定しにいかない { RenderProfile rp = f.TerminalSettings.UsingDefaultRenderProfile ? TerminalSessionsPlugin.Instance.TerminalEmulatorService.TerminalEmulatorOptions.CreateRenderProfile() : f.TerminalSettings.RenderProfile; Size sz = tc.CalcTerminalSize(rp); f.TerminalParameter.SetTerminalSize(sz.Width, sz.Height); } ITerminalSession s = TerminalSessionsPlugin.Instance.TerminalSessionStartCommand.StartTerminalSession(target, f.TerminalParameter, f.TerminalSettings); return(s != null ? CommandResult.Succeeded : CommandResult.Failed); } catch (Exception ex) { RuntimeUtil.ReportException(ex); return(CommandResult.Failed); } }
private static CommandResult CmdGenerateKeyPair(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); Debug.Assert(window != null); KeyGenWizard dlg = new KeyGenWizard(); DialogResult r = dlg.ShowDialog(window.AsForm()); return(r == DialogResult.OK ? CommandResult.Succeeded : CommandResult.Cancelled); }
public void ChangeLastAttachedViewForWindow(IPoderosaMainWindow window, IPoderosaView alternative) { alternative = AdjustToOuterView(alternative); foreach (DocumentHost dh in _documentMap.Values) { if (dh.LastAttachedView.ParentForm == window) { dh.AlternateView(alternative); FireDocViewRelationChange(); } } }
public SplittableViewManager(IPoderosaMainWindow parent, IViewFactory defaultviewfactory) { _parent = parent; _defaultViewFactory = defaultviewfactory; Debug.Assert(_paneDivision == null); _singlePane = CreateNewPane(_defaultViewFactory, DockStyle.Fill); //先頭のFactoryで作ってしまうというのはどうかな _paneDivision = new PaneDivision(); _paneDivision.CountLimit = WindowManagerPlugin.Instance.WindowPreference.OriginalPreference.SplitLimitCount; _paneDivision.UIActionHandler = this; }
private static CommandResult CmdNewWindow(ICommandTarget target) { IPoderosaMainWindow window = CommandTargetUtil.AsWindow(target); Form f = window.AsForm(); Rectangle location = f.WindowState == FormWindowState.Normal? f.DesktopBounds : f.RestoreBounds; location.X += 20; location.Y += 20; //少し右下に表示 MainWindowArgument arg = new MainWindowArgument(location, FormWindowState.Normal, "", "", 1); WindowManagerPlugin.Instance.CreateNewWindow(arg); return(CommandResult.Succeeded); }
/// <summary> /// コンストラクタ /// </summary> public BroadcastCommandForm(IPoderosaMainWindow window) { _window = window; InitializeComponent(); InitializeComponentValue(); RefreshSessionList(); if (_sessionListView.Items.Count > 0) { _sessionListView.Items[0].Selected = true; } _Initialized = true; }
public PoderosaToolStripContainer(IPoderosaMainWindow parent, string location_info) { _parent = parent; _initialLocationInfo = location_info; //this.Height = 25; //適切なサイズを決める方法がわからない this.Dock = DockStyle.Fill; //左右に入れるのは見苦しい。やめる。 this.LeftToolStripPanelVisible = false; this.RightToolStripPanelVisible = false; this.BottomToolStripPanelVisible = false; this.TopToolStripPanelVisible = WindowManagerPlugin.Instance.WindowPreference.OriginalPreference.ShowsToolBar; this.AllowDrop = true; CreateInternal(); }
public TelnetSSHLoginDialog(IPoderosaMainWindow parentWindow) : base(parentWindow) { _firstFlag = true; _initializing = true; //_history = GApp.ConnectionHistory; // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); InitializeText(); InitializeLoginParams(); _initializing = false; }
public PoderosaToolStripContainer(IPoderosaMainWindow parent, string location_info) { _parent = parent; _initialLocationInfo = location_info; //this.Height = 25; //�K�ȃT�C�Y����߂���@���킩��Ȃ� this.Dock = DockStyle.Fill; //���E�ɓ����̂͌��ꂵ���B��߂�B this.LeftToolStripPanelVisible = false; this.RightToolStripPanelVisible = false; this.BottomToolStripPanelVisible = false; this.TopToolStripPanelVisible = WindowManagerPlugin.Instance.WindowPreference.OriginalPreference.ShowsToolBar; this.AllowDrop = true; CreateInternal(); }
/// <summary> /// Constructor /// </summary> /// <param name="mainWindow">main window</param> public OpenSessionDialog(IPoderosaMainWindow mainWindow) { _mainWindow = mainWindow; LastStatus lastStatus; if (_lastStatusStorage.Get(_mainWindow, out lastStatus)) { _lastStatus = lastStatus; } else { _lastStatus = new LastStatus(); } SuspendLayout(); InitializeComponent(); Localize(); SetupOpenSessionTabs(); ResumeLayout(); }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter destination, ITerminalSettings settings) { ITCPParameter tcp = (ITCPParameter)destination.GetAdapter(typeof(ITCPParameter)); IProtocolService ps = TerminalSessionsPlugin.Instance.ProtocolService; ISynchronizedConnector sc = ps.CreateFormBasedSynchronozedConnector(window); IInterruptable t = ps.AsyncTelnetConnect(sc.InterruptableConnectorClient, tcp); ITerminalConnection con = sc.WaitConnection(t, TerminalSessionsPlugin.Instance.TerminalSessionOptions.TerminalEstablishTimeout); AdjustCaptionAndText(settings, tcp.Destination, StartCommandIcon.NewConnection); return con; }
public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter destination, ITerminalSettings settings) { ISSHLoginParameter ssh = (ISSHLoginParameter)destination.GetAdapter(typeof(ISSHLoginParameter)); if (ssh.LetUserInputPassword && ssh.AuthenticationType != Granados.AuthenticationType.KeyboardInteractive) { //ダイアログで入力を促して接続 SSHShortcutLoginDialog dlg = new SSHShortcutLoginDialog(window, ssh, settings); if (dlg.ShowDialog(window.AsForm()) == DialogResult.OK) { ITerminalConnection con = dlg.Result; AdjustCaptionAndText(settings, ((ITCPParameter)con.Destination.GetAdapter(typeof(ITCPParameter))).Destination, StartCommandIcon.NewConnection); return con; } else return null; } else { //主にReproduceやマクロ。設定済みのパスワードで接続 IProtocolService protocolservice = TerminalSessionsPlugin.Instance.ProtocolService; ISynchronizedConnector conn = protocolservice.CreateFormBasedSynchronozedConnector(window); IInterruptable r = protocolservice.AsyncSSHConnect(conn.InterruptableConnectorClient, ssh); AdjustCaptionAndText(settings, ((ITCPParameter)destination.GetAdapter(typeof(ITCPParameter))).Destination, StartCommandIcon.NewConnection); return conn.WaitConnection(r, TerminalSessionsPlugin.Instance.TerminalSessionOptions.TerminalEstablishTimeout); //時間? } }
public void OnMainWindowLoaded(IPoderosaMainWindow window) { }
public void OnLastMainWindowUnloaded(IPoderosaMainWindow window) { }
public void OnDocumentDeactivated(IPoderosaMainWindow window) { if (window != null && window.ToolBar != null) window.ToolBar.RefreshComponent(this); }
public CommandResult InternalExecute(ICommandTarget target, params IAdaptable[] args) { _window = CommandTargetUtil.AsWindow(target); Debug.Assert(_window != null); if (_actions.Count == 0) return CommandResult.Ignored; else { //�����ɏI����̂łȂ� ProcessNextAction(); return CommandResult.Succeeded; } }
public void OnDocumentDeactivated(IPoderosaMainWindow window) { //Debug.WriteLine("OnDocumentDeactivated"); TerminalToolBarInstance tb = FindToolbarInstance(window); if (tb != null) tb.Detach(); }
public ClosingContext(IPoderosaMainWindow window) { _type = CloseType.OneWindow; _window = window; _closingSessions = new List<SessionHost>(); }
private PaneDivision.IPane _singlePane; //�������Ă��Ȃ��Ƃ��ɂ̂ݔ�null #endregion Fields #region Constructors public SplittableViewManager(IPoderosaMainWindow parent, IViewFactory defaultviewfactory) { _parent = parent; _defaultViewFactory = defaultviewfactory; Debug.Assert(_paneDivision == null); _singlePane = CreateNewPane(_defaultViewFactory, DockStyle.Fill); //�擪��Factory�ō���Ă��܂��Ƃ����̂͂ǂ����� _paneDivision = new PaneDivision(); _paneDivision.CountLimit = WindowManagerPlugin.Instance.WindowPreference.OriginalPreference.SplitLimitCount; _paneDivision.UIActionHandler = this; }
public SetTabRowMenuItem(IPoderosaMainWindow w, int count) { _window = w; _count = count; }
public DocActivationMenuItem(int index, IPoderosaMainWindow window, IPoderosaDocument document) { _mainWindow = window; _index = index; _document = document; }
private TerminalToolBarInstance FindToolbarInstance(IPoderosaMainWindow window) { return _toolbarInstances[window]; }
public ITerminalConnection OpenConnection(IPoderosaMainWindow owner, ITerminalParameter destination, ITerminalSettings settings) { //NOTE 同時接続数チェックあたりあってもいい ITerminalConnectionFactory[] fs = (ITerminalConnectionFactory[])TerminalSessionsPlugin.Instance.PoderosaWorld.PluginManager.FindExtensionPoint(TerminalSessionsPlugin.TERMINAL_CONNECTION_FACTORY_ID).GetExtensions(); //後に登録されたやつを優先するため、逆順に舐める for (int i = fs.Length - 1; i >= 0; i--) { ITerminalConnectionFactory f = fs[i]; if (f.IsSupporting(destination, settings)) { return f.EstablishConnection(owner, destination, settings); } } throw new ArgumentException("Failed to make an ITerminalConnection using extension point."); //ましなエラーメッセージ }
public void OnDocumentActivated(IPoderosaMainWindow window, IPoderosaDocument document) { window.AsForm().Text = String.Format("{0} - Poderosa", document.Caption); }
public void OnDocumentActivated(IPoderosaMainWindow window, IPoderosaDocument document) { //Debug.WriteLine("OnDocumentActivated"); TerminalToolBarInstance tb = FindToolbarInstance(window); if (tb == null) { tb = new TerminalToolBarInstance(this, window.ToolBar); _toolbarInstances[window] = tb; //TODO コレクションの削除がない! } IAbstractTerminalHost session = (IAbstractTerminalHost)document.OwnerSession.GetAdapter(typeof(IAbstractTerminalHost)); if (session != null) tb.Attach(session.TerminalSettings); }
public void OnDocumentDeactivated(IPoderosaMainWindow window) { window.AsForm().Text = "Poderosa"; }