215 lines
7.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|