mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-28 16:55:32 +00:00
173 lines
5.2 KiB
C#
173 lines
5.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Linq;
|
|
|
|
namespace HaInformator
|
|
{
|
|
public class AttrValSelection
|
|
{
|
|
private static ListBox _attrLView;
|
|
private static ListBox _valLView;
|
|
private static GroupBox _gBox;
|
|
|
|
private static ContextMenuSelection _cMenuSelection;
|
|
|
|
private static SelectionState _state;
|
|
private static AttributeTree _currAttributeTree;
|
|
|
|
public AttrValSelection(ListBox attrLView,
|
|
ListBox valLview,
|
|
GroupBox gBox,
|
|
ContextMenuSelection contextMenuSelection)
|
|
{
|
|
_attrLView = attrLView;
|
|
_valLView = valLview;
|
|
_gBox = gBox;
|
|
_cMenuSelection = contextMenuSelection;
|
|
|
|
_attrLView.MouseDown += new MouseEventHandler(_attrLView_Select);
|
|
_valLView.MouseDown += new MouseEventHandler(_valLView_Select);
|
|
|
|
_cMenuSelection.aNewBtn_Click =_aAddAttributeBtn_Click;
|
|
_cMenuSelection.aEditBtn_Click = _aEditBtn_Click;
|
|
_cMenuSelection.aDeleteBtn_Click = _aDeleteBtn_Click;
|
|
|
|
_cMenuSelection.vEditBtn_Click = _vEditBtn_Click;
|
|
}
|
|
|
|
private void _aAddAttributeBtn_Click(object sender, EventArgs e)
|
|
{
|
|
AddAttribute();
|
|
}
|
|
|
|
public void AddAttribute()
|
|
{
|
|
var str = "name";
|
|
var value = "wert";
|
|
if (_cMenuSelection.ShowDoubleInputDialog(ref str, ref value) == DialogResult.OK)
|
|
_state.AddAttribute(str, value);
|
|
Load(_state);
|
|
}
|
|
|
|
private void _aEditBtn_Click(object sender, EventArgs e)
|
|
{
|
|
EditAttribute();
|
|
}
|
|
|
|
private void EditAttribute()
|
|
{
|
|
var str = (String)_attrLView.SelectedItem;
|
|
if (_cMenuSelection.ShowInputDialog(ref str) == DialogResult.OK)
|
|
_state.EditAttribute((String)_attrLView.SelectedItem, str);
|
|
Load(_state);
|
|
}
|
|
|
|
private void _vEditBtn_Click(object sender, EventArgs e)
|
|
{
|
|
EditValue();
|
|
}
|
|
|
|
private void EditValue()
|
|
{
|
|
var str = (String)_valLView.SelectedItem;
|
|
if (_cMenuSelection.ShowInputDialog(ref str) == DialogResult.OK)
|
|
_state.EditValue((String)_attrLView.SelectedItem, (String)_valLView.SelectedItem, str);
|
|
Load(_state);
|
|
}
|
|
|
|
private void _aDeleteBtn_Click(object sender, EventArgs e)
|
|
{
|
|
RemoveAttribute();
|
|
}
|
|
|
|
private void RemoveAttribute()
|
|
{
|
|
_state.RemoveAttribute((string)_attrLView.SelectedItem);
|
|
Load(_state);
|
|
}
|
|
|
|
private void _attrLView_Select(object sender, MouseEventArgs e)
|
|
{
|
|
var node = _attrLView.IndexFromPoint(new System.Drawing.Point(e.X, e.Y));
|
|
|
|
if (node == -1)
|
|
{
|
|
_valLView.Items.Clear();
|
|
return;
|
|
}
|
|
else
|
|
_attrLView.SelectedIndex = node;
|
|
|
|
_update_valLView();
|
|
|
|
if (e.Button == MouseButtons.Right)
|
|
_attrLView.ContextMenuStrip = _cMenuSelection.Open(cMenuState.aView);
|
|
}
|
|
|
|
private void _valLView_Select(object sender, MouseEventArgs e)
|
|
{
|
|
var node = _valLView.IndexFromPoint(new System.Drawing.Point(e.X, e.Y));
|
|
|
|
if (node == null || node == -1)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
_valLView.SelectedIndex = node;
|
|
|
|
|
|
if (e.Button == MouseButtons.Right && _valLView.Items.Count > 0)
|
|
_valLView.ContextMenuStrip = _cMenuSelection.Open(cMenuState.vView);
|
|
}
|
|
|
|
public void Load(SelectionState state, string description = "")
|
|
{
|
|
_state = state;
|
|
_currAttributeTree = _state.GetAttributeTree();
|
|
if (!String.IsNullOrWhiteSpace(description))
|
|
_gBox.Text = description;
|
|
_draw();
|
|
}
|
|
|
|
private void _draw()
|
|
{
|
|
_update_attrLView();
|
|
_update_valLView();
|
|
}
|
|
|
|
private void _update_attrLView()
|
|
{
|
|
_attrLView.Items.Clear();
|
|
if (_currAttributeTree != null && _currAttributeTree.Any())
|
|
_attrLView.Items.AddRange(_currAttributeTree.Keys());
|
|
if (_attrLView.Items.Count > 0)
|
|
{
|
|
_attrLView.Enabled = true;
|
|
_attrLView.SelectedIndex = 0;
|
|
}
|
|
else
|
|
_attrLView.Enabled = false;
|
|
_attrLView.Update();
|
|
}
|
|
|
|
private void _update_valLView()
|
|
{
|
|
_valLView.Items.Clear();
|
|
if (_currAttributeTree != null && _attrLView.Items.Count > 0)
|
|
_valLView.Items.AddRange(_currAttributeTree.GetValue((String)_attrLView.SelectedItem).Keys.ToArray());
|
|
if (_valLView.Items.Count > 0)
|
|
{
|
|
_valLView.Enabled = true;
|
|
}
|
|
else
|
|
_valLView.Enabled = false;
|
|
_valLView.Update();
|
|
}
|
|
}
|
|
}
|