Straßenliste speichert nun die einstellung
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Database;
|
||||
using KlassenBIB;
|
||||
using SanSystem.Einstellungen;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -18,7 +19,7 @@ namespace SanSystem
|
||||
/// </summary>
|
||||
public partial class frmStrassenList : Form
|
||||
{
|
||||
BindingSource bs = new BindingSource();
|
||||
StreetListSettings streetListSetting = new StreetListSettings();
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -34,57 +35,95 @@ namespace SanSystem
|
||||
|
||||
private void buildStreetList()
|
||||
{
|
||||
lst_strassen.DataSource = null;
|
||||
trv_street.Nodes.Clear();
|
||||
if (Datenbank.Instance.loadedProjekt == null) return;
|
||||
rdbtn_ort.Enabled = mehrereOrteAktiv();
|
||||
if (!mehrereOrteAktiv()) rdbtn_street.Checked = true;
|
||||
|
||||
if (rdbtn_street.Checked) buildUnsortedStreetList();
|
||||
if (rdbtn_ort.Checked) buildSortedSteetList();
|
||||
}
|
||||
|
||||
private void buildSortedSteetList()
|
||||
{
|
||||
List<string> ortteile = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.OrtName).Distinct().ToList();
|
||||
foreach(string ort in ortteile)
|
||||
{
|
||||
List<string> strassen = Datenbank.Instance.loadedProjekt.Objekte.Where(y => y.OrtName.Equals(ort)).Select(x => x.StrasseName).Distinct().ToList();
|
||||
TreeNode[] streetnodes = new TreeNode[strassen.Count];
|
||||
for(int i = 0; i < strassen.Count; i++)
|
||||
{
|
||||
streetnodes[i] = new TreeNode();
|
||||
Tuple<int, int> x = getStatikFromStreet(strassen[i]);
|
||||
streetnodes[i].Text = string.Format("{0} ({1} / {2})", strassen[i], x.Item1, x.Item2);
|
||||
streetnodes[i].Tag = strassen[i];
|
||||
}
|
||||
|
||||
TreeNode node = new TreeNode(ort, streetnodes);
|
||||
trv_street.Nodes.Add(node);
|
||||
}
|
||||
}
|
||||
|
||||
private Tuple<int,int> getStatikFromStreet(string strassename)
|
||||
{
|
||||
IEnumerable<KlassenBIB.Inspektionsobjekt> objekte = Datenbank.Instance.loadedProjekt.Objekte.Where(x => x.StrasseName.Equals(strassename));
|
||||
int counter = 0;
|
||||
foreach (var objekt in objekte)
|
||||
{
|
||||
bool fertig = false;
|
||||
foreach (var x in objekt.Sanierung)
|
||||
{
|
||||
AbstractSanieren abstractSanieren = (AbstractSanieren)x;
|
||||
if (abstractSanieren.Fertig == true)
|
||||
{
|
||||
fertig = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
fertig = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (fertig)
|
||||
{
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return new Tuple<int, int>(objekte.Count(), counter);
|
||||
}
|
||||
|
||||
private void buildUnsortedStreetList()
|
||||
{
|
||||
List<string> strassen = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.StrasseName).Distinct().ToList();
|
||||
List<string> streets = new List<string>();
|
||||
List<StrassenContent> strassenContents = new List<StrassenContent>();
|
||||
|
||||
foreach (string strassename in strassen)
|
||||
{
|
||||
string streetname = string.Empty;
|
||||
//Anzahl gesamt objekte
|
||||
IEnumerable<KlassenBIB.Inspektionsobjekt> objekte = Datenbank.Instance.loadedProjekt.Objekte.Where(x => x.StrasseName.Equals(strassename));
|
||||
int counter = 0;
|
||||
foreach(var objekt in objekte)
|
||||
{
|
||||
bool fertig = false;
|
||||
foreach(var x in objekt.Sanierung)
|
||||
{
|
||||
AbstractSanieren abstractSanieren = (AbstractSanieren)x;
|
||||
if(abstractSanieren.Fertig == true)
|
||||
{
|
||||
fertig = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
fertig = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(fertig)
|
||||
{
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
Tuple<int, int> x = getStatikFromStreet(strassename);
|
||||
|
||||
//Debugger.Break();
|
||||
strassenContents.Add(new StrassenContent()
|
||||
trv_street.Nodes.Add(new TreeNode()
|
||||
{
|
||||
Strassename = strassename,
|
||||
AnzahlObjekte = objekte.Count(),
|
||||
AnzahlFertig = counter
|
||||
}) ;
|
||||
Text = string.Format("{0} ({1} / {2})", strassename, x.Item1, x.Item2),
|
||||
Tag = strassename
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
lst_strassen.DataSource = strassenContents;
|
||||
}
|
||||
|
||||
private void frmStrassenList_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.Height = this.MdiParent.Height - 120;
|
||||
if(streetListSetting.SortedSelected())
|
||||
{
|
||||
rdbtn_street.Checked = false;
|
||||
rdbtn_ort.Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
rdbtn_street.Checked = true;
|
||||
rdbtn_ort.Checked = false;
|
||||
}
|
||||
buildStreetList();
|
||||
btn_add.Text = Global.Instance.language.Labels["add_objekt"];
|
||||
}
|
||||
@@ -101,23 +140,41 @@ namespace SanSystem
|
||||
frmObjektEdit.Show();
|
||||
}
|
||||
|
||||
private void lst_strassen_DoubleClick(object sender, EventArgs e)
|
||||
|
||||
private void FrmObjekt_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if ((sender as ListBox).SelectedItem == null) return;
|
||||
StrassenContent selectedStreetName = ((sender as ListBox).SelectedItem as StrassenContent);
|
||||
//Debugger.Break();
|
||||
if (selectedStreetName == null) return;
|
||||
buildStreetList();
|
||||
}
|
||||
|
||||
frmObjekteList frmObjekteList = new frmObjekteList(selectedStreetName.Strassename);
|
||||
private void trv_street_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
if ((sender as TreeView).SelectedNode == null) return;
|
||||
string selectedStreetName = (string)(sender as TreeView).SelectedNode.Tag;
|
||||
if (selectedStreetName.Equals("")) return;
|
||||
|
||||
frmObjekteList frmObjekteList = new frmObjekteList(selectedStreetName);
|
||||
frmObjekteList.MdiParent = this.MdiParent;
|
||||
frmObjekteList.FormClosed += FrmObjekt_FormClosed;
|
||||
frmObjekteList.Show();
|
||||
}
|
||||
|
||||
private void FrmObjekt_FormClosed(object sender, FormClosedEventArgs e)
|
||||
private void rdbtn_street_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (rdbtn_ort.Checked)
|
||||
{
|
||||
streetListSetting.SetRadioButton("Sorted");
|
||||
}
|
||||
else if (rdbtn_street.Checked)
|
||||
{
|
||||
streetListSetting.SetRadioButton("Unsorted");
|
||||
}
|
||||
buildStreetList();
|
||||
}
|
||||
|
||||
private void frmStrassenList_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
streetListSetting.SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user