diff --git a/SanSystem/Einstellungen/ObjecteListSetting.cs b/SanSystem/Einstellungen/ObjecteListSetting.cs
index 60f329b..99e4147 100644
--- a/SanSystem/Einstellungen/ObjecteListSetting.cs
+++ b/SanSystem/Einstellungen/ObjecteListSetting.cs
@@ -11,7 +11,7 @@ namespace SanSystem.Einstellungen
{
public ObjecteListSetting() : base("ObjecteList") { }
- public override int GetWidth(DataGridViewColumn dataGridViewColumn)
+ public int GetWidth(DataGridViewColumn dataGridViewColumn)
{
int result = -1;
@@ -26,7 +26,7 @@ namespace SanSystem.Einstellungen
return result;
}
- public override void SetWidth(DataGridViewColumn dataGridViewColumn)
+ public void SetWidth(DataGridViewColumn dataGridViewColumn)
{
setConfig(dataGridViewColumn.HeaderText, dataGridViewColumn.Width);
}
diff --git a/SanSystem/Einstellungen/Settings.cs b/SanSystem/Einstellungen/Settings.cs
index d6b6a42..da930c7 100644
--- a/SanSystem/Einstellungen/Settings.cs
+++ b/SanSystem/Einstellungen/Settings.cs
@@ -59,8 +59,8 @@ namespace SanSystem.Einstellungen
}
public abstract void InitDevValues();
- public abstract int GetWidth(DataGridViewColumn dataGridViewColumn);
- public abstract void SetWidth(DataGridViewColumn dataGridViewColumn);
+ //public abstract int GetWidth(DataGridViewColumn dataGridViewColumn);
+ //public abstract void SetWidth(DataGridViewColumn dataGridViewColumn);
public virtual void SaveSettings()
{
diff --git a/SanSystem/Einstellungen/StreetListSettings.cs b/SanSystem/Einstellungen/StreetListSettings.cs
new file mode 100644
index 0000000..fbdf13a
--- /dev/null
+++ b/SanSystem/Einstellungen/StreetListSettings.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SanSystem.Einstellungen
+{
+ class StreetListSettings : Settings
+ {
+ public StreetListSettings() : base("StreetList")
+ {
+ }
+
+ public void SetRadioButton(string what)
+ {
+ if (what.Equals("Sorted"))
+ setConfig("ort_selected", 1);
+ else
+ setConfig("ort_selected", 0);
+ }
+
+ public bool SortedSelected()
+ {
+ return (getConfiguration("ort_selected") > 0);
+ }
+
+ public override void InitDevValues()
+ {
+ configuration.Add("ort_selected", 0);
+ }
+ }
+}
diff --git a/SanSystem/SanSystem.csproj b/SanSystem/SanSystem.csproj
index 946ad01..5ae5400 100644
--- a/SanSystem/SanSystem.csproj
+++ b/SanSystem/SanSystem.csproj
@@ -116,6 +116,7 @@
+
Form
@@ -235,7 +236,6 @@
-
UserControl
diff --git a/SanSystem/StrassenContent.cs b/SanSystem/StrassenContent.cs
deleted file mode 100644
index 6b58362..0000000
--- a/SanSystem/StrassenContent.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace SanSystem
-{
- class StrassenContent
- {
- public string Strassename;
- public int AnzahlObjekte;
- public int AnzahlFertig;
-
- public override string ToString()
- {
- return string.Format("{0} ({1} / {2})", Strassename, AnzahlFertig, AnzahlObjekte);
- }
- }
-
-}
diff --git a/SanSystem/frmStrassenList.Designer.cs b/SanSystem/frmStrassenList.Designer.cs
index 8cfa24e..7562193 100644
--- a/SanSystem/frmStrassenList.Designer.cs
+++ b/SanSystem/frmStrassenList.Designer.cs
@@ -28,35 +28,22 @@
///
private void InitializeComponent()
{
- this.lst_strassen = new System.Windows.Forms.ListBox();
this.btn_add = new System.Windows.Forms.Button();
this.rdbtn_street = new System.Windows.Forms.RadioButton();
this.rdbtn_ort = new System.Windows.Forms.RadioButton();
+ this.trv_street = new System.Windows.Forms.TreeView();
this.SuspendLayout();
//
- // lst_strassen
- //
- this.lst_strassen.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.lst_strassen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lst_strassen.FormattingEnabled = true;
- this.lst_strassen.ItemHeight = 20;
- this.lst_strassen.Location = new System.Drawing.Point(12, 130);
- this.lst_strassen.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.lst_strassen.Name = "lst_strassen";
- this.lst_strassen.Size = new System.Drawing.Size(190, 424);
- this.lst_strassen.TabIndex = 0;
- this.lst_strassen.DoubleClick += new System.EventHandler(this.lst_strassen_DoubleClick);
- //
// btn_add
//
+ this.btn_add.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.btn_add.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_add.Image = global::SanSystem.Properties.Resources.Add1;
this.btn_add.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btn_add.Location = new System.Drawing.Point(12, 12);
this.btn_add.Name = "btn_add";
- this.btn_add.Size = new System.Drawing.Size(188, 82);
+ this.btn_add.Size = new System.Drawing.Size(262, 82);
this.btn_add.TabIndex = 1;
this.btn_add.Text = "Neues \r\nObjekt hinzufügen";
this.btn_add.UseVisualStyleBackColor = true;
@@ -65,38 +52,55 @@
// rdbtn_street
//
this.rdbtn_street.AutoSize = true;
- this.rdbtn_street.Location = new System.Drawing.Point(19, 107);
+ this.rdbtn_street.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rdbtn_street.Location = new System.Drawing.Point(19, 109);
this.rdbtn_street.Name = "rdbtn_street";
- this.rdbtn_street.Size = new System.Drawing.Size(80, 17);
+ this.rdbtn_street.Size = new System.Drawing.Size(113, 24);
this.rdbtn_street.TabIndex = 2;
this.rdbtn_street.TabStop = true;
this.rdbtn_street.Text = "Straßenliste";
this.rdbtn_street.UseVisualStyleBackColor = true;
+ this.rdbtn_street.CheckedChanged += new System.EventHandler(this.rdbtn_street_CheckedChanged);
//
// rdbtn_ort
//
this.rdbtn_ort.AutoSize = true;
- this.rdbtn_ort.Location = new System.Drawing.Point(110, 107);
+ this.rdbtn_ort.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rdbtn_ort.Location = new System.Drawing.Point(138, 109);
this.rdbtn_ort.Name = "rdbtn_ort";
- this.rdbtn_ort.Size = new System.Drawing.Size(63, 17);
+ this.rdbtn_ort.Size = new System.Drawing.Size(86, 24);
this.rdbtn_ort.TabIndex = 3;
this.rdbtn_ort.TabStop = true;
this.rdbtn_ort.Text = "Ortsteile";
this.rdbtn_ort.UseVisualStyleBackColor = true;
+ this.rdbtn_ort.CheckedChanged += new System.EventHandler(this.rdbtn_street_CheckedChanged);
+ //
+ // trv_street
+ //
+ this.trv_street.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.trv_street.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.trv_street.Location = new System.Drawing.Point(12, 139);
+ this.trv_street.Name = "trv_street";
+ this.trv_street.Size = new System.Drawing.Size(263, 415);
+ this.trv_street.TabIndex = 4;
+ this.trv_street.DoubleClick += new System.EventHandler(this.trv_street_DoubleClick);
//
// frmStrassenList
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(212, 565);
+ this.ClientSize = new System.Drawing.Size(288, 565);
this.ControlBox = false;
+ this.Controls.Add(this.trv_street);
this.Controls.Add(this.rdbtn_ort);
this.Controls.Add(this.rdbtn_street);
this.Controls.Add(this.btn_add);
- this.Controls.Add(this.lst_strassen);
- this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+ this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "frmStrassenList";
this.Text = "Strassen";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmStrassenList_FormClosing);
this.Load += new System.EventHandler(this.frmStrassenList_Load);
this.ResumeLayout(false);
this.PerformLayout();
@@ -104,10 +108,9 @@
}
#endregion
-
- private System.Windows.Forms.ListBox lst_strassen;
private System.Windows.Forms.Button btn_add;
private System.Windows.Forms.RadioButton rdbtn_street;
private System.Windows.Forms.RadioButton rdbtn_ort;
+ private System.Windows.Forms.TreeView trv_street;
}
}
\ No newline at end of file
diff --git a/SanSystem/frmStrassenList.cs b/SanSystem/frmStrassenList.cs
index 1a19d80..bb7537a 100644
--- a/SanSystem/frmStrassenList.cs
+++ b/SanSystem/frmStrassenList.cs
@@ -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
///
public partial class frmStrassenList : Form
{
- BindingSource bs = new BindingSource();
+ StreetListSettings streetListSetting = new StreetListSettings();
///
///
///
@@ -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 ortteile = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.OrtName).Distinct().ToList();
+ foreach(string ort in ortteile)
+ {
+ List 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 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 getStatikFromStreet(string strassename)
+ {
+ IEnumerable 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(objekte.Count(), counter);
+ }
+
+ private void buildUnsortedStreetList()
+ {
List strassen = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.StrasseName).Distinct().ToList();
List streets = new List();
- List strassenContents = new List();
+
foreach (string strassename in strassen)
{
string streetname = string.Empty;
- //Anzahl gesamt objekte
- IEnumerable 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 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();
+ }
}
}