EduNetworkBuilder/EduNetworkBuilder/NetworkCardEditor.cs

215 lines
7.8 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Globalization;
using System.Resources;
namespace EduNetworkBuilder
{
public partial class NetworkCardEditor : Form
{
NetworkCard MyNicToEdit;
Button btnVPNEnd = null;
TextBox tbVPNEncrypt = null;
TextBox tbSSID = null;
Label lblVPNEnd = null;
Label lblVPNEncrypt = null;
private NetworkCardEditor()
{
InitializeComponent();
LanguagifyComponents();
}
public NetworkCardEditor(NetworkCard NicToEdit)
{
InitializeComponent();
LanguagifyComponents();
//***************
//**** VPN ****
//***************
if (NicToEdit.GetNicType == NicType.tun || NicToEdit.GetNicType == NicType.vpn)
{
AutoSize = false;
btnVPNEnd = new Button();
btnVPNEnd.Location = new Point(TBMacAddress.Location.X, cbDHCP.Location.Y + 28);
string btnval = "0.0.0.0";
if (NicToEdit.TunnelEndpoint != null)
btnval = NicToEdit.TunnelEndpoint.GetIPString;
btnVPNEnd.Text = btnval;
btnVPNEnd.Click += btnVPNEnd_Click;
lblVPNEnd = new Label();
lblVPNEnd.Location = new Point(10, btnVPNEnd.Location.Y);
lblVPNEnd.Text = NB.Translate("NCE_NCEVPNEnd");
Controls.Add(btnVPNEnd);
Controls.Add(lblVPNEnd);
this.Height = lblVPNEnd.Location.Y + lblVPNEnd.Height + 80;
if (NicToEdit.GetNicType == NicType.vpn)
{
tbVPNEncrypt = new TextBox();
tbVPNEncrypt.Location = new Point(TBMacAddress.Location.X, btnVPNEnd.Location.Y + 28);
lblVPNEncrypt = new Label();
lblVPNEncrypt.Location = new Point(10, tbVPNEncrypt.Location.Y);
lblVPNEncrypt.Text = NB.Translate("NCE_NCEEncrypt");
Controls.Add(tbVPNEncrypt);
Controls.Add(lblVPNEncrypt);
this.Height = tbVPNEncrypt.Location.Y + tbVPNEncrypt.Height + 80;
}
Refresh();
//AutoSize = true;
}
//******************
//*** WIRELESS ***
//******************
if (NicToEdit.GetNicType == NicType.wlan || NicToEdit.GetNicType == NicType.wport)
{
AutoSize = false;
tbSSID = new TextBox();
tbSSID.Location = new Point(TBMacAddress.Location.X, cbDHCP.Location.Y + 28);
lblVPNEnd = new Label();
lblVPNEnd.Location = new Point(10, tbSSID.Location.Y);
lblVPNEnd.Text = "SSID:";
Controls.Add(tbSSID);
Controls.Add(lblVPNEnd);
this.Height = lblVPNEnd.Location.Y + lblVPNEnd.Height + 80;
tbVPNEncrypt = new TextBox();
tbVPNEncrypt.Location = new Point(TBMacAddress.Location.X, tbSSID.Location.Y + 28);
lblVPNEncrypt = new Label();
lblVPNEncrypt.Location = new Point(10, tbVPNEncrypt.Location.Y);
lblVPNEncrypt.Text = NB.Translate("NCE_NCEWireless");
Controls.Add(tbVPNEncrypt);
Controls.Add(lblVPNEncrypt);
this.Height = tbVPNEncrypt.Location.Y + tbVPNEncrypt.Height + 80;
Refresh();
//AutoSize = true;
}
TBMacAddress.Enabled = false;
tbNicName.Enabled = false;
tbNicType.Enabled = false;
cbCanUseDHCP.Enabled = false;
TBMacAddress.Text = NicToEdit.MAC;
tbNicName.Text = NicToEdit.NicName();
tbNicType.Text = NicToEdit.GetNicType.ToString();
MyNicToEdit = NicToEdit;
cbCanUseDHCP.Checked = NicToEdit.CanUseDHCP;
cbDHCP.Checked = NicToEdit.UsesDHCP;
if (!NicToEdit.CanUseDHCP) cbDHCP.Enabled = false;
if(NicToEdit.MustUseDHCP)
{
cbDHCP.Enabled = false;
cbCanUseDHCP.Enabled = false;
}
Network theNet = NB.GetNetwork();
NetworkDevice nd = theNet.GetDeviceFromID(NicToEdit.myID);
if(theNet.ItemIsLocked(nd.hostname, NicToEdit.NicName(), NetTestType.LockNic))
{
cbDHCP.Enabled = false;
cbCanUseDHCP.Enabled = false;
TBMacAddress.Enabled = false;
tbNicName.Enabled = false;
tbNicType.Enabled = false;
}
UpdateForm();
}
private void LanguagifyComponents()
{
Text = NB.Translate("NCE_cbCanUseDHCP");
Text = NB.Translate("NCE_cbDHCP");
Text = NB.Translate("NCE_label1");
Text = NB.Translate("NCE_label2");
Text = NB.Translate("NCE_label3");
Text = NB.Translate("_Done");
Text = NB.Translate("NCE_lblLinkStatus");
Text = NB.Translate("NCE_Form");
}
private void UpdateForm()
{
if (btnVPNEnd != null)
{
string btnval = "0.0.0.0";
if (MyNicToEdit.TunnelEndpoint != null)
btnval = MyNicToEdit.TunnelEndpoint.GetIPString;
btnVPNEnd.Text = btnval;
}
if(tbSSID != null)
{
tbSSID.Text = MyNicToEdit.SSID;
}
if(tbVPNEncrypt != null)
{
tbVPNEncrypt.Text = MyNicToEdit.EncryptionKey;
}
if (MyNicToEdit.GetNicType == NicType.tun || MyNicToEdit.GetNicType == NicType.vpn ||
MyNicToEdit.GetNicType == NicType.management_interface || MyNicToEdit.GetNicType == NicType.lo)
{
lblLinkStatus.Visible = false;
}
else
lblLinkStatus.Visible = true;
if (MyNicToEdit.isConnected(true))
lblLinkStatus.Text = NB.Translate("NCE_UdfrmCon");
else
lblLinkStatus.Text = NB.Translate("NCE_UdfrmDiscon");
}
private void btnDone_Click(object sender, EventArgs e)
{
MyNicToEdit.CanUseDHCP = cbCanUseDHCP.Checked;
MyNicToEdit.UsesDHCP = cbDHCP.Checked;
SaveDataToNic();
Close();
}
private void SaveDataToNic()
{
if (tbVPNEncrypt != null)
{
MyNicToEdit.EncryptionKey = tbVPNEncrypt.Text;
}
if (tbSSID != null)
{
MyNicToEdit.SSID = tbSSID.Text;
}
}
private void btnVPNEnd_Click(object sender, EventArgs e)
{
Network theNet = NB.GetNetwork();
NetworkDevice nd = theNet.GetDeviceFromID(MyNicToEdit.myID);
if(MyNicToEdit.TunnelEndpoint == null)
{
MyNicToEdit.TunnelEndpoint = new IPAddress(NB.ZeroIPString, "255.255.255.0", IPAddressType.ip_only);
}
MyNicToEdit.TunnelEndpoint.Edit(nd, this, NB.Translate("_Endpt"));
SaveDataToNic();
UpdateForm();
}
private void NetworkCardEditor_Shown(object sender, EventArgs e)
{
BuilderWindow BW = NB.GetBuilderWin();
if (BW != null)
{
Point tLocation = new Point(BW.Location.X + ((BW.Width - Width) / 2), BW.Location.Y + ((BW.Height - Height) / 2));
Location = tLocation;
}
}
}
}