Straßenliste speichert nun die einstellung

This commit is contained in:
HuskyTeufel
2021-04-09 21:40:56 +02:00
parent 88323fcd29
commit a2192323bc
7 changed files with 166 additions and 88 deletions

View File

@@ -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);
}

View File

@@ -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()
{

View File

@@ -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);
}
}
}

View File

@@ -116,6 +116,7 @@
<Compile Include="Dongle.cs" />
<Compile Include="Einstellungen\ObjecteListSetting.cs" />
<Compile Include="Einstellungen\Settings.cs" />
<Compile Include="Einstellungen\StreetListSettings.cs" />
<Compile Include="frmAuftraggeberEdit.cs">
<SubType>Form</SubType>
</Compile>
@@ -235,7 +236,6 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Sanierungsarten.cs" />
<Compile Include="StrassenContent.cs" />
<Compile Include="UCInliner.cs">
<SubType>UserControl</SubType>
</Compile>

View File

@@ -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);
}
}
}

View File

@@ -28,35 +28,22 @@
/// </summary>
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;
}
}

View File

@@ -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)
{
if ((sender as ListBox).SelectedItem == null) return;
StrassenContent selectedStreetName = ((sender as ListBox).SelectedItem as StrassenContent);
//Debugger.Break();
if (selectedStreetName == null) return;
frmObjekteList frmObjekteList = new frmObjekteList(selectedStreetName.Strassename);
frmObjekteList.MdiParent = this.MdiParent;
frmObjekteList.FormClosed += FrmObjekt_FormClosed;
frmObjekteList.Show();
}
private void FrmObjekt_FormClosed(object sender, FormClosedEventArgs e)
{
buildStreetList();
}
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 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();
}
}
}