work on characterlist

This commit is contained in:
Zoe Fenris
2024-06-21 20:05:43 +02:00
parent 181c517ca1
commit f46eab015d
10 changed files with 331 additions and 35 deletions

View File

@@ -29,30 +29,100 @@
private void InitializeComponent()
{
radListView_CharList = new Telerik.WinControls.UI.RadListView();
radMenu1 = new Telerik.WinControls.UI.RadMenu();
radMenuItem_CreateChar = new Telerik.WinControls.UI.RadMenuItem();
radMenuItem_DeleteChar = new Telerik.WinControls.UI.RadMenuItem();
radMenuItem_OpenChar = new Telerik.WinControls.UI.RadMenuItem();
tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
radTextBoxControl1 = new Telerik.WinControls.UI.RadTextBoxControl();
((System.ComponentModel.ISupportInitialize)radListView_CharList).BeginInit();
((System.ComponentModel.ISupportInitialize)radMenu1).BeginInit();
tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)radTextBoxControl1).BeginInit();
SuspendLayout();
//
// radListView_CharList
//
radListView_CharList.Dock = System.Windows.Forms.DockStyle.Fill;
radListView_CharList.Location = new System.Drawing.Point(0, 0);
radListView_CharList.Location = new System.Drawing.Point(3, 31);
radListView_CharList.Name = "radListView_CharList";
radListView_CharList.Size = new System.Drawing.Size(500, 500);
radListView_CharList.Size = new System.Drawing.Size(494, 446);
radListView_CharList.TabIndex = 0;
//
// radMenu1
//
radMenu1.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_CreateChar, radMenuItem_DeleteChar, radMenuItem_OpenChar });
radMenu1.Location = new System.Drawing.Point(0, 0);
radMenu1.Name = "radMenu1";
radMenu1.Size = new System.Drawing.Size(500, 20);
radMenu1.TabIndex = 0;
//
// radMenuItem_CreateChar
//
radMenuItem_CreateChar.Name = "radMenuItem_CreateChar";
radMenuItem_CreateChar.Text = "New";
radMenuItem_CreateChar.Click += RadMenuItem_AddChar_Click;
//
// radMenuItem_DeleteChar
//
radMenuItem_DeleteChar.Name = "radMenuItem_DeleteChar";
radMenuItem_DeleteChar.Text = "Delete";
radMenuItem_DeleteChar.Click += RadMenuItem_DeleteChar_Click;
//
// radMenuItem_OpenChar
//
radMenuItem_OpenChar.Name = "radMenuItem_OpenChar";
radMenuItem_OpenChar.Text = "Open";
radMenuItem_OpenChar.Click += RadMenuItem_OpenChar_Click;
//
// tableLayoutPanel1
//
tableLayoutPanel1.ColumnCount = 1;
tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
tableLayoutPanel1.Controls.Add(radListView_CharList, 0, 1);
tableLayoutPanel1.Controls.Add(radTextBoxControl1, 0, 0);
tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
tableLayoutPanel1.Location = new System.Drawing.Point(0, 20);
tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 2;
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
tableLayoutPanel1.Size = new System.Drawing.Size(500, 480);
tableLayoutPanel1.TabIndex = 1;
//
// radTextBoxControl1
//
radTextBoxControl1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
radTextBoxControl1.Location = new System.Drawing.Point(3, 3);
radTextBoxControl1.Name = "radTextBoxControl1";
radTextBoxControl1.NullText = "Search...";
radTextBoxControl1.Size = new System.Drawing.Size(494, 22);
radTextBoxControl1.TabIndex = 1;
//
// CharacterListControl
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
Controls.Add(radListView_CharList);
Controls.Add(tableLayoutPanel1);
Controls.Add(radMenu1);
Name = "CharacterListControl";
Size = new System.Drawing.Size(500, 500);
((System.ComponentModel.ISupportInitialize)radListView_CharList).EndInit();
((System.ComponentModel.ISupportInitialize)radMenu1).EndInit();
tableLayoutPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)radTextBoxControl1).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion
private Telerik.WinControls.UI.RadListView radListView_CharList;
private Telerik.WinControls.UI.RadMenu radMenu1;
private Telerik.WinControls.UI.RadMenuItem radMenuItem_CreateChar;
private Telerik.WinControls.UI.RadMenuItem radMenuItem_DeleteChar;
private Telerik.WinControls.UI.RadMenuItem radMenuItem_OpenChar;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private Telerik.WinControls.UI.RadTextBoxControl radTextBoxControl1;
}
}

View File

@@ -2,6 +2,7 @@
using OwnChar.App.Desktop.LangRes;
using OwnChar.Model;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Windows.Forms;
using Telerik.WinControls.UI;
@@ -9,16 +10,10 @@ namespace OwnChar.App.Desktop.UI.MainTabs.Controls;
public partial class CharacterListControl : UserControl
{
private IMainWindowApi? mainApi;
private IMainWindowApi mainApi = null!;
private UserProfile? profile;
private Group? group;
public CharacterListControl()
{
InitializeComponent();
}
public void LoadContent(IMainWindowApi mainApi, UserProfile? profile)
{
LoadContent(mainApi, profile, null);
@@ -34,29 +29,28 @@ public partial class CharacterListControl : UserControl
this.mainApi = mainApi;
this.profile = profile;
this.group = group;
InitializeComponent();
PrepareList();
LoadList();
LoadList(group);
}
// Laden aller -eigenen- Charaktere
// Spalte zum Anzeigen der Gruppen-Zugehörigkeit
// Hinzufügen und Löschen von Charakteren
private void PrepareList()
{
radListView_CharList.BeginUpdate();
radListView_CharList.Columns.Clear();
radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharName);
radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharFandom);
if (profile != null)
radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharGroup);
else if (group != null)
radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharOwner);
else if (group != null)
radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharGroup);
radListView_CharList.EndUpdate();
}
private void LoadList()
private void LoadList(Group? group)
{
radListView_CharList.BeginUpdate();
radListView_CharList.Items.Clear();
@@ -82,6 +76,55 @@ public partial class CharacterListControl : UserControl
private void UpdateCharListViewItem(ListViewDataItem listItem, Character character)
{
listItem[0] = character.Name;
listItem[1] = character.Fandom;
if (group != null)
listItem[2] = group.Name;
else
listItem[2] = character.Owner;
}
private Character? GetSelectedChar()
{
return radListView_CharList.SelectedItem?.Value as Character;
}
private void NewChar()
{
if (mainApi.Manager?.Characters.AddCharacter() is Character newChar)
AddCharToList(newChar);
}
private void DelChar()
{
}
private void TryOpenChar(Character? character)
{
if (character != null)
OpenCharTab(character);
}
private void OpenCharTab(Character character)
{
mainApi.OpenTab(new TabCharView(mainApi, character), string.IsNullOrWhiteSpace(character.Name) ? CharListControlLangRes.Tab_UnnamedChar : character.Name);
}
// E V E N T S
private void RadMenuItem_AddChar_Click(object sender, System.EventArgs e)
{
NewChar();
}
private void RadMenuItem_DeleteChar_Click(object sender, System.EventArgs e)
{
DelChar();
}
private void RadMenuItem_OpenChar_Click(object sender, System.EventArgs e)
{
TryOpenChar(GetSelectedChar());
}
}

View File

@@ -28,33 +28,67 @@
/// </summary>
private void InitializeComponent()
{
radPageView_groupView = new Telerik.WinControls.UI.RadPageView();
((System.ComponentModel.ISupportInitialize)radPageView_groupView).BeginInit();
radListView1 = new Telerik.WinControls.UI.RadListView();
radMenuItem1 = new Telerik.WinControls.UI.RadMenuItem();
radMenuItem2 = new Telerik.WinControls.UI.RadMenuItem();
radMenuItem3 = new Telerik.WinControls.UI.RadMenuItem();
radMenu1 = new Telerik.WinControls.UI.RadMenu();
((System.ComponentModel.ISupportInitialize)radListView1).BeginInit();
((System.ComponentModel.ISupportInitialize)radMenu1).BeginInit();
SuspendLayout();
//
// radPageView_groupView
// radListView1
//
radPageView_groupView.Dock = System.Windows.Forms.DockStyle.Fill;
radPageView_groupView.Location = new System.Drawing.Point(0, 0);
radPageView_groupView.Name = "radPageView_groupView";
radPageView_groupView.Size = new System.Drawing.Size(500, 500);
radPageView_groupView.TabIndex = 0;
radPageView_groupView.ViewMode = Telerik.WinControls.UI.PageViewMode.NavigationView;
((Telerik.WinControls.UI.RadPageViewNavigationViewElement)radPageView_groupView.GetChildAt(0)).ExpandedPaneWidth = 175;
radListView1.Dock = System.Windows.Forms.DockStyle.Fill;
radListView1.Location = new System.Drawing.Point(0, 20);
radListView1.Name = "radListView1";
radListView1.Size = new System.Drawing.Size(500, 480);
radListView1.TabIndex = 0;
//
// GroupViewControl
// radMenuItem1
//
radMenuItem1.Name = "radMenuItem1";
radMenuItem1.Text = "New";
radMenuItem1.Click += radMenuItem1_Click;
//
// radMenuItem2
//
radMenuItem2.Name = "radMenuItem2";
radMenuItem2.Text = "Delete";
//
// radMenuItem3
//
radMenuItem3.Name = "radMenuItem3";
radMenuItem3.Text = "Open";
//
// GroupListControl
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
Controls.Add(radPageView_groupView);
Name = "GroupViewControl";
//
// radMenu1
//
radMenu1.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem1, radMenuItem2, radMenuItem3 });
radMenu1.Location = new System.Drawing.Point(0, 0);
radMenu1.Name = "radMenu1";
radMenu1.Size = new System.Drawing.Size(500, 20);
radMenu1.TabIndex = 1;
Controls.Add(radListView1);
Controls.Add(radMenu1);
Name = "GroupListControl";
Size = new System.Drawing.Size(500, 500);
((System.ComponentModel.ISupportInitialize)radPageView_groupView).EndInit();
((System.ComponentModel.ISupportInitialize)radListView1).EndInit();
((System.ComponentModel.ISupportInitialize)radMenu1).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion
private Telerik.WinControls.UI.RadPageView radPageView_groupView;
private Telerik.WinControls.UI.RadListView radListView1;
private Telerik.WinControls.UI.RadMenu radMenu1;
private Telerik.WinControls.UI.RadMenuItem radMenuItem1;
private Telerik.WinControls.UI.RadMenuItem radMenuItem2;
private Telerik.WinControls.UI.RadMenuItem radMenuItem3;
}
}

View File

@@ -9,6 +9,11 @@ public partial class GroupListControl : UserControl
InitializeComponent();
}
private void radMenuItem1_Click(object sender, System.EventArgs e)
{
}
// Auflistung der Gruppen
// Hinzufügen
// Löschen + Umbenennen (Wenn Admin/Mod)