SCCManager/Remontor/Finder/Finder.cs

128 lines
4.8 KiB
C#

using Remontor.Connector;
using Remontor.Seacher;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Remontor.Finder
{
internal partial class Finder : Form
{
private SessionItemControl SelectedItem;
private bool StopRefreshSeacher = false;
private int PreSelected = -1;
public Finder()
{
InitializeComponent();
}
private void ConnectBtn_Click(object sender, EventArgs e)
{
SConnector.NewConnect(new CompId(CompNameLB.Text));
this.Close();
}
private void CompNameLB_TextChanged(object sender, EventArgs e)
{
if (sender is TextBox && !StopRefreshSeacher)
{
TextBox textBox = (TextBox)sender;
SSeaher.seaherMetod.Change(cb_comp_ResultUpdate, textBox.Text);
// CompSelected = null;
// ListComp.Visible = true;
}
}
public void cb_comp_ResultUpdate(List<ISeacherResult> Items)
{
PreSelected = -1;
SelectedItem = null;
SeaherPanel.Controls.Clear();
int countItem = 0;
foreach (ISeacherResult item in Items)
{
SessionItemControl itemControl = new SessionItemControl(item, UpdateActiv, countItem++);
SeaherPanel.Controls.Add(itemControl);
}
}
private void UpdateActiv(SessionItemControl sessionItem)
{
if(SelectedItem != null) SelectedItem.SelectActiv(null);
if(PreSelected > -1)((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null);
SelectedItem = sessionItem;
PreSelected = sessionItem.SelectActiv(sessionItem);
StopRefreshSeacher = true;
CompNameLB.Focus();
CompNameLB.Text = sessionItem.seacherResult.ResultString();
CompNameLB.Select(CompNameLB.Text.Length, 0);
StopRefreshSeacher = false;
}
private void CompNameLB_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
if (PreSelected < SeaherPanel.Controls.Count - 1)
{
SelectedItem = null;
if (PreSelected > -1) ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null);
++PreSelected;
SeaherPanel.ScrollControlIntoView(SeaherPanel.Controls[PreSelected]);
((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]);
}
e.SuppressKeyPress = true;
break;
case 38:
if (PreSelected > 0)
{
SelectedItem = null;
if (PreSelected > -1) ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null);
--PreSelected;
SeaherPanel.ScrollControlIntoView(SeaherPanel.Controls[PreSelected]);
((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]);
}
e.SuppressKeyPress = true;
//ListComp.Refresh();
break;
case 13:
if ((SessionItemControl)SeaherPanel.Controls[PreSelected] == SelectedItem)
{
//bt_reset_Click(null, null);
break;
}
if (PreSelected >= 0)
{
if (SelectedItem != null) SelectedItem.SelectActiv(null);
SelectedItem = (SessionItemControl)SeaherPanel.Controls[PreSelected];
((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]);
StopRefreshSeacher = true;
CompNameLB.Focus();
CompNameLB.Text = ((SessionItemControl)SeaherPanel.Controls[PreSelected]).seacherResult.ResultString();
CompNameLB.Select(CompNameLB.Text.Length, 0);
StopRefreshSeacher = false;
e.SuppressKeyPress = true;
}
break;
}
}
}
}