protected void OnButtonAddClicked(object sender, EventArgs e)
        {
            ormtableview.Selection.UnselectAll();
            var classDiscript = OrmMain.GetObjectDescription(objectType);

            if (classDiscript.SimpleDialog)
            {
                EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, null);
            }
            else if (RepresentationModel is IRepresentationModelWithParent)
            {
                var dlg = OrmMain.CreateObjectDialog(objectType, (RepresentationModel as IRepresentationModelWithParent).GetParent);
                TabParent.OpenTab(OrmMain.GenerateDialogHashName(objectType, 0),
                                  () => dlg,
                                  this
                                  );
                dlg.EntitySaved += dlg_EntitySaved;
            }
            else
            {
                var dlg = OrmMain.CreateObjectDialog(objectType);
                dlg.EntitySaved += dlg_EntitySaved;
                TabParent.AddTab(dlg, this, true);
                if (TabParent is TdiSliderTab)
                {
                    ((TdiSliderTab)TabParent).IsHideJournal = true;
                }
            }
        }
Example #2
0
 protected void OnButtonDeleteClicked(object sender, EventArgs e)
 {
     if (OrmMain.DeleteObject(ytreeviewRef.GetSelectedObject()))
     {
         UpdateObjectList();
     }
 }
Example #3
0
        protected void OnButtonDeleteClicked(object sender, EventArgs e)
        {
            if (!CanDelete)
            {
                MessageDialogHelper.RunWarningDialog("У вас нет прав для удаления этого документа.");
                return;
            }
            var toDelete = ytreeviewRef.GetSelectedObjects();

            var text = NumberToTextRus.FormatCase(toDelete.Length,
                                                  "Вы собираетесь удалить {0} объект, вам нужно будет проверить ссылки для каждого из них. Продолжить?",
                                                  "Вы собираетесь удалить {0} объекта, вам нужно будет проверить ссылки для каждого из них. Продолжить?",
                                                  "Вы собираетесь удалить {0} объектов, вам нужно будет проверить ссылки для каждого из них. Продолжить?");

            if (toDelete.Length > 1 && !MessageDialogHelper.RunQuestionDialog(text))
            {
                return;
            }

            foreach (var delete in toDelete)
            {
                OrmMain.DeleteObject(delete);
            }

            UpdateObjectList();
        }
Example #4
0
        /// <summary>
        /// Уведомляем всех подписчиков об изменении указанных объектов.
        /// Объекты в списке могут быть разных типов, метод разделит списки уведомлений, по типам объектов.
        /// </summary>
        /// <param name="subject">Subject.</param>
        public static void NotifyObjectUpdated(params object[] updatedSubjects)
        {
            if (ClassMappingList == null)
            {
                return;
            }
            // Чистим список от удаленных объектов.
            if (DateTime.Now.Subtract(lastCleaning).TotalSeconds > 1)
            {
                delayedNotifies.RemoveAll(d => d.ParentObject == null || d.ChangedObject == null);
                lastCleaning = DateTime.Now;
            }

            foreach (Type subjectType in updatedSubjects.Select(s => NHibernateProxyHelper.GuessClass(s)).Distinct())
            {
                IOrmObjectMapping map = ClassMappingList.Find(m => m.ObjectClass == subjectType);
                if (map != null)
                {
                    map.RaiseObjectUpdated(updatedSubjects.Where(s => NHibernateProxyHelper.GuessClass(s) == subjectType).ToArray());
                }
                else
                {
                    logger.Warn("В ClassMapingList класс {0} объекта не найден. Поэтому событие обновления не вызвано.", subjectType);
                }

                // Отсылаем уведомления дочерним объектам если они есть.
                foreach (DelayedNotifyLink link in delayedNotifies.FindAll(l => OrmMain.Equals(l.ParentObject, updatedSubjects[0])))
                {
                    NotifyObjectUpdated(link.ChangedObject);
                    delayedNotifies.Remove(link);
                }
            }
        }
        protected void OnButtonDeleteClicked(object sender, EventArgs e)
        {
            var node       = ormtableview.GetSelectedObjects() [0];
            int selectedId = DomainHelper.GetId(node);

            if (OrmMain.DeleteObject(objectType, selectedId))
            {
                RepresentationModel.UpdateNodes();
            }
        }
Example #6
0
        public override void Destroy()
        {
            logger.Debug("OrmReference #{0} Destroy() called.", number);
            IOrmObjectMapping map = OrmMain.GetObjectDescription(objectType);

            if (map != null)
            {
                map.ObjectUpdated -= OnRefObjectUpdated;
            }
            base.Destroy();
        }
Example #7
0
 protected void OnButtonEditClicked(object sender, EventArgs e)
 {
     if (OrmMain.GetObjectDescription(objectType).SimpleDialog)
     {
         EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, ytreeviewRef.GetSelectedObject());
     }
     else
     {
         var selected = ytreeviewRef.GetSelectedObject();
         TabParent.OpenTab(OrmMain.GenerateDialogHashName(objectType, DomainHelper.GetId(selected)),
                           () => OrmMain.CreateObjectDialog(objectType, selected), this
                           );
     }
 }
Example #8
0
        protected void OnYtreeviewRefButtonReleaseEvent(object o, ButtonReleaseEventArgs args)
        {
            IOrmObjectMapping map = OrmMain.GetObjectDescription(objectType);

            if (args.Event.Button == 3 && map.PopupMenuExist)
            {
                var selected = ytreeviewRef.GetSelectedObjects();
                var menu     = map.GetPopupMenu(selected);
                if (menu != null)
                {
                    menu.ShowAll();
                    menu.Popup();
                }
            }
        }
Example #9
0
 protected override void OnDestroyed()
 {
     logger.Debug($"EntryReference {subjectType} Destroyed() called.");
     //Отписываемся от событий.
     if (subjectType != null)
     {
         IOrmObjectMapping map = OrmMain.GetObjectDescription(subjectType);
         map.ObjectUpdated -= OnExternalObjectUpdated;
     }
     if (subject is INotifyPropertyChanged)
     {
         (subject as INotifyPropertyChanged).PropertyChanged -= OnSubjectPropertyChanged;
     }
     base.OnDestroyed();
 }
Example #10
0
        protected void OnButtonViewEntityClicked(object sender, EventArgs e)
        {
            if (SubjectType == null)
            {
                throw new NullReferenceException("SubjectType не задан.");
            }

            if (OrmMain.GetObjectDescription(SubjectType).SimpleDialog)
            {
                EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, SubjectType, Subject);
                return;
            }

            ITdiTab dlg = OrmMain.CreateObjectDialog(Subject);

            MyTab.TabParent.AddTab(dlg, MyTab);
        }
Example #11
0
 protected void OnButtonAddClicked(object sender, EventArgs e)
 {
     ytreeviewRef.Selection.UnselectAll();
     if (OrmMain.GetObjectDescription(objectType).SimpleDialog)
     {
         SelectObject(EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, null));
     }
     else
     {
         var tab = TabParent.OpenTab(OrmMain.GenerateDialogHashName(objectType, 0),
                                     () => OrmMain.CreateObjectDialog(objectType), this
                                     );
         if (tab != null)
         {
             (tab as ITdiDialog).EntitySaved += NewItemDlg_EntitySaved;
         }
     }
 }
Example #12
0
        void ConfigureDlg()
        {
            OrmMain.Count++;
            number = OrmMain.Count;
            logger.Debug("Открытие {0}", number);
            Mode       = OrmReferenceMode.Normal;
            ButtonMode = ReferenceButtonMode.CanAll;
            IOrmObjectMapping map = OrmMain.GetObjectDescription(objectType);

            if (map != null)
            {
                map.ObjectUpdated += OnRefObjectUpdated;
                TableView          = map.TableView;
                if (map.RefFilterClass != null)
                {
                    FilterClass = map.RefFilterClass;
                }
            }
            else
            {
                throw new InvalidOperationException(String.Format("Для использования диалога, класс {0} должен быть добавлен в мапинг OrmMain.ClassMappingList.", objectType));
            }
            object[] att = objectType.GetCustomAttributes(typeof(AppellativeAttribute), true);
            if (att.Length > 0)
            {
                this.TabName = (att [0] as AppellativeAttribute).NominativePlural.StringToTitleCase();
            }
            var defaultMode = objectType.GetAttribute <DefaultReferenceButtonModeAttribute>(true);

            if (defaultMode != null)
            {
                ButtonMode = defaultMode.ReferenceButtonMode;
            }

            if (!String.IsNullOrWhiteSpace(map.EditPermisionName))
            {
                if (!QSMain.User.Permissions [map.EditPermisionName])
                {
                    ButtonMode &= ~ReferenceButtonMode.CanAll;
                }
            }
            UpdateObjectList();
            ytreeviewRef.Selection.Changed += OnTreeviewSelectionChanged;
        }
Example #13
0
        private void UpdateObjectList()
        {
            if (inUpdating)
            {
                return;
            }
            logger.Debug("Обновление в диалоге {0}", number);
            logger.Info("Получаем таблицу справочника<{0}>...", objectType.Name);
            var startUpdateTime = DateTime.Now;

            inUpdating = true;
            ICriteria baseCriteria = filterWidget == null ? objectsCriteria : filterWidget.FiltredCriteria;

            var map = OrmMain.GetObjectDescription(objectType);

            if (map.SimpleDialog)
            {
                baseCriteria = baseCriteria.AddOrder(Order.Asc("Name"));
            }
            else if (map.TableView != null && map.TableView.OrderBy.Count > 0)
            {
                foreach (var ord in map.TableView.OrderBy)
                {
                    if (ord.Direction == QSOrmProject.DomainMapping.OrderDirection.Desc)
                    {
                        baseCriteria = baseCriteria.AddOrder(Order.Desc(ord.PropertyName));
                    }
                    else
                    {
                        baseCriteria = baseCriteria.AddOrder(Order.Asc(ord.PropertyName));
                    }
                }
            }

            fullList = baseCriteria.List();

            UpdateTreeViewSource();

            UpdateSum();
            inUpdating = false;
            logger.Debug("Справочник загружен за: {0} сек.", (DateTime.Now - startUpdateTime).TotalSeconds);
            logger.Info("Ok.");
        }
Example #14
0
        protected void OnButtonViewEntityClicked(object sender, EventArgs e)
        {
            if (OrmMain.GetObjectDescription(SubjectType).SimpleDialog)
            {
                EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, SubjectType, Subject);
                return;
            }

            ITdiTab mytab = DialogHelper.FindParentTab(this);

            if (mytab == null)
            {
                logger.Warn("Родительская вкладка не найдена.");
                return;
            }

            ITdiTab dlg = OrmMain.CreateObjectDialog(Subject);

            mytab.TabParent.AddTab(dlg, mytab);
        }
        protected void OnButtonEditClicked(object sender, EventArgs e)
        {
            var description = OrmMain.GetObjectDescription(objectType);

            if (description == null)
            {
                throw new NotImplementedException(String.Format("Не реализован OrmObjectMapping для типа {0}", objectType));
            }
            if (description.SimpleDialog)
            {
                throw new NotImplementedException();
                //OrmSimpleDialog.RunSimpleDialog (this.Toplevel as Window, objectType, datatreeviewRef.GetSelectedObjects () [0]);
            }
            else
            {
                int selectedId = ormtableview.GetSelectedId();
                TabParent.OpenTab(OrmMain.GenerateDialogHashName(objectType, selectedId),
                                  () => OrmMain.CreateObjectDialog(objectType, selectedId),
                                  this
                                  );
            }
        }
Example #16
0
 protected void OnButtonAddClicked(object sender, EventArgs e)
 {
     if (!CanCreate)
     {
         MessageDialogHelper.RunWarningDialog("У вас нет прав для создания этого документа.");
         return;
     }
     ytreeviewRef.Selection.UnselectAll();
     if (OrmMain.GetObjectDescription(objectType).SimpleDialog)
     {
         SelectObject(EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, null));
     }
     else
     {
         var tab = TabParent.OpenTab(DialogHelper.GenerateDialogHashName(objectType, 0),
                                     () => OrmMain.CreateObjectDialog(objectType), this
                                     );
         if (tab != null)
         {
             (tab as ITdiDialog).EntitySaved += NewItemDlg_EntitySaved;
         }
     }
 }
Example #17
0
        protected void OnButtonEditClicked(object sender, EventArgs e)
        {
            if (!CanEdit)
            {
                MessageDialogHelper.RunWarningDialog("У вас нет прав для редактирования этого документа.");
                return;
            }
            if (OrmMain.GetObjectDescription(objectType).SimpleDialog)
            {
                EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, ytreeviewRef.GetSelectedObjects().First());
            }
            else
            {
                var selected = ytreeviewRef.GetSelectedObjects();

                var text = NumberToTextRus.FormatCase(selected.Length,
                                                      "Вы действительно хотите открыть {0} вкладку?",
                                                      "Вы действительно хотите открыть {0} вкладки?",
                                                      "Вы действительно хотите открыть {0} вкладок?"
                                                      );

                if (selected.Length > 5 && !MessageDialogHelper.RunQuestionDialog(text))
                {
                    return;
                }

                foreach (var one in selected)
                {
                    TabParent.OpenTab(DialogHelper.GenerateDialogHashName(objectType, DomainHelper.GetId(one)),
                                      () => OrmMain.CreateObjectDialog(objectType, one),
                                      this,
                                      canSlided: selected.Length == 1
                                      );
                }
            }
        }