using System.Drawing;
using System.Windows.Forms;
using System;
using dwf.tool;
namespace dwf.gui
{
public class CellEditorImage : CellEditorText
{
public CellEditorImage()
: base()
{
//Color r = Color.FromArgb((int)123);
}
protected override void OnControlValueChanged(object sender, EventArgs e)
{
base.OnControlValueChanged(sender, e);
control.Image = FormatValue(control.Value) as Image;
}
public override object ParseValue(object obj, object dataSource, Type valueType)
{
return base.ParseValue(obj, dataSource, valueType);
}
public override object FormatValue(object obj, object dataSource, Type valueType)
{
if (obj == null)
return null;
else if (obj is Image)
return obj;
else if (obj is Icon)
return obj;
else
return base.FormatValue(obj, dataSource, valueType);
}
public override void InitializeEditControl(IPEditor ccontrol, object obj, object dataSource, Type valueType, bool readOnly)
{
base.InitializeEditControl(ccontrol, obj, dataSource, valueType, readOnly);
// = null;// control.GetCacheControl<PictureBox>("PictureBox");
//((PictureBox)control.EditControl).Image = FormatValue(obj) as Image;
control.Image = FormatValue(obj, dataSource, valueType) as Image;
if (_listDataSource == null)
{
tool.Target = control.GetCacheControl<ImageEditor>("ImageEditor");
((ImageEditor)tool.Target).Image = FormatValue(obj, dataSource, valueType) as Image;
((ImageEditor)tool.Target).FormClosing += new FormClosingEventHandler(OnImageFormClosing);
}
}
protected virtual void OnImageFormClosing(object sender, FormClosingEventArgs e)
{
if (((ImageEditor)tool.Target).DialogResult == DialogResult.OK)
{
control.Value = ParseValue(((ImageEditor)tool.Target).Image, item, type);
control.Parent.Invalidate();
//((PictureBox)_control.EditControl).Image = _control.Value as Image;
}
}
public override void FreeEditControl()
{
if (tool.Target is ImageEditor)
{
((ImageEditor)tool.Target).FormClosing -= new FormClosingEventHandler(OnImageFormClosing);
((ImageEditor)tool.Target).DialogResult = DialogResult.None;
}
base.FreeEditControl();
}
}
}