private ISupportDataObjectEditing _GetDataObjectEditing(DataObject obj, Page pageBase)
        {
            ISupportDataObjectEditing objectEditing = null;

            SpecialtiesPage specialtiesPage = pageBase as SpecialtiesPage;

            if (null == specialtiesPage)
            {
                objectEditing = pageBase as ISupportDataObjectEditing;
            }
            else
            {
                if (obj is VehicleSpecialty)
                {
                    objectEditing = specialtiesPage.VehicleSpecialtiesPanel;
                }
                else
                {
                    Debug.Assert(obj is DriverSpecialty);
                    objectEditing = specialtiesPage.DriverSpecialtiesPanel;
                }
            }

            return(objectEditing);
        }
        public void Execute(object parameter)
        {
            try
            {
                DataObject obj = DataObjectHelper.GetPrescribedObject(_type, _id);
                if (null != obj)
                {
                    INavigationItem item = null;
                    if (App.Current.MainWindow.NavigationTree.FindItem(_navigateLink, out item))
                    {
                        if ((item as PageItem).Page != App.Current.MainWindow.CurrentPage)
                        {
                            App.Current.MainWindow.Navigate(_navigateLink);
                        }

                        Page pageBase = App.Current.MainWindow.CurrentPage;

                        ISupportDataObjectEditing objectEditing = _GetDataObjectEditing(obj, pageBase);
                        ISupportSelection         selection     = _GetSelection(obj, pageBase);

                        bool isEditingInProgress = false;
                        if (null != objectEditing)
                        {
                            isEditingInProgress = objectEditing.IsEditingInProgress;
                        }

                        if (null != selection)
                        {
                            // if any object is editing - try to save changed
                            if (isEditingInProgress)
                            {
                                isEditingInProgress = !selection.SaveEditedItem();
                            }

                            // if grid isn't editing or changes saved successfully - select items
                            if (!isEditingInProgress)
                            {
                                selection.Select(new Collection <DataObject>()
                                {
                                    obj
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
Exemple #3
0
        /// <summary>
        /// Method removes handlers for all editing events.
        /// </summary>
        /// <param name="view">Object implements ISupportDataObjectEditing - List view or Map view.</param>
        private void _RemoveEditingEventHandlers(ISupportDataObjectEditing view)
        {
            // Remove handlers to create events.
            view.CreatingNewObject -= _ViewCreatingNewObject;
            view.NewObjectCreated  -= _ViewNewObjectCreated;

            // Remove handlers to commit events.
            view.CommittingNewObject -= _ViewCommittingNewObject;
            view.NewObjectCommitted  -= _ViewNewObjectCommitted;

            // Remove handlers to cancel new events.
            view.NewObjectCanceled -= _ViewNewObjectCanceled;

            // Remove handlers to begin edit events.
            view.BeginningEdit -= _ViewBeginningEdit;
            view.EditBegun     -= _ViewEditBegun;

            // Remove handlers to cancel edit events.
            view.EditCanceled -= _ViewEditCanceled;

            // Remove handlers to commit edit events.
            view.CommittingEdit -= _ViewCommittingEdit;
            view.EditCommitted  -= _ViewEditCommitted;
        }
Exemple #4
0
        /// <summary>
        /// Method adds handlers for all editing events.
        /// </summary>
        /// <param name="view">Object implements ISupportDataObjectEditing - List view or Map view.</param>
        private void _AddEditingEventHandlers(ISupportDataObjectEditing view)
        {
            // Add handlers to create events.
            view.CreatingNewObject += new DataObjectCanceledEventHandler(_ViewCreatingNewObject);
            view.NewObjectCreated  += new DataObjectEventHandler(_ViewNewObjectCreated);

            // Add handlers to commit events.
            view.CommittingNewObject += new DataObjectCanceledEventHandler(_ViewCommittingNewObject);
            view.NewObjectCommitted  += new DataObjectEventHandler(_ViewNewObjectCommitted);

            // Add handlers to cancel new events.
            view.NewObjectCanceled += new DataObjectEventHandler(_ViewNewObjectCanceled);

            // Add handlers to begin edit events.
            view.BeginningEdit += new DataObjectCanceledEventHandler(_ViewBeginningEdit);
            view.EditBegun     += new DataObjectEventHandler(_ViewEditBegun);

            // Add handlers to cancel edit events.
            view.EditCanceled += new DataObjectEventHandler(_ViewEditCanceled);

            // Add handlers to commit edit events.
            view.CommittingEdit += new DataObjectCanceledEventHandler(_ViewCommittingEdit);
            view.EditCommitted  += new DataObjectEventHandler(_ViewEditCommitted);
        }
        /// <summary>
        /// Method removes handlers for all editing events.
        /// </summary>
        /// <param name="view">Object implements ISupportDataObjectEditing - List view or Map view.</param>
        private void _RemoveEditingEventHandlers(ISupportDataObjectEditing view)
        {
            // Remove handlers to create events.
            view.CreatingNewObject -= _ViewCreatingNewObject;
            view.NewObjectCreated -= _ViewNewObjectCreated;

            // Remove handlers to commit events.
            view.CommittingNewObject -= _ViewCommittingNewObject;
            view.NewObjectCommitted -= _ViewNewObjectCommitted;

            // Remove handlers to cancel new events.
            view.NewObjectCanceled -= _ViewNewObjectCanceled;

            // Remove handlers to begin edit events.
            view.BeginningEdit -= _ViewBeginningEdit;
            view.EditBegun -= _ViewEditBegun;

            // Remove handlers to cancel edit events.
            view.EditCanceled -= _ViewEditCanceled;

            // Remove handlers to commit edit events.
            view.CommittingEdit -= _ViewCommittingEdit;
            view.EditCommitted -= _ViewEditCommitted;
        }
        /// <summary>
        /// Method adds handlers for all editing events.
        /// </summary>
        /// <param name="view">Object implements ISupportDataObjectEditing - List view or Map view.</param>
        private void _AddEditingEventHandlers(ISupportDataObjectEditing view)
        {
            // Add handlers to create events.
            view.CreatingNewObject += new DataObjectCanceledEventHandler(_ViewCreatingNewObject);
            view.NewObjectCreated += new DataObjectEventHandler(_ViewNewObjectCreated);

            // Add handlers to commit events.
            view.CommittingNewObject += new DataObjectCanceledEventHandler(_ViewCommittingNewObject);
            view.NewObjectCommitted += new DataObjectEventHandler(_ViewNewObjectCommitted);

            // Add handlers to cancel new events.
            view.NewObjectCanceled += new DataObjectEventHandler(_ViewNewObjectCanceled);

            // Add handlers to begin edit events.
            view.BeginningEdit += new DataObjectCanceledEventHandler(_ViewBeginningEdit);
            view.EditBegun += new DataObjectEventHandler(_ViewEditBegun);

            // Add handlers to cancel edit events.
            view.EditCanceled += new DataObjectEventHandler(_ViewEditCanceled);

            // Add handlers to commit edit events.
            view.CommittingEdit += new DataObjectCanceledEventHandler(_ViewCommittingEdit);
            view.EditCommitted += new DataObjectEventHandler(_ViewEditCommitted);
        }