コード例 #1
0
        //EXTP使用
        public void ApplyParam()
        {
            ICygwinParameter  parameter = null;
            ITerminalSettings settings  = null;

            if (_loginDialogUISupport != null)
            {
                ITerminalParameter tp = null;
                _loginDialogUISupport.FillTopDestination(typeof(ICygwinParameter), out tp, out settings);
                parameter = tp == null ? null : (ICygwinParameter)tp.GetAdapter(typeof(ICygwinParameter));
            }
            if (parameter == null)
            {
                parameter = TerminalSessionsPlugin.Instance.ProtocolService.CreateDefaultCygwinParameter();
            }
            if (settings == null)
            {
                settings = CygwinPlugin.Instance.CreateDefaultCygwinTerminalSettings();
            }

            IAutoExecMacroParameter autoExecParams = parameter.GetAdapter(typeof(IAutoExecMacroParameter)) as IAutoExecMacroParameter;

            if (autoExecParams != null && CygwinPlugin.Instance.MacroEngine != null)
            {
                _autoExecMacroPathBox.Text = (autoExecParams.AutoExecMacroPath != null) ? autoExecParams.AutoExecMacroPath : String.Empty;
            }
            else
            {
                _autoExecMacroPathLabel.Enabled    = false;
                _autoExecMacroPathBox.Enabled      = false;
                _selectAutoExecMacroButton.Enabled = false;
            }

            ApplyParam(parameter, settings);
        }
コード例 #2
0
        private void ApplyParam(ICygwinParameter shellparam, ITerminalSettings terminalSettings)
        {
            _param = (ICygwinParameter)shellparam.Clone();
            this.TerminalSettings = terminalSettings.Clone();

            this.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog.TextCygwin");
        }
コード例 #3
0
ファイル: MRUPlugin.cs プロジェクト: yoshikixxxx/poderosa
 public void ApplyLoginDialogInfo(ITelnetSSHLoginDialogInitializeInfo info)
 {
     foreach (MRUItem item in _data)
     {
         ITerminalParameter tp     = item.TerminalParameter;
         ITCPParameter      tcp    = (ITCPParameter)tp.GetAdapter(typeof(ITCPParameter));
         ISSHLoginParameter ssh    = (ISSHLoginParameter)tp.GetAdapter(typeof(ISSHLoginParameter));
         ICygwinParameter   cygwin = (ICygwinParameter)tp.GetAdapter(typeof(ICygwinParameter));
         if (tcp != null)
         {
             info.AddHost(tcp.Destination);
         }
         if (tcp != null)
         {
             info.AddPort(tcp.Port);
         }
         if (ssh != null)
         {
             info.AddIdentityFile(ssh.IdentityFileName);
         }
         if (ssh != null)
         {
             info.AddAccount(ssh.Account);
         }
     }
 }
コード例 #4
0
ファイル: MRUPlugin.cs プロジェクト: yoshikixxxx/poderosa
        public static string FormatItemDescription(MRUItem item)
        {
            ITerminalParameter param  = item.TerminalParameter;
            string             suffix = "";
            ICygwinParameter   cygwin = (ICygwinParameter)param.GetAdapter(typeof(ICygwinParameter));

            if (cygwin != null)
            {
                suffix = "- Cygwin";
            }

            ISSHLoginParameter ssh = (ISSHLoginParameter)param.GetAdapter(typeof(ISSHLoginParameter));
            ITCPParameter      tcp = (ITCPParameter)param.GetAdapter(typeof(ITCPParameter));

            if (ssh != null)
            {
                suffix = String.Format("- {0}", ssh.Method.ToString());
            }
            else if (tcp != null)
            {
                suffix = "- Telnet";
            }

            return(String.Format("{0} {1}", item.TerminalSettings.Caption, suffix));
        }
コード例 #5
0
        internal override ITerminalParameter ConvertToTerminalParameter()
        {
            ICygwinParameter cygwin = MacroPlugin.Instance.ProtocolService.CreateDefaultCygwinParameter();

            cygwin.Home      = _home;
            cygwin.ShellName = _shell;
            return((ITerminalParameter)cygwin.GetAdapter(typeof(ITerminalParameter)));
        }
コード例 #6
0
        protected static void PrepareEnv(ProcessStartInfo psi, ICygwinParameter p)
        {
            string cygdir = CygwinUtil.GuessRootDirectory(p.CygwinDir);
            string cygbin = System.IO.Path.Combine(cygdir, "bin");

            string path = psi.EnvironmentVariables["PATH"];

            psi.EnvironmentVariables.Remove("PATH");
            psi.EnvironmentVariables.Add("PATH", PathListAppend(cygbin, path));
        }
コード例 #7
0
            public ITerminalConnection EstablishConnection(IPoderosaMainWindow window, ITerminalParameter destination, ITerminalSettings settings)
            {
                ICygwinParameter       cygwin = (ICygwinParameter)destination.GetAdapter(typeof(ICygwinParameter));
                IProtocolService       ps     = TerminalSessionsPlugin.Instance.ProtocolService;
                ISynchronizedConnector sc     = ps.CreateFormBasedSynchronozedConnector(window);
                IInterruptable         t      = ps.AsyncCygwinConnect(sc.InterruptableConnectorClient, cygwin);
                ITerminalConnection    con    = sc.WaitConnection(t, TerminalSessionsPlugin.Instance.TerminalSessionOptions.TerminalEstablishTimeout);

                AdjustCaptionAndText(settings, cygwin.ShellBody, StartCommandIcon.Cygwin);
                return(con);
            }
コード例 #8
0
ファイル: LocalShell.cs プロジェクト: Ricordanza/poderosa
 //接続先のSocketを準備して返す。失敗すればparentを親にしてエラーを表示し、nullを返す。
 internal static ITerminalConnection PrepareSocket(IPoderosaForm parent, ICygwinParameter param) {
     try {
         return new Connector(param).Connect();
     }
     catch (Exception ex) {
         //string key = IsCygwin(param)? "Message.CygwinUtil.FailedToConnect" : "Message.SFUUtil.FailedToConnect";
         string key = "Message.CygwinUtil.FailedToConnect";
         parent.Warning(PEnv.Strings.GetString(key) + ex.Message);
         return null;
     }
 }
コード例 #9
0
 //接続先のSocketを準備して返す。失敗すればparentを親にしてエラーを表示し、nullを返す。
 internal static ITerminalConnection PrepareSocket(IPoderosaForm parent, ICygwinParameter param)
 {
     try {
         return(new Connector(param).Connect());
     }
     catch (Exception ex) {
         //string key = IsCygwin(param)? "Message.CygwinUtil.FailedToConnect" : "Message.SFUUtil.FailedToConnect";
         string key = "Message.CygwinUtil.FailedToConnect";
         parent.Warning(PEnv.Strings.GetString(key) + ex.Message);
         return(null);
     }
 }
コード例 #10
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (_param == null)
            {
                _param = TerminalSessionsPlugin.Instance.ProtocolService.CreateDefaultCygwinParameter();
            }

            _homeDirectoryBox.Text = _param.Home;
            _shellBox.Text         = _param.ShellName;

            _logTypeBox.SelectedIndex = 0;

            _encodingBox.SelectedIndex     = (int)this.TerminalSettings.Encoding;
            _terminalTypeBox.SelectedIndex = (int)this.TerminalSettings.TerminalType;
            _cygwinDirBox.Text             = _param.CygwinDir;

            AdjustUI();
        }
コード例 #11
0
ファイル: LocalShell.cs プロジェクト: saitoha/poderosa
        protected static void PrepareEnv(ProcessStartInfo psi, ICygwinParameter p)
        {
            string path      = psi.EnvironmentVariables["PATH"];
            string cygwinDir = p.CygwinDir;

            if (cygwinDir == null || cygwinDir.Length == 0)
            {
                cygwinDir = CygwinUtil.GuessRootDirectory();
            }
            if (path == null)
            {
                path = String.Empty;
            }
            else if (!path.EndsWith(";"))
            {
                path += ";";
            }
            path += cygwinDir + "\\bin";
            psi.EnvironmentVariables.Remove("PATH");
            psi.EnvironmentVariables.Add("PATH", path);
        }
コード例 #12
0
ファイル: ProtocolsPlugin.cs プロジェクト: sunxking/poderosa
 public IInterruptable AsyncCygwinConnect(IInterruptableConnectorClient result_client, ICygwinParameter destination)
 {
     return(LocalShellUtil.AsyncPrepareSocket(result_client, destination));
 }
コード例 #13
0
ファイル: LocalShell.cs プロジェクト: Ricordanza/poderosa
 public Connector(ICygwinParameter param, IInterruptableConnectorClient client) {
     _param = param;
     _client = client;
 }
コード例 #14
0
ファイル: LocalShell.cs プロジェクト: Ricordanza/poderosa
 public Connector(ICygwinParameter param) {
     _param = param;
 }
コード例 #15
0
ファイル: LocalShell.cs プロジェクト: Ricordanza/poderosa
 public static Connector AsyncPrepareSocket(IInterruptableConnectorClient client, ICygwinParameter param) {
     Connector c = new Connector(param, client);
     new Thread(new ThreadStart(c.AsyncConnect)).Start();
     return c;
 }
コード例 #16
0
ファイル: LocalShell.cs プロジェクト: Ricordanza/poderosa
 protected static void PrepareEnv(ProcessStartInfo psi, ICygwinParameter p) {
     string path = psi.EnvironmentVariables["PATH"];
     string cygwinDir = p.CygwinDir;
     if (cygwinDir == null || cygwinDir.Length == 0)
         cygwinDir = CygwinUtil.GuessRootDirectory();
     if (path == null)
         path = String.Empty;
     else if (!path.EndsWith(";"))
         path += ";";
     path += cygwinDir + "\\bin";
     psi.EnvironmentVariables.Remove("PATH");
     psi.EnvironmentVariables.Add("PATH", path);
 }
コード例 #17
0
        private void ApplyParam(ICygwinParameter shellparam, ITerminalSettings terminalSettings) {
            _param = (ICygwinParameter)shellparam.Clone();
            this.TerminalSettings = terminalSettings.Clone();

            this.Text = TEnv.Strings.GetString("Form.CygwinLoginDialog.TextCygwin");

        }
コード例 #18
0
        protected override void OnLoad(EventArgs e) {
            base.OnLoad(e);
            if (_param == null)
                _param = TerminalSessionsPlugin.Instance.ProtocolService.CreateDefaultCygwinParameter();

            _homeDirectoryBox.Text = _param.Home;
            _shellBox.Text = _param.ShellName;

            _logTypeBox.SelectedItem = LogType.None;    // select EnumListItem<T> by T

            _encodingBox.SelectedItem = this.TerminalSettings.Encoding;         // select EnumListItem<T> by T
            _terminalTypeBox.SelectedItem = this.TerminalSettings.TerminalType; // select EnumListItem<T> by T
            _cygwinDirBox.Text = _param.CygwinDir;

            AdjustUI();
        }
コード例 #19
0
        public static Connector AsyncPrepareSocket(IInterruptableConnectorClient client, ICygwinParameter param)
        {
            Connector c = new Connector(param, client);

            new Thread(new ThreadStart(c.AsyncConnect)).Start();
            return(c);
        }
コード例 #20
0
            public bool IsSupporting(ITerminalParameter param, ITerminalSettings settings)
            {
                ICygwinParameter cygwin = (ICygwinParameter)param.GetAdapter(typeof(ICygwinParameter));

                return(cygwin != null);
            }
コード例 #21
0
ファイル: ProtocolsPlugin.cs プロジェクト: yiyi99/poderosa
 public IInterruptable AsyncCygwinConnect(IInterruptableConnectorClient result_client, ICygwinParameter destination)
 {
     return LocalShellUtil.AsyncPrepareSocket(result_client, destination);
 }
コード例 #22
0
 public Connector(ICygwinParameter param, IInterruptableConnectorClient client)
 {
     _param  = param;
     _client = client;
 }
コード例 #23
0
 public Connector(ICygwinParameter param)
 {
     _param = param;
 }
コード例 #24
0
 //cygwinの同期的接続
 public static ITerminalConnection CreateNewLocalShellConnection(IPoderosaForm form, ICygwinParameter param)
 {
     return(LocalShellUtil.PrepareSocket(form, param));
 }
コード例 #25
0
 //cygwinの同期的接続
 public static ITerminalConnection CreateNewLocalShellConnection(IPoderosaForm form, ICygwinParameter param) {
     return LocalShellUtil.PrepareSocket(form, param);
 }