public static void Open(Zetbox.App.GUI.Icon obj) { if (obj.Blob != null) { obj.Blob.Open(); } }
public static void preSet_Blob(Zetbox.App.GUI.Icon obj, PropertyPreSetterEventArgs <Zetbox.App.Base.Blob> e) { // Delete old blob if (e.OldValue != null && e.OldValue != e.NewValue) { obj.Context.Delete(e.OldValue); } e.Result = e.NewValue; }
public static void Upload(Zetbox.App.GUI.Icon obj) { // UI Code in Custom Actions! // ASP.NET would have a big Problem with that function string path = _factory.GetSourceFileNameFromUser(); if (!string.IsNullOrEmpty(path)) { var fi = new System.IO.FileInfo(path); int id = obj.Context.CreateBlob(fi, fi.GetMimeType()); obj.Blob = obj.Context.Find <Zetbox.App.Base.Blob>(id); obj.IconFile = obj.Blob.OriginalName; } }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (!_initialized) { return(Binding.DoNothing); } try { Zetbox.App.GUI.Icon icon = null; if (value is Zetbox.App.Base.ObjectClass) { Zetbox.App.Base.ObjectClass objClass = (Zetbox.App.Base.ObjectClass)value; icon = objClass.DefaultIcon; } else if (value is Zetbox.App.GUI.Icon) { icon = (Zetbox.App.GUI.Icon)value; } else if (value is IDataObject) { IDataObject obj = (IDataObject)value; icon = obj.GetObjectClass(FrozenContext).DefaultIcon; } else if (value is Zetbox.Client.Presentables.ViewModel) { icon = ((Zetbox.Client.Presentables.ViewModel)value).Icon; } if (icon == null) { return(Binding.DoNothing); } else { // Not initialized yet if (icon.ObjectState == DataObjectState.New) { return(Binding.DoNothing); } BitmapImage bmp; if (!_cache.TryGetValue(icon.ExportGuid, out bmp)) { var realIcon = Context.FindPersistenceObject <Zetbox.App.GUI.Icon>(icon.ExportGuid); if (realIcon.Blob == null) { Logging.Log.WarnFormat("Icon#{0} has no associated request", realIcon.ID); return(Binding.DoNothing); } bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = realIcon.Blob.GetStream(); bmp.EndInit(); _cache[icon.ExportGuid] = bmp; } return(bmp); } } catch (Exception ex) { Logging.Facade.Info("Error while loading Icon", ex); return(Binding.DoNothing); } }