|
/*
* This file is licensed under the Code Project CPOL License
* http://www.codeproject.com/info/cpol10.aspx
*
* � Steffen Sch�tte 2008
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace de.steffenschuette.UITest.Framework
{
/// <summary>
/// Encapsulates weak references to an UI element and it's owning form.
/// </summary>
public class UIElementInfo
{
private string elementId;
private WeakReference element;
/// <summary>
/// Gets the weak reference to the UI element.
/// </summary>
/// <value>The item.</value>
public object Element
{
get
{
if (element.IsAlive)
{
return element.Target;
}
else
{
throw new Exception("Element '" + elementId + "' is no longer alive!");
}
}
}
private WeakReference owningForm;
/// <summary>
/// Gets or sets the owner. Used to invoke the item on it.
/// </summary>
/// <value>The owner.</value>
public object OwningForm
{
get
{
if (owningForm.IsAlive)
{
return owningForm.Target;
}
else
{
throw new Exception("Owning form of element '" + elementId + "' is no longer alive!");
}
}
set { owningForm = new WeakReference(value, false); }
}
public UIElementInfo(object item, string elementId)
{
this.elementId = elementId;
this.element = new WeakReference(item, false);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.