Files
VAR.DatabaseExplorer/ServerExplorer/UI/FrmPrincipal.cs

123 lines
3.7 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.Windows.Forms;
using ServerExplorer.Code;
using ServerExplorer.Controls;
namespace ServerExplorer.UI
{
public partial class FrmPrincipal : Form
{
#region Declarations
private static FrmPrincipal currentInstance;
#endregion
#region Creator
public FrmPrincipal()
{
currentInstance = this;
InitializeComponent();
}
#endregion
#region WindowList
private List<Form> listChilds = new List<Form>();
public static void AddForm(Form frm)
{
frm.MdiParent = currentInstance;
frm.WindowState = FormWindowState.Maximized;
frm.Show();
currentInstance.listChilds.Add(frm);
frm.FormClosed += currentInstance.FrmPrincipal_OnChildClose;
currentInstance.RefreshWindowButtons();
}
protected void FrmPrincipal_OnChildClose(object sender, FormClosedEventArgs e)
{
listChilds.Remove((Form)sender);
RefreshWindowButtons();
}
private void FrmPrincipal_MdiChildActivate(object sender, EventArgs e)
{
RefreshWindowButtons();
}
private void RefreshWindowButtons()
{
int childCount = listChilds.Count;
int delta = childCount - flowpnlWindows.Controls.Count;
if (delta < 0)
{
int dest = flowpnlWindows.Controls.Count + delta;
for (int i = flowpnlWindows.Controls.Count - 1; i >= dest; i--)
{
flowpnlWindows.Controls.RemoveAt(i);
}
}
else if (delta > 0)
{
for (int i = 0; i < delta; i++)
{
flowpnlWindows.Controls.Add(new WindowButton());
}
}
for (int i = 0; i < childCount; i++)
{
WindowButton btn = (WindowButton)flowpnlWindows.Controls[i];
Form frm = listChilds[i];
btn.Text = frm.Text;
btn.Window = frm;
btn.Active = (frm == ActiveMdiChild);
}
}
#endregion
#region Menus
private void menuConectarPRUEBAS_Click(object sender, EventArgs e)
{
// Crear ventana de la base de datos de pruebas
FrmBaseDatos frm = new FrmBaseDatos("Data Source=SSSRV3;Initial Catalog=PRUEBAS;User ID=sa;Password=SLsssrv3");
//frmBaseDatos frm = new frmBaseDatos("Data Source=DANTE;Initial Catalog=BD_AlfonsoRodriguez;Integrated Security=True");
//frmBaseDatos frm = new frmBaseDatos("Data Source=OSKURITO;Initial Catalog=BD_AlfonsoRodriguez;Integrated Security=True");
FrmPrincipal.AddForm(frm);
}
private void menuBuscarServidor_Click(object sender, EventArgs e)
{
// Mostrar ventana de buscador de servidores
FrmServidores frm = new FrmServidores();
FrmPrincipal.AddForm(frm);
}
private void menuConectarA_Click(object sender, EventArgs e)
{
// Cargar configuracion
OpenFileDialog dialogo = new OpenFileDialog();
if (dialogo.ShowDialog() == DialogResult.OK)
{
Config config = Config.Cargar(dialogo.FileName);
// Crear y mostrar ventana
FrmBaseDatos frm = new FrmBaseDatos(config);
FrmPrincipal.AddForm(frm);
}
}
#endregion
}
}