protected virtual void OnEdgePointsChanged(DetailedPropertyChangedEventArgs e) { if (e.Kind == PropertyChangeKind.Set) { /// EdgePointsがAddされたりRemoveされたときにはfireしない if (e.Index == 0) { _SourceAnchor.OnAnchorMoved((Point)e.OldValue, (Point)e.NewValue); } else if (e.Index == EdgePointCount - 1) { _TargetAnchor.OnAnchorMoved((Point)e.OldValue, (Point)e.NewValue); } } if (!_isInEdgePointsMoving) { UpdateEdgePointRefs(e); DirtyBoundsCache(null); InvalidateLayout(); InvalidatePaint(); } var handler = EdgePointsChanged; if (handler != null) { handler(this, e); } }
// --- event --- protected virtual void OnParentChanged(DetailedPropertyChangedEventArgs e) { _rootCache = null; if (_resourceCache != null) { /// 親がnullすなわちCanvasから切り離されたら if (Parent == null && this != Root) { /// ResourceCacheを解放する DisposeResourceCacheAll(); } var enabled = Parent != null; Accept( fig => { var af = fig as AbstractFigure; if (af != null) { af._ResourceCache.Enabled = enabled; } return(false); } ); } var handler = ParentChanged; if (handler != null) { handler(this, e); } }
protected virtual void OnFigureEdgePointsChanged(DetailedPropertyChangedEventArgs e) { using (Figure.DirtManager.BeginDirty()) { RelocateAllHandles(); RelocateFocus(); } }
protected override void OnPropertyChanged(object sender, DetailedPropertyChangedEventArgs e) { if (!SuppressNotification) { _modifiedDate = DateTime.Now; } base.OnPropertyChanged(sender, e); }
protected virtual void OnPropertyChanged(object sender, DetailedPropertyChangedEventArgs e, bool isModification) { if (!SuppressNotification && isModification) { _modifiedDate = DateTime.Now; } base.OnPropertyChanged(sender, e); }
protected virtual void OnDescendantChanged(DetailedPropertyChangedEventArgs e) { var handler = DescendantChanged; if (handler != null) { handler(this, e); } }
protected virtual void OnIncomingsChanged(DetailedPropertyChangedEventArgs e) { var handler = IncomingsChanged; if (handler != null) { handler(this, e); } }
protected virtual void OnMemoSmartFolderChanged(MemoSmartFolder changed, DetailedPropertyChangedEventArgs cause) { var handler = MemoSmartFolderChanged; if (handler != null) { handler(this, new MemoSmartFolderChangedEventArgs(changed, cause)); } }
protected override void OnDescendantChanged(DetailedPropertyChangedEventArgs e) { base.OnDescendantChanged(e); switch (e.Kind) { case PropertyChangeKind.Add: { (e.NewValue as IFigure).Accept( fig => { fig.ForwardMouseEvents(this); return(false); } ); break; } case PropertyChangeKind.Remove: { (e.OldValue as IFigure).Accept( fig => { fig.StopForwardMouseEvents(this); return(false); } ); break; } case PropertyChangeKind.Clear: { foreach (var child in (IFigure[])e.OldValue) { child.Accept( fig => { fig.StopForwardMouseEvents(this); return(false); } ); } break; } case PropertyChangeKind.Set: { (e.OldValue as IFigure).Accept( fig => { fig.StopForwardMouseEvents(this); return(false); } ); (e.NewValue as IFigure).Accept( fig => { fig.ForwardMouseEvents(this); return(false); } ); break; } } }
protected virtual void OnChildrenChanged(DetailedPropertyChangedEventArgs e) { using (Figure.DirtManager.BeginDirty()) { /// Figureの構造をEditorの構造に同期 switch (e.Kind) { case PropertyChangeKind.Add: { var newChild = e.NewValue as Editor; if (newChild != null && e.IsIndexed) { _figureMaintainer.InsertChildEditorFigure(newChild.Figure, e.Index); } break; } case PropertyChangeKind.Remove: { var oldChild = e.OldValue as Editor; if (oldChild != null) { _figureMaintainer.RemoveChildEditorFigure(oldChild.Figure); } break; } case PropertyChangeKind.Clear: { _figureMaintainer.ClearChildEditorFigure(); break; } case PropertyChangeKind.Set: { var oldChild = e.OldValue as Editor; var newChild = e.NewValue as Editor; if (oldChild != null) { _figureMaintainer.RemoveChildEditorFigure(oldChild.Figure); } if (newChild != null && e.IsIndexed) { _figureMaintainer.InsertChildEditorFigure(newChild.Figure, e.Index); } break; } default: { break; } } if (Root != null) { Site.UpdateHandleLayer(); } } }
// ------------------------------ // protected // ------------------------------ // --- event --- protected virtual void OnChildrenChanged(DetailedPropertyChangedEventArgs e) { switch (e.Kind) { case PropertyChangeKind.Add: { var newHandle = e.NewValue as IAuxiliaryHandle; newHandle.Figure.IsVisible = _figure.IsVisible; newHandle.Figure.ForwardMouseEvents(Figure); _figure.Children.Insert(e.Index, newHandle.Figure); break; } case PropertyChangeKind.Remove: { var oldHandle = e.OldValue as IAuxiliaryHandle; Figure.Children.Remove(oldHandle.Figure); oldHandle.Figure.StopForwardMouseEvents(Figure); break; } case PropertyChangeKind.Clear: { var oldHandles = e.OldValue as IAuxiliaryHandle[]; foreach (var handle in oldHandles) { handle.Figure.StopForwardMouseEvents(Figure); } _figure.Children.Clear(); break; } case PropertyChangeKind.Set: { var oldHandle = e.OldValue as IAuxiliaryHandle; var newHandle = e.NewValue as IAuxiliaryHandle; oldHandle.Figure.StopForwardMouseEvents(Figure); newHandle.Figure.IsVisible = Figure.IsVisible; newHandle.Figure.ForwardMouseEvents(Figure); _figure.Children[e.Index] = newHandle.Figure; break; } } }
private void HandleChildrenChanged(object sender, DetailedPropertyChangedEventArgs e) { if (e.PropertyName == "Children") { switch (e.Kind) { case PropertyChangeKind.Add: { var newChild = e.NewValue as AbstractCommand; if (newChild != null && !(newChild is CompositeCommand)) { newChild._Parent = this; } break; } case PropertyChangeKind.Remove: { var oldChild = e.OldValue as AbstractCommand; if (oldChild != null && !(oldChild is CompositeCommand)) { oldChild._Parent = null; } break; } case PropertyChangeKind.Clear: { var oldChildren = e.OldValue as AbstractCommand[]; if (oldChildren != null) { foreach (var child in oldChildren) { if (!(child is CompositeCommand)) { child._Parent = null; } } } break; } } } }
protected virtual void UpdateEdgePointRefs(DetailedPropertyChangedEventArgs e) { if (_edgePointRefs != null && e != null && e.IsIndexed) { int changedIndex = e.Index; switch (e.Kind) { case PropertyChangeKind.Add: { _edgePointRefs.Insert(changedIndex, new EdgePointRef(this, changedIndex)); for (int i = changedIndex + 1; i < _edgePointRefs.Count; ++i) { ++_edgePointRefs[i].Index; } break; } case PropertyChangeKind.Remove: { _edgePointRefs.RemoveAt(changedIndex); for (int i = changedIndex; i < _edgePointRefs.Count; ++i) { --_edgePointRefs[i].Index; } break; } case PropertyChangeKind.Clear: { _edgePointRefs = null; break; } case PropertyChangeKind.Set: { /// do nothing break; } default: { throw new ArgumentException(); } } } }
// ------------------------------ // protected // ------------------------------ // === AbstractFigure ========== protected override void OnChildrenChanged(DetailedPropertyChangedEventArgs e) { switch (e.Kind) { case PropertyChangeKind.Add: { var child = e.NewValue as IFigure; child.BoundsChanged += HandleChildrenBoundsChanged; break; } case PropertyChangeKind.Remove: { var child = e.OldValue as IFigure; child.BoundsChanged -= HandleChildrenBoundsChanged; break; } case PropertyChangeKind.Clear: { var children = e.OldValue as IFigure[]; foreach (var child in children) { child.BoundsChanged -= HandleChildrenBoundsChanged; } break; } case PropertyChangeKind.Set: { var oldChild = e.OldValue as IFigure; var newChild = e.NewValue as IFigure; oldChild.BoundsChanged -= HandleChildrenBoundsChanged; newChild.BoundsChanged += HandleChildrenBoundsChanged; break; } default: { throw new ArgumentException("kind"); } } DirtyBoundsCache(null); base.OnChildrenChanged(e); }
protected virtual void OnParentChanged(DetailedPropertyChangedEventArgs e) { }
// ======================================== // constructor // ======================================== public MemoFolderChangedEventArgs(MemoFolder folder, DetailedPropertyChangedEventArgs cause) : base(folder) { _cause = cause; }
// ======================================== // constructor // ======================================== public MemoTagChangedEventArgs(MemoTag tag, DetailedPropertyChangedEventArgs cause) : base(tag) { _cause = cause; }
// ======================================== // constructor // ======================================== public MemoSmartFolderChangedEventArgs(MemoSmartFolder smartFolder, DetailedPropertyChangedEventArgs cause) : base(smartFolder) { _cause = cause; }
private void HandleSmartFolderPropChanged(object sender, DetailedPropertyChangedEventArgs e) { OnMemoSmartFolderChanged(sender as MemoSmartFolder, e); }
private void HandleTagPropChanged(object sender, DetailedPropertyChangedEventArgs e) { OnMemoTagChanged(sender as MemoTag, e); }
// --- event handler --- protected virtual void HandleChildrenDescendantChanged(object sender, DetailedPropertyChangedEventArgs e) { OnDescendantChanged(e); }
protected virtual void OnChildrenChanged(DetailedPropertyChangedEventArgs e) { using (DirtManager.BeginDirty()) { switch (e.Kind) { case PropertyChangeKind.Add: { var child = e.NewValue as IFigure; child.DescendantChanged += HandleChildrenDescendantChanged; child.InvalidatePaint(); child.InvalidateLayout(); break; } case PropertyChangeKind.Remove: { var child = e.OldValue as IFigure; if (_layoutConstraints != null && _layoutConstraints.ContainsKey(child)) { _layoutConstraints.Remove(child); } child.DescendantChanged -= HandleChildrenDescendantChanged; InvalidatePaint(); break; } case PropertyChangeKind.Clear: { var children = e.OldValue as IFigure[]; if (_layoutConstraints != null) { _layoutConstraints.Clear(); } foreach (var child in children) { child.DescendantChanged -= HandleChildrenDescendantChanged; } InvalidatePaint(); break; } case PropertyChangeKind.Set: { var oldChild = e.OldValue as IFigure; var newChild = e.NewValue as IFigure; if (_layoutConstraints != null && _layoutConstraints.ContainsKey(oldChild)) { _layoutConstraints.Remove(oldChild); } oldChild.DescendantChanged -= HandleChildrenDescendantChanged; newChild.DescendantChanged += HandleChildrenDescendantChanged; oldChild.InvalidatePaint(); newChild.InvalidatePaint(); newChild.InvalidateLayout(); break; } default: { throw new ArgumentException("kind"); } } InvalidateLayout(); var handler = ChildrenChanged; if (handler != null) { handler(this, e); } OnDescendantChanged(e); } }
private void HandleFigureEdgePointsChanged(object sender, DetailedPropertyChangedEventArgs e) { OnFigureEdgePointsChanged(e); }
protected override void OnChildrenChanged(DetailedPropertyChangedEventArgs e) { base.OnChildrenChanged(e); _dug = null; }