|
@@ -7,6 +7,7 @@ using System.Linq.Expressions;
|
|
|
using System.Windows;
|
|
|
using System.Windows.Controls;
|
|
|
using System.Windows.Media.Imaging;
|
|
|
+using System.Windows.Threading;
|
|
|
using InABox.Clients;
|
|
|
using InABox.Core;
|
|
|
using InABox.Dxf;
|
|
@@ -19,13 +20,13 @@ namespace InABox.DynamicGrid
|
|
|
public class DynamicImagePreviewColumn<T> : DynamicImageColumn
|
|
|
where T : BaseObject
|
|
|
{
|
|
|
-
|
|
|
- private static readonly BitmapImage _preview =Wpf.Resources.doc_png.AsBitmapImage();
|
|
|
+
|
|
|
+ private static readonly BitmapImage _preview = Wpf.Resources.doc_png.AsBitmapImage();
|
|
|
|
|
|
protected static Expression<Func<T, ImageDocumentLink>> Property { get; private set; }
|
|
|
-
|
|
|
+
|
|
|
protected static string ImageIDProperty => Property != null ? CoreUtils.GetFullPropertyName(Property, ".") + ".ID" : "";
|
|
|
-
|
|
|
+
|
|
|
public DynamicImagePreviewColumn(Expression<Func<T, ImageDocumentLink>> property) : base(PreviewImage)
|
|
|
{
|
|
|
Property = property;
|
|
@@ -34,14 +35,14 @@ namespace InABox.DynamicGrid
|
|
|
FilterRecord = DoFilterImages;
|
|
|
ToolTip = CreateImageToolTip;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private static BitmapImage PreviewImage(CoreRow arg)
|
|
|
{
|
|
|
if (arg == null || arg.Get<Guid>(ImageIDProperty) == Guid.Empty)
|
|
|
return null;
|
|
|
return _preview;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
protected Bitmap LoadBitmapFromDatabase(Guid imageid)
|
|
|
{
|
|
|
if (imageid == Guid.Empty)
|
|
@@ -59,7 +60,7 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private FrameworkElement CreateImageToolTip(DynamicActionColumn column, CoreRow arg)
|
|
|
{
|
|
|
FrameworkElement result = null;
|
|
@@ -73,7 +74,7 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private bool DoFilterImages(CoreRow row, string[] filter)
|
|
|
{
|
|
|
var hasimage = row.Get<Guid>(ImageIDProperty) != Guid.Empty;
|
|
@@ -84,7 +85,7 @@ namespace InABox.DynamicGrid
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public class DynamicImageManagerColumn<T> : DynamicImagePreviewColumn<T>
|
|
|
where T : Entity, IRemotable, IPersistent, new()
|
|
|
{
|
|
@@ -93,7 +94,7 @@ namespace InABox.DynamicGrid
|
|
|
private readonly bool _canupdate;
|
|
|
|
|
|
private readonly IDynamicGrid _parent;
|
|
|
-
|
|
|
+
|
|
|
private static string _imagefilename => Property != null ? CoreUtils.GetFullPropertyName(Property, ".") + ".FileName" : "";
|
|
|
|
|
|
public DynamicImageManagerColumn(IDynamicGrid parent, Expression<Func<T, ImageDocumentLink>> property, bool canupdate) : base(property)
|
|
@@ -102,7 +103,7 @@ namespace InABox.DynamicGrid
|
|
|
_canupdate = canupdate;
|
|
|
ContextMenu = CreateImageMenu;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private MenuItem CreateMenu(string caption, RoutedEventHandler click)
|
|
|
{
|
|
|
var item = new MenuItem();
|
|
@@ -110,7 +111,7 @@ namespace InABox.DynamicGrid
|
|
|
item.Click += click;
|
|
|
return item;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private void SaveBitmapToDatabase(CoreRow row, Guid id, string filename, Bitmap bitmap)
|
|
|
{
|
|
|
var docid = id;
|
|
@@ -195,7 +196,13 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
Bitmap bmp = null;
|
|
|
if (Path.GetExtension(filename).ToLower().Equals(".dxf"))
|
|
|
+ {
|
|
|
+ DxfUtils.OnProcessError += ((message) =>
|
|
|
+ {
|
|
|
+ MessageBox.Show("Error - " + message);
|
|
|
+ });
|
|
|
bmp = DxfUtils.DXFToBitmap(filename);
|
|
|
+ }
|
|
|
else
|
|
|
bmp = System.Drawing.Image.FromFile(filename) as Bitmap;
|
|
|
|