92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
using System.Data;
 | 
						|
using System.Text;
 | 
						|
using System.Windows.Forms;
 | 
						|
using VEPROMS.CSLA.Library;
 | 
						|
 | 
						|
namespace Volian.Controls.Library
 | 
						|
{
 | 
						|
	public partial class AnnotationSearch : UserControl
 | 
						|
	{
 | 
						|
		#region Properties
 | 
						|
		private AnnotationDetails _AnnotationDetails = null;
 | 
						|
 | 
						|
		private bool _LoadingList = false;
 | 
						|
		public bool LoadingList
 | 
						|
		{
 | 
						|
			get { return _LoadingList; }
 | 
						|
			set { _LoadingList = value; }
 | 
						|
		}
 | 
						|
 | 
						|
		private DisplayTabControl _TabControl;
 | 
						|
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region Constructors
 | 
						|
		public AnnotationSearch()
 | 
						|
		{
 | 
						|
			InitializeComponent();
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region Events
 | 
						|
		private void cbAnnoType_SelectedValueChanged(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
            UpdateAnnotationSearchResults();
 | 
						|
		}
 | 
						|
 | 
						|
        private void lbResults_SelectedValueChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!_LoadingList)
 | 
						|
            {
 | 
						|
                _AnnotationDetails.CurrentAnnotation = lbResults.SelectedValue as AnnotationInfo;
 | 
						|
                if (_AnnotationDetails.CurrentAnnotation != null)
 | 
						|
                    _TabControl.OpenItem(_AnnotationDetails.CurrentAnnotation.MyItem); // open the corresponding procedure text
 | 
						|
                _AnnotationDetails.FindCurrentAnnotation(); // position to corresponding row in annotation grid
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private int LastResultsMouseOverIndex = -1;
 | 
						|
        private void lbResults_MouseMove(object sender, MouseEventArgs e)
 | 
						|
        {
 | 
						|
            int ResultsMouseOverIndex = lbResults.IndexFromPoint(e.Location);
 | 
						|
            if (ResultsMouseOverIndex != -1 && ResultsMouseOverIndex != LastResultsMouseOverIndex)
 | 
						|
            {
 | 
						|
                AnnotationInfo ai = lbResults.Items[ResultsMouseOverIndex] as AnnotationInfo;
 | 
						|
                toolTip1.SetToolTip(lbResults, ai.MyItem.Path); // display location of corresponding procedure text in a tooltip
 | 
						|
                LastResultsMouseOverIndex = ResultsMouseOverIndex;
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region LoadControlData
 | 
						|
		public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc)
 | 
						|
	{
 | 
						|
			_AnnotationDetails = annotationDetails;
 | 
						|
			cbAnnoType.DisplayMember = "Name";
 | 
						|
			cbAnnoType.DataSource = AnnotationTypeInfoList.Get();
 | 
						|
            lbResults.MouseMove += new MouseEventHandler(lbResults_MouseMove);
 | 
						|
			_TabControl = tc;
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region VariousSupportMethods
 | 
						|
        public void UpdateAnnotationSearchResults()
 | 
						|
        {
 | 
						|
            AnnotationTypeInfo ati = cbAnnoType.SelectedValue as AnnotationTypeInfo;
 | 
						|
            _LoadingList = true;
 | 
						|
            lbResults.DisplayMember = "SearchText";
 | 
						|
            lbResults.DataSource = ati.AnnotationTypeAnnotations;
 | 
						|
            lbResults.SelectedIndex = -1;
 | 
						|
            LastResultsMouseOverIndex = -1;
 | 
						|
            _LoadingList = false;
 | 
						|
        }
 | 
						|
		#endregion
 | 
						|
 | 
						|
	}
 | 
						|
}
 |