ConnectionOptionPanel.cs
上传用户:szltgg
上传日期:2019-05-16
资源大小:604k
文件大小:9k
源码类别:

Telnet服务器

开发平台:

C#

  1. /*
  2. * Copyright (c) 2005 Poderosa Project, All Rights Reserved.
  3. * $Id: ConnectionOptionPanel.cs,v 1.2 2005/04/20 08:45:44 okajima Exp $
  4. */
  5. using System;
  6. using System.Windows.Forms;
  7. using System.Diagnostics;
  8. using Poderosa.Communication;
  9. using Poderosa.Toolkit;
  10. using Poderosa.Config;
  11. using Poderosa.UI;
  12. namespace Poderosa.Forms {
  13. internal class ConnectionOptionPanel : OptionDialog.CategoryPanel
  14. {
  15. private System.Windows.Forms.GroupBox _socksGroup;
  16. private CheckBox _useSocks;
  17. private System.Windows.Forms.Label _socksServerLabel;
  18. private TextBox _socksServerBox;
  19. private System.Windows.Forms.Label _socksPortLabel;
  20. private TextBox _socksPortBox;
  21. private System.Windows.Forms.Label _socksAccountLabel;
  22. private TextBox _socksAccountBox;
  23. private System.Windows.Forms.Label _socksPasswordLabel;
  24. private TextBox _socksPasswordBox;
  25. private System.Windows.Forms.Label _socksNANetworksLabel;
  26. private TextBox _socksNANetworksBox;
  27. public ConnectionOptionPanel()
  28. {
  29. InitializeComponent();
  30. FillText();
  31. }
  32. private void InitializeComponent() {
  33. this._socksGroup = new System.Windows.Forms.GroupBox();
  34. this._useSocks = new CheckBox();
  35. this._socksServerLabel = new System.Windows.Forms.Label();
  36. this._socksServerBox = new TextBox();
  37. this._socksPortLabel = new System.Windows.Forms.Label();
  38. this._socksPortBox = new TextBox();
  39. this._socksAccountLabel = new System.Windows.Forms.Label();
  40. this._socksAccountBox = new TextBox();
  41. this._socksPasswordLabel = new System.Windows.Forms.Label();
  42. this._socksPasswordBox = new TextBox();
  43. this._socksNANetworksLabel = new System.Windows.Forms.Label();
  44. this._socksNANetworksBox = new TextBox();
  45. this._socksGroup.SuspendLayout();
  46. this.Controls.AddRange(new System.Windows.Forms.Control[] {
  47.   this._useSocks,
  48.   this._socksGroup});
  49. //
  50. //_useSocks
  51. //
  52. this._useSocks.Location = new System.Drawing.Point(16, 3);
  53. this._useSocks.Name = "_useSocksAuthentication";
  54. this._useSocks.FlatStyle = FlatStyle.System;
  55. this._useSocks.Size = new System.Drawing.Size(160, 23);
  56. this._useSocks.TabIndex = 1;
  57. this._useSocks.CheckedChanged += new EventHandler(OnUseSocksOptionChanged);
  58. //
  59. //_socksGroup
  60. //
  61. this._socksGroup.Controls.AddRange(new System.Windows.Forms.Control[] {
  62.   this._socksServerLabel,
  63.   this._socksServerBox,
  64.   this._socksPortLabel,
  65.   this._socksPortBox,
  66.   this._socksAccountLabel,
  67.   this._socksAccountBox,
  68.   this._socksPasswordLabel,
  69.   this._socksPasswordBox,
  70.   this._socksNANetworksLabel,
  71.   this._socksNANetworksBox});
  72. this._socksGroup.Location = new System.Drawing.Point(8, 8);
  73. this._socksGroup.Name = "_socksGroup";
  74. this._socksGroup.FlatStyle = FlatStyle.System;
  75. this._socksGroup.Size = new System.Drawing.Size(416, 128);
  76. this._socksGroup.TabIndex = 2;
  77. this._socksGroup.TabStop = false;
  78. this._socksGroup.Text = "";
  79. //
  80. //_socksServerLabel
  81. //
  82. this._socksServerLabel.Location = new System.Drawing.Point(8, 18);
  83. this._socksServerLabel.Name = "_socksServerLabel";
  84. this._socksServerLabel.Size = new System.Drawing.Size(80, 23);
  85. this._socksServerLabel.TabIndex = 0;
  86. this._socksServerLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
  87. //
  88. //_socksServerBox
  89. //
  90. this._socksServerBox.Location = new System.Drawing.Point(96, 18);
  91. this._socksServerBox.Name = "_socksServerBox";
  92. this._socksServerBox.Size = new System.Drawing.Size(104, 19);
  93. this._socksServerBox.Enabled = false;
  94. this._socksServerBox.TabIndex = 1;
  95. //
  96. //_socksPortLabel
  97. //
  98. this._socksPortLabel.Location = new System.Drawing.Point(216, 18);
  99. this._socksPortLabel.Name = "_socksPortLabel";
  100. this._socksPortLabel.Size = new System.Drawing.Size(80, 23);
  101. this._socksPortLabel.TabIndex = 2;
  102. this._socksPortLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
  103. //
  104. //_socksPortBox
  105. //
  106. this._socksPortBox.Location = new System.Drawing.Point(304, 18);
  107. this._socksPortBox.Name = "_socksPortBox";
  108. this._socksPortBox.Size = new System.Drawing.Size(104, 19);
  109. this._socksPortBox.Enabled = false;
  110. this._socksPortBox.TabIndex = 3;
  111. this._socksPortBox.MaxLength = 5;
  112. //
  113. //_socksAccountLabel
  114. //
  115. this._socksAccountLabel.Location = new System.Drawing.Point(8, 40);
  116. this._socksAccountLabel.Name = "_socksAccountLabel";
  117. this._socksAccountLabel.Size = new System.Drawing.Size(80, 23);
  118. this._socksAccountLabel.TabIndex = 4;
  119. this._socksAccountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
  120. //
  121. //_socksAccountBox
  122. //
  123. this._socksAccountBox.Location = new System.Drawing.Point(96, 40);
  124. this._socksAccountBox.Name = "_socksAccountBox";
  125. this._socksAccountBox.Size = new System.Drawing.Size(104, 19);
  126. this._socksAccountBox.Enabled = false;
  127. this._socksAccountBox.TabIndex = 5;
  128. //
  129. //_socksPasswordLabel
  130. //
  131. this._socksPasswordLabel.Location = new System.Drawing.Point(216, 40);
  132. this._socksPasswordLabel.Name = "_socksPasswordLabel";
  133. this._socksPasswordLabel.Size = new System.Drawing.Size(80, 23);
  134. this._socksPasswordLabel.TabIndex = 6;
  135. this._socksPasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
  136. //
  137. //_socksPasswordBox
  138. //
  139. this._socksPasswordBox.Location = new System.Drawing.Point(304, 40);
  140. this._socksPasswordBox.Name = "_socksPasswordBox";
  141. this._socksPasswordBox.PasswordChar = '*';
  142. this._socksPasswordBox.Enabled = false;
  143. this._socksPasswordBox.Size = new System.Drawing.Size(104, 19);
  144. this._socksPasswordBox.TabIndex = 7;
  145. //
  146. //_socksNANetworksLabel
  147. //
  148. this._socksNANetworksLabel.Location = new System.Drawing.Point(8, 68);
  149. this._socksNANetworksLabel.Name = "_socksNANetworksLabel";
  150. this._socksNANetworksLabel.Size = new System.Drawing.Size(400, 28);
  151. this._socksNANetworksLabel.TabIndex = 8;
  152. this._socksNANetworksLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
  153. //
  154. //_socksNANetworksBox
  155. //
  156. this._socksNANetworksBox.Location = new System.Drawing.Point(8, 98);
  157. this._socksNANetworksBox.Name = "_socksNANetworksBox";
  158. this._socksNANetworksBox.Enabled = false;
  159. this._socksNANetworksBox.Size = new System.Drawing.Size(400, 19);
  160. this._socksNANetworksBox.TabIndex = 9;
  161. this.BackColor = ThemeUtil.TabPaneBackColor;
  162. this._socksGroup.ResumeLayout();
  163. }
  164. private void FillText() {
  165. this._useSocks.Text = GApp.Strings.GetString("Form.OptionDialog._useSocks");
  166. this._socksServerLabel.Text = GApp.Strings.GetString("Form.OptionDialog._socksServerLabel");
  167. this._socksPortLabel.Text = GApp.Strings.GetString("Form.OptionDialog._socksPortLabel");
  168. this._socksAccountLabel.Text = GApp.Strings.GetString("Form.OptionDialog._socksAccountLabel");
  169. this._socksPasswordLabel.Text = GApp.Strings.GetString("Form.OptionDialog._socksPasswordLabel");
  170. this._socksNANetworksLabel.Text = GApp.Strings.GetString("Form.OptionDialog._socksNANetworksLabel");
  171. }
  172. public override void InitUI(ContainerOptions options) {
  173. _useSocks.Checked = options.UseSocks;
  174. _socksServerBox.Text = options.SocksServer;
  175. _socksPortBox.Text = options.SocksPort.ToString();
  176. _socksAccountBox.Text = options.SocksAccount;
  177. _socksPasswordBox.Text = options.SocksPassword;
  178. _socksNANetworksBox.Text = options.SocksNANetworks;
  179. }
  180. public override bool Commit(ContainerOptions options) {
  181. string itemname = "";
  182. try {
  183. options.UseSocks = _useSocks.Checked;
  184. if(options.UseSocks && _socksServerBox.Text.Length==0)
  185. throw new Exception(GApp.Strings.GetString("Message.OptionDialog.EmptySocksServer"));
  186. options.SocksServer = _socksServerBox.Text;
  187. itemname = GApp.Strings.GetString("Caption.OptionDialog.SOCKSPortNumber");
  188. options.SocksPort = Int32.Parse(_socksPortBox.Text);
  189. options.SocksAccount = _socksAccountBox.Text;
  190. options.SocksPassword = _socksPasswordBox.Text;
  191. itemname = GApp.Strings.GetString("Caption.OptionDialog.NetworkAddress");
  192. foreach(string c in _socksNANetworksBox.Text.Split(';')) {
  193. if(!NetUtil.IsNetworkAddress(c)) throw new FormatException();
  194. }
  195. options.SocksNANetworks = _socksNANetworksBox.Text;
  196. return true;
  197. }
  198. catch(FormatException) {
  199. GUtil.Warning(this, String.Format(GApp.Strings.GetString("Message.OptionDialog.InvalidItem"), itemname));
  200. return false;
  201. }
  202. catch(Exception ex) {
  203. GUtil.Warning(this, ex.Message);
  204. return false;
  205. }
  206. }
  207. private void OnUseSocksOptionChanged(object sender, EventArgs args) {
  208. bool e = _useSocks.Checked;
  209. _socksServerBox.Enabled = e;
  210. _socksPortBox.Enabled = e;
  211. _socksAccountBox.Enabled = e;
  212. _socksPasswordBox.Enabled = e;
  213. _socksNANetworksBox.Enabled = e;
  214. }
  215. }
  216. }