public virtual void OnBufferChanged(NormalizedHexChangeCollection changes) { if (!changes.OverlapsWith(Span)) return; foreach (var vm in HexVMs) vm.OnBufferChanged(changes); }
public virtual void OnBufferChanged(NormalizedHexChangeCollection changes) { foreach (var field in HexFields) { field.OnBufferChanged(changes); } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (TreeNode.Children.Count == 0) { return; } foreach (var change in changes) { if (!changes.OverlapsWith(Span)) { continue; } var start = HexPosition.Max(Span.Start, change.OldSpan.Start); var end = HexPosition.Min(Span.End, change.OldSpan.End); int i = (int)((start - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); int endi = (int)((end - 1 - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); Debug.Assert(0 <= i && i <= endi && endi < TreeNode.Children.Count); while (i <= endi) { var obj = (MetadataTableRecordNode)TreeNode.Children[i].Data; obj.OnBufferChanged(changes); i++; } } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { foreach (var change in changes) { if (!change.OldSpan.OverlapsWith(Span)) { continue; } var start = HexPosition.Max(Span.Start, change.OldSpan.Start); var end = HexPosition.Min(Span.End, change.OldSpan.End); int i = (int)((start - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); int endi = (int)((end - 1 - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); Debug.Assert(0 <= i && i <= endi && endi < Collection.Count); while (i <= endi) { var obj = Collection.TryGet(i); if (obj != null) { obj.OnBufferChanged(changes); } i++; } } }
public void OnBufferChanged(NormalizedHexChangeCollection changes) { if (!changes.OverlapsWith(Span)) { return; } var newValue = ReadData(); if (!DataFieldVM.HasError && newValue.Equals(DataFieldVM.ObjectValue)) { return; } var old = disable_UpdateValue; try { disable_UpdateValue = true; DataFieldVM.ObjectValue = newValue; OnBufferChanged(newValue); } finally { disable_UpdateValue = old; } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (changes.OverlapsWith(imageSectionHeaderVM.NameVM.Span)) { TreeNode.RefreshUI(); } }
public HexVersionImpl SetChanges(IList<HexChange> changes, int? reiteratedVersionNumber = null) { var normalizedChanges = NormalizedHexChangeCollection.Create(changes); if (reiteratedVersionNumber == null) reiteratedVersionNumber = changes.Count == 0 ? ReiteratedVersionNumber : VersionNumber + 1; var newVersion = new HexVersionImpl(Buffer, VersionNumber + 1, reiteratedVersionNumber.Value); this.changes = normalizedChanges; next = newVersion; return newVersion; }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); foreach (HexNode node in TreeNode.DataChildren) { node.OnBufferChanged(changes); } }
public void Invalidate(NormalizedHexChangeCollection changes) { if (changes.Count == 0) { return; } var span = HexSpan.FromBounds(changes[0].OldSpan.Start, changes[changes.Count - 1].OldSpan.End); Invalidate(span); }
public static bool OverlapsWith(this NormalizedHexChangeCollection changes, HexSpan span) { foreach (var change in changes) { if (change.OldSpan.OverlapsWith(span)) { return(true); } } return(false); }
public virtual void OnBufferChanged(NormalizedHexChangeCollection changes) { if (!changes.OverlapsWith(Span)) { return; } foreach (var vm in HexVMs) { vm.OnBufferChanged(changes); } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (changes.OverlapsWith(storageStreamVM.RCNameVM.Span)) { TreeNode.RefreshUI(); } foreach (HexNode node in TreeNode.DataChildren) { node.OnBufferChanged(changes); } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { if (infoTuple != null) { var tableInfo = ((MetaDataTableNode)TreeNode.Parent.Data).TableInfo; foreach (var index in infoTuple.Item1) { var col = tableInfo.Columns[index]; var span = new HexSpan(Span.Start + (ulong)col.Offset, (ulong)col.Size); if (changes.OverlapsWith(span)) { TreeNode.RefreshUI(); break; } } } }
public HexVersionImpl SetChanges(IList <HexChange> changes, int?reiteratedVersionNumber = null) { var normalizedChanges = NormalizedHexChangeCollection.Create(changes); if (reiteratedVersionNumber is null) { reiteratedVersionNumber = changes.Count == 0 ? ReiteratedVersionNumber : VersionNumber + 1; } var newVersion = new HexVersionImpl(Buffer, VersionNumber + 1, reiteratedVersionNumber.Value); this.changes = normalizedChanges; next = newVersion; return(newVersion); }
public void OnBufferChanged(NormalizedHexChangeCollection changes) { if (!changes.OverlapsWith(Span)) return; var newValue = ReadData(); if (!DataFieldVM.HasError && newValue.Equals(DataFieldVM.ObjectValue)) return; var old = disable_UpdateValue; try { disable_UpdateValue = true; DataFieldVM.ObjectValue = newValue; OnBufferChanged(newValue); } finally { disable_UpdateValue = old; } }
public HexBufferUndoCommand(HexBuffer buffer, NormalizedHexChangeCollection changes, int beforeReiteratedVersionNumber, int afterReiteratedVersionNumber, string description) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } if (description == null) { throw new ArgumentNullException(nameof(description)); } this.buffer = buffer; this.changes = changes; this.beforeReiteratedVersionNumber = beforeReiteratedVersionNumber; this.afterReiteratedVersionNumber = afterReiteratedVersionNumber; Description = description; }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (TreeNode.Children.Count == 0) return; foreach (var change in changes) { if (!changes.OverlapsWith(Span)) continue; var start = HexPosition.Max(Span.Start, change.OldSpan.Start); var end = HexPosition.Min(Span.End, change.OldSpan.End); int i = (int)((start - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); int endi = (int)((end - 1 - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); Debug.Assert(0 <= i && i <= endi && endi < TreeNode.Children.Count); while (i <= endi) { var obj = (MetaDataTableRecordNode)TreeNode.Children[i].Data; obj.OnBufferChanged(changes); i++; } } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); for (int i = 0; i < hexFields.Length; i++) { var field = hexFields[i]; if (IsDynamicDescription(i) && changes.OverlapsWith(field.Span)) InvalidateDescription(i); } var infoCols = InfoColumnIndexes; if (infoCols != null) { foreach (var index in infoCols) { var field = hexFields[index]; if (changes.OverlapsWith(field.Span)) { OnPropertyChanged(nameof(Info)); break; } } } }
public virtual void OnBufferChanged(NormalizedHexChangeCollection changes) { foreach (var field in HexFields) field.OnBufferChanged(changes); }
public void InvalidateSpan(NormalizedHexChangeCollection changes) => DebuggerHexBufferStream.Invalidate(changes);
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (changes.OverlapsWith(storageStreamVM.RCNameVM.Span)) TreeNode.RefreshUI(); foreach (HexNode node in TreeNode.DataChildren) node.OnBufferChanged(changes); }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { foreach (var change in changes) { if (!change.OldSpan.OverlapsWith(Span)) continue; var start = HexPosition.Max(Span.Start, change.OldSpan.Start); var end = HexPosition.Min(Span.End, change.OldSpan.End); int i = (int)((start - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); int endi = (int)((end - 1 - Span.Start).ToUInt64() / (ulong)TableInfo.RowSize); Debug.Assert(0 <= i && i <= endi && endi < Collection.Count); while (i <= endi) { var obj = Collection.TryGet(i); if (obj != null) obj.OnBufferChanged(changes); i++; } } }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); foreach (HexNode node in TreeNode.DataChildren) node.OnBufferChanged(changes); }
public override void OnBufferChanged(NormalizedHexChangeCollection changes) { base.OnBufferChanged(changes); if (changes.OverlapsWith(imageSectionHeaderVM.NameVM.Span)) TreeNode.RefreshUI(); }