Ejemplo n.º 1
0
        /// <summary>
        /// Gets a copy of this object to implement <see cref="ICloneable"/>.
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            var copy = new TextMarkerViewModel(Marker);

            CopyItem(this, copy);

            return(copy);
        }
Ejemplo n.º 2
0
        private void CopyItem(TextMarkerViewModel sourceItem,
                              TextMarkerViewModel targetItem,
                              bool CopyIsInEditMode = false)
        {
            targetItem._Marker = sourceItem.Marker.Clone() as TextMarker;

            if (CopyIsInEditMode == true)
            {
                targetItem.IsInEditMode = sourceItem.IsInEditMode;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Standard method that is called when editing of an item ends succesfully.
        /// The object should permanently store changes and exit editing mode.
        /// </summary>
        void IEditableObject.EndEdit()
        {
            // clear cached data
            _cachedCopy  = null;            // Destroy unedited back copy and
            IsInEditMode = false;           // ensure edit mode flag is unset

            if (MarkerEditEventArgs != null)
            {
                MarkerEditEventArgs(this, new Markers.MarkerEditEventArgs(Marker, EditEvent.CommitEdit));
            }

            NotifyPropertyChanged(() => DateModified);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Standard method that is called when this item is changing
        /// its mode from non-editing (just display data) to editing.
        /// </summary>
        void IEditableObject.BeginEdit()
        {
            // save object state before entering edit mode
            _cachedCopy = this.Clone() as TextMarkerViewModel;

            // ensure edit mode flag is set
            IsInEditMode = true;

            if (MarkerEditEventArgs != null)
            {
                MarkerEditEventArgs(this, new Markers.MarkerEditEventArgs(Marker, EditEvent.BeginEdit));
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Standard method that is called when editing of an item is cancelled.
        /// The object should roll back any changes and exit editing mode.
        /// </summary>
        void IEditableObject.CancelEdit()
        {
            // restore original object state
            if (_cachedCopy != null)
            {
                CopyItem(_cachedCopy, this);
            }

            // clear cached data
            _cachedCopy = null;

            // ensure edit mode flag is unset
            IsInEditMode = false;

            if (MarkerEditEventArgs != null)
            {
                MarkerEditEventArgs(this, new Markers.MarkerEditEventArgs(Marker, EditEvent.CancelEdit));
            }
        }
Ejemplo n.º 6
0
        internal object AddTextMarkerCommand_Executed(object arg)
        {
            var model = new TextMarker(new List <LogEntry>(),
                                       this.Author, "<Double Click me to comment>");

            var newTxMarker = new TextMarkerViewModel(model);

            this.AddMarker(newTxMarker);

            // Link text marker to currently selected items via TextMarker (model) Entries
            YalvRegistry.Instance.ActualWorkspace.CurrentAnalysis.AddTextMarker(
                _selectedEntries.Select(x => x.Entry), newTxMarker.GetModel());

            foreach (LogEntryRowViewModel entry in _selectedEntries)
            {
                entry.UpdateTextMarkerQuantity();
            }

            OnMarkerAdded(new TextMarkerEventArgs(model)); // Generate an event on this to refresh the view

            return(null);
        }
Ejemplo n.º 7
0
 private void RemoveMarker(TextMarkerViewModel oldMarker)
 {
     oldMarker.MarkerEditEventArgs -= NewMarker_MarkerEditEventArgs;
     _textMarkerVmList.Remove(oldMarker);
 }
Ejemplo n.º 8
0
 private void AddMarker(TextMarkerViewModel newMarker)
 {
     newMarker.MarkerEditEventArgs += NewMarker_MarkerEditEventArgs;
     _textMarkerVmList.Add(newMarker);
 }