Files
Kanalsanierungsverwaltung/SanSystem/frmObjektEdit.cs
2019-05-31 23:27:29 +02:00

227 lines
9.1 KiB
C#

using KlassenBIB;
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 SanShared;
using System.Collections;
using Database;
namespace SanSystem
{
/// <summary>
///
/// </summary>
public partial class frmObjektEdit : Form
{
Inspektionsobjekt inspektionsobjekt = null;
private bool neu = false;
/// <summary>
///
/// </summary>
/// <param name="inspektion"></param>
public frmObjektEdit(Inspektionsobjekt inspektion, bool neu = false)
{
InitializeComponent();
this.neu = neu;
btn_add_san.Text = Global.Instance.language.Labels["add_san"];
btn_close.Text = Global.Instance.language.Labels["btn_close"];
this.inspektionsobjekt = inspektion;
dgv_schadenkuerzel.DataSource = inspektion.Schadenskuerzeln;
foreach(Sanierung san in inspektion.Sanierung)
{
TabPage tab = new TabPage();
if(san is InlinerSanierung)
{
tab.Text = "InlinerSanierung";
UCInliner uCInliner = new UCInliner(san as InlinerSanierung);
uCInliner.Dock = DockStyle.Fill;
tab.Controls.Add(uCInliner);
tabControl1.TabPages.Add(tab);
}
else if(san is SchachtAnbindung)
{
tab.Text = "Schachtanbindung";
UCSchachtanbindung uCSchachtanbindung = new UCSchachtanbindung(san as SchachtAnbindung);
uCSchachtanbindung.Dock = DockStyle.Fill;
tab.Controls.Add(uCSchachtanbindung);
tabControl1.TabPages.Add(tab);
}
}
if (Environment.MachineName.Equals("MEVES-LT"))
{
this.Width = 1512;
this.Height = 907;
}
}
private void frmObjektEdit_Load(object sender, EventArgs e)
{
txt_objekt_name.Enabled = false;
txt_laenge_schacht.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Schachtlaenge"));
txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung"));
txt_ort.DataBindings.Add(new Binding("Text", inspektionsobjekt, "OrtName"));
txt_punkt_von.DataBindings.Add(new Binding("Text", inspektionsobjekt, "VonPunkt"));
txt_punkt_bis.DataBindings.Add(new Binding("Text", inspektionsobjekt, "BisPunkt"));
txt_strasse.DataBindings.Add(new Binding("Text", inspektionsobjekt, "StrasseName"));
txt_hausnummer.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Hausnummer"));
cb_material.DataBindings.Add(new Binding("Text", inspektionsobjekt, "RohrMaterial"));
txt_haltungslaenge.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Haltungslaenge"));
txt_dn.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Kanalrohrweite"));
txt_pro_nr.DataBindings.Add(new Binding("Text", inspektionsobjekt, "ProjektNummer"));
dt_haltunggemessen_datum.DataBindings.Add(new Binding("Value", inspektionsobjekt, "HaltungGemessen"));
txt_bemerkung.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Bemerkung"));
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void btn_close_Click(object sender, EventArgs e)
{
int width = this.Width;
int height = this.Height;
txt_laenge_schacht.DataBindings.Clear();
txt_objekt_name.DataBindings.Clear();
txt_punkt_von.DataBindings.Clear();
txt_punkt_bis.DataBindings.Clear();
txt_strasse.DataBindings.Clear();
txt_hausnummer.DataBindings.Clear();
cb_material.DataBindings.Clear();
txt_haltungslaenge.DataBindings.Clear();
txt_dn.DataBindings.Clear();
txt_pro_nr.DataBindings.Clear();
dt_haltunggemessen_datum.DataBindings.Clear();
txt_bemerkung.DataBindings.Clear();
txt_ort.DataBindings.Clear();
//MessageBox.Show(string.Format("width: {0} height: {1}", width, height));
this.Close();
}
private void btn_add_san_Click(object sender, EventArgs e)
{
//Dongle dongle = new Dongle(103086, 60);
//int mod = dongle.IsLicensed((byte)Sanierungsarten.INLINER) ? (int)Sanierungsarten.INLINER : 0; // (int)Sanierungsarten.INLINER ^ (int)Sanierungsarten.SCHACHTANBINDUNG; // Auslagern zur Dongle
FrmSelectNewSan frmSelectNewSan = new FrmSelectNewSan();
frmSelectNewSan.AddInlinerClicked += FrmSelectNewSan_AddInlinerClicked;
frmSelectNewSan.AddSchachtAnbindungClicked += FrmSelectNewSan_AddSchachtAnbindungClicked;
frmSelectNewSan.ShowDialog();
}
private void FrmSelectNewSan_AddSchachtAnbindungClicked(object sender, EventArgs e)
{
SchachtAnbindung schachtAnbindung = new SchachtAnbindung();
schachtAnbindung.Datum = DateTime.Now;
schachtAnbindung.Inspektionsobjekt = inspektionsobjekt;
inspektionsobjekt.Sanierung.Add(schachtAnbindung);
TabPage tab = new TabPage();
tab.Text = "Schachtanbindung";
UCSchachtanbindung uCSchachtanbindung = new UCSchachtanbindung(schachtAnbindung);
uCSchachtanbindung.Dock = DockStyle.Fill;
tab.Controls.Add(uCSchachtanbindung);
tabControl1.TabPages.Add(tab);
}
private void FrmSelectNewSan_AddInlinerClicked(object sender, EventArgs e)
{
if(inspektionsobjekt.Sanierung.Count > 0)
{
foreach(Sanierung xsan in inspektionsobjekt.Sanierung)
{
if(xsan is InlinerSanierung)
{
MessageBox.Show("Lustig Sie wollen einen Inliner in einem Inliner setzen?", "Lustig", MessageBoxButtons.OK, MessageBoxIcon.Question);
return;
}
}
}
InlinerSanierung san = new InlinerSanierung();
san.Inspektionsobjekt = inspektionsobjekt;
san.Datum = new DateTime(2018, 01, 01, 12, 00, 00);
inspektionsobjekt.Sanierung.Add(san);
TabPage tab = new TabPage();
tab.Text = "InlinerSanierung";
UCInliner uCInliner = new UCInliner(san);
uCInliner.Dock = DockStyle.Fill;
tab.Controls.Add(uCInliner);
tabControl1.TabPages.Add(tab);
}
private void btn_delete_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Wollen Sie diesen Eintrag wirklich Löschen?", "Sind sie Sicher?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
return;
Datenbank.Instance.loadedProjekt.Objekte.Remove(inspektionsobjekt);
this.Close();
}
private void cb_objekname_man_CheckedChanged(object sender, EventArgs e)
{
txt_objekt_name.Enabled = cb_objekname_man.Checked;
}
private void txt_punkt_von_TextChanged(object sender, EventArgs e)
{
if(!cb_objekname_man.Checked)
{
txt_objekt_name.DataBindings.Clear();
inspektionsobjekt.Objektbezeichnung = txt_punkt_von.Text;
txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung"));
}
}
private void dgv_schadenkuerzel_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
#if !DEBUG
return;
#endif
DataGridView dataGridView = (DataGridView)sender;
if (dataGridView == null) return;
DataGridViewSelectedRowCollection dataGridViewRowsSelect = dataGridView.SelectedRows;
if (dataGridViewRowsSelect.Count > 1) return;
DataGridViewRow dgvr = dataGridViewRowsSelect[0];
Inspektionskuerzeln kuerzel = (dgvr.DataBoundItem as Inspektionskuerzeln);
if (kuerzel == null) return;
if (kuerzel.Sanierungskonzepts == null)
kuerzel.Sanierungskonzepts = new SanierungskonzeptCollection();
FrmSanKonzeptList frmSanKonzept = new FrmSanKonzeptList(kuerzel.Sanierungskonzepts);
//frmSanKonzept.MdiParent = this.MdiParent;
frmSanKonzept.ShowDialog();
}
private void Txt_punkt_bis_Leave(object sender, EventArgs e)
{
if (!neu) return;
// Prüfen ob dieser Element bereits vorhanden ist
if (Datenbank.Instance.loadedProjekt.Objekte.Exists(x => x.BisPunkt.Equals(txt_punkt_bis.Text)))
txt_punkt_bis.BackColor = Color.Red;
}
}
}