private void AddEditedObject(StoredClassDataView view, DbObject dbObject) { if(!editedObjects.ContainsKey(view)) editedObjects.Add(view,new List<DbObject>()); IList<DbObject> dbObjects = editedObjects[view]; if(!dbObjects.Contains(dbObject)) dbObjects.Add(dbObject); view.IsSaveCancelEnabled = true; }
private StoredClassDataView CreateView() { var view = new StoredClassDataView(); view.ReloadFired += new Action<StoredClassDataView>(view_ReloadFired); view.ShowSelectedObject += new Action<object>(view_ShowSelectedObject); view.ShowSelectedTypeObjects += new Action<StoredClassDataView, object>(view_ShowSelectedTypeObjects); view.DeleteFired += new Action<StoredClassDataView>(view_DeleteFired); view.EditFired += new Action<StoredClassDataView, DbObject>(view_EditFired); view.SaveFired += new Action<StoredClassDataView>(view_SaveFired); view.CancelFired += new Action<StoredClassDataView>(view_CancelFired); view.AddFired += new Action<StoredClassDataView>(view_AddFired); view.EditDbObjectFired += new Action<StoredClassDataView, DbObject, string, DbObject>(view_EditDbObjectFired); view.SetToNullFired += new Action<StoredClassDataView, DbObject, string>(view_SetToNullFired); view.ShowBinaryViewerFired += new Func<object, string, object, StoredClassDataView, bool>(view_ShowBinaryViewerFired); return view; }
private void ReloadData(StoredClassDataView view) { // var collection = new ObservableCollection<DbObject>(); IList data = view.StoredClass.GetData(); // foreach (var o in data) // { // collection.Add((DbObject) o); // } // // view.DataSource = collection; view.DataSource = data; }
bool view_ShowBinaryViewerFired(object arg1, string arg2, object arg3, StoredClassDataView view) { byte[] data = arg3 as byte[]; var viewer = new BinaryViewer(); viewer.DataSource = data; viewer.BrowseFired += new Action<BinaryViewer,DbObject,string, StoredClassDataView>(viewer_BrowseFired).Apply(viewer,(DbObject)arg1,arg2, view); windowManager.ShowDialog(viewer, "Binary viewer"); return true; }
void view_ShowSelectedTypeObjects(StoredClassDataView view, object obj) { DbObject dbObject = obj as DbObject; if (dbObject == null) { windowManager.Error( "You can show detailed info only on objects of your own classes. Selected object is systems or primitive."); return; } StoredClassDataView newView = CreateView(); newView.StoredClass = dbObject.Clazz; newView.DataSource = view.StoredClass.Connection.GetData(newView.StoredClass); windowManager.AddMainPane(newView, newView.StoredClass.ToString(), "Images/class.png"); }
void view_SaveFired(StoredClassDataView view) { IList<DbObject> dbObjects = editedObjects[view]; IStoredClass @class = view.StoredClass; @class.Save(dbObjects); view.IsSaveCancelEnabled = false; ReloadData(view); }
void view_SetToNullFired(StoredClassDataView view, DbObject arg2, string arg3) { DataGridUtils.SetValueByPath(arg2,arg3,null); AddEditedObject(view,arg2); view.RefreshData(); }
void view_EditFired(StoredClassDataView view, DbObject dbObject) { AddEditedObject(view, dbObject); }
void view_ReloadFired(StoredClassDataView view) { //TODO smth like HourGlass or LightBox ReloadData(view); }
void view_EditDbObjectFired(StoredClassDataView view, DbObject rowDbObject, string bindingPath, DbObject fieldDbObject) { var dialogView = new StoredClassDataView(); IConnection connection = view.StoredClass.Connection; if(fieldDbObject!=null) dialogView.StoredClass = fieldDbObject.Clazz; else { IList<IStoredClass> classes = connection.Objects; var box = new ComboBox(); box.Height = 18; box.Width = 300; box.Name = "EditDbObject"; box.ItemsSource = classes; if(!windowManager.ShowDialog(box, "What type of objects you want here?")) return; dialogView.StoredClass = box.SelectedValue as IStoredClass; } dialogView.DataSource = connection.GetData(dialogView.StoredClass); if (!windowManager.ShowDialog(dialogView, "Edit")) return; DbObject newFieldDbObject = dialogView.GetSelectedObject(); DataGridUtils.SetValueByPath(rowDbObject,bindingPath,newFieldDbObject); AddEditedObject(view,rowDbObject); view.RefreshData(); }
void view_DeleteFired(StoredClassDataView view) { if (!windowManager.Ask("Are you sure want to delete?", "Delete")) return; IList objects = view.GetSelectedObjects(); IStoredClass @class = view.StoredClass; @class.Delete(objects); ReloadData(view); }
void view_CancelFired(StoredClassDataView view) { editedObjects.Remove(view); view.IsSaveCancelEnabled = false; ReloadData(view); }
void view_AddFired(StoredClassDataView view) { var dbObject = dbObjectFactory.Create(view.StoredClass); AddEditedObject(view,dbObject); var source = new ArrayList(view.DataSource); source.Add(dbObject); view.DataSource = source; }
void viewer_BrowseFired(BinaryViewer binaryViewer, DbObject rowDbObject, string bindingPath, StoredClassDataView view) { BrowseResult browse = browseFileService.Browse(null); if (browse.Cancel) return; byte[] bytes = File.ReadAllBytes(browse.FilePath); binaryViewer.DataSource = bytes; binaryViewer.Path = browse.FilePath; DataGridUtils.SetValueByPath(rowDbObject,bindingPath,bytes); AddEditedObject(view,rowDbObject); }