public ResourceElementVM(ResourceElementOptions options, ModuleDef ownerModule, bool canDeserialize) { origOptions = options; this.canDeserialize = canDeserialize; BooleanVM = new BooleanVM(a => HasErrorUpdated()); CharVM = new CharVM(a => HasErrorUpdated()); ByteVM = new ByteVM(a => HasErrorUpdated()); SByteVM = new SByteVM(a => HasErrorUpdated()); Int16VM = new Int16VM(a => HasErrorUpdated()); UInt16VM = new UInt16VM(a => HasErrorUpdated()); Int32VM = new Int32VM(a => HasErrorUpdated()); UInt32VM = new UInt32VM(a => HasErrorUpdated()); Int64VM = new Int64VM(a => HasErrorUpdated()); UInt64VM = new UInt64VM(a => HasErrorUpdated()); SingleVM = new SingleVM(a => HasErrorUpdated()); DoubleVM = new DoubleVM(a => HasErrorUpdated()); DecimalVM = new DecimalVM(a => HasErrorUpdated()); DateTimeVM = new DateTimeVM(a => HasErrorUpdated()); TimeSpanVM = new TimeSpanVM(a => HasErrorUpdated()); UserTypeVM = new UserTypeVM(ownerModule, canDeserialize); ResourceElementTypeVM = new EnumListVM(resourceElementTypeList, (a, b) => OnResourceElementTypeChanged()); UserTypeVM.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(UserTypeVM.HasError)) { HasErrorUpdated(); } }; Reinitialize(); }
public CilBodyVM(CilBodyOptions options, ModuleDef ownerModule, Language language, TypeDef ownerType, MethodDef ownerMethod) { this.ownerModule = ownerModule; this.ownerMethod = ownerMethod; this.origOptions = options; typeSigCreatorOptions = new TypeSigCreatorOptions(ownerModule, language) { CanAddGenericTypeVar = ownerType.HasGenericParameters, CanAddGenericMethodVar = ownerMethod.MethodSig.GetGenParamCount() > 0, OwnerType = ownerType, OwnerMethod = ownerMethod, }; this.localsListVM = new IndexObservableCollection <LocalVM>(() => new LocalVM(typeSigCreatorOptions, new LocalOptions(new Local(ownerModule.CorLibTypes.Int32)))); this.instructionsListVM = new IndexObservableCollection <InstructionVM>(() => CreateInstructionVM()); this.exceptionHandlersListVM = new IndexObservableCollection <ExceptionHandlerVM>(() => new ExceptionHandlerVM(typeSigCreatorOptions, new ExceptionHandlerOptions())); this.LocalsListVM.UpdateIndexesDelegate = LocalsUpdateIndexes; this.InstructionsListVM.UpdateIndexesDelegate = InstructionsUpdateIndexes; this.ExceptionHandlersListVM.UpdateIndexesDelegate = ExceptionHandlersUpdateIndexes; this.InstructionsListVM.CollectionChanged += InstructionsListVM_CollectionChanged; this.LocalsListVM.CollectionChanged += LocalsListVM_CollectionChanged; this.ExceptionHandlersListVM.CollectionChanged += ExceptionHandlersListVM_CollectionChanged; this.maxStack = new UInt16VM(a => CallHasErrorUpdated()); this.localVarSigTok = new UInt32VM(a => CallHasErrorUpdated()); this.headerSize = new ByteVM(a => CallHasErrorUpdated()); this.headerRVA = new UInt32VM(a => CallHasErrorUpdated()); this.headerFileOffset = new UInt64VM(a => CallHasErrorUpdated()); this.rva = new UInt32VM(a => CallHasErrorUpdated()); this.fileOffset = new UInt64VM(a => CallHasErrorUpdated()); Reinitialize(); }
public ResourceElementVM(ResourceElementOptions options, ModuleDef ownerModule, bool canDeserialize) { this.origOptions = options; this.canDeserialize = canDeserialize; this.booleanVM = new BooleanVM(a => HasErrorUpdated()); this.charVM = new CharVM(a => HasErrorUpdated()); this.byteVM = new ByteVM(a => HasErrorUpdated()); this.sbyteVM = new SByteVM(a => HasErrorUpdated()); this.int16VM = new Int16VM(a => HasErrorUpdated()); this.uint16VM = new UInt16VM(a => HasErrorUpdated()); this.int32VM = new Int32VM(a => HasErrorUpdated()); this.uint32VM = new UInt32VM(a => HasErrorUpdated()); this.int64VM = new Int64VM(a => HasErrorUpdated()); this.uint64VM = new UInt64VM(a => HasErrorUpdated()); this.singleVM = new SingleVM(a => HasErrorUpdated()); this.doubleVM = new DoubleVM(a => HasErrorUpdated()); this.decimalVM = new DecimalVM(a => HasErrorUpdated()); this.dateTimeVM = new DateTimeVM(a => HasErrorUpdated()); this.timeSpanVM = new TimeSpanVM(a => HasErrorUpdated()); this.userTypeVM = new UserTypeVM(ownerModule, canDeserialize); this.resourceElementTypeVM = new EnumListVM(resourceElementTypeList, (a, b) => OnResourceElementTypeChanged()); this.UserTypeVM.PropertyChanged += (s, e) => { if (e.PropertyName == "HasError") { HasErrorUpdated(); } }; Reinitialize(); }
public void ByteVM_EditValueProvider_HexNumber_100() { var vm = new ByteVM(); vm.Value = 1; vm.EditValueProvider.HexNumber.Value = "100"; Assert.AreEqual((int)1, vm.Value); Assert.That(((IDataErrorInfo)vm.EditValueProvider.HexNumber)["Value"], Is.Not.Null.And.Not.Empty); }
public ByteHexField(HexDocument doc, string parentName, string name, ulong start, bool useDecimal = false) : base(doc, parentName, name, start, 1) { var val = (byte)doc.ReadByte(start); this.data = new ByteVM(val, a => UpdateValue()); if (useDecimal) { this.data.Value = val; } }
public InstructionOperandVM() { SByte = new SByteVM(a => FieldUpdated()); Byte = new ByteVM(a => FieldUpdated()); Int32 = new Int32VM(a => FieldUpdated()); Int64 = new Int64VM(a => FieldUpdated()); Single = new SingleVM(a => FieldUpdated()); Double = new DoubleVM(a => FieldUpdated()); String = new StringVM(a => FieldUpdated()); OperandListVM = new ListVM <object>((a, b) => FieldUpdated()); OperandListVM.DataErrorInfoDelegate = VerifyOperand; }
public InstructionOperandVM() { this.@sbyte = new SByteVM(a => FieldUpdated()); this.@byte = new ByteVM(a => FieldUpdated()); this.int32 = new Int32VM(a => FieldUpdated()); this.int64 = new Int64VM(a => FieldUpdated()); this.single = new SingleVM(a => FieldUpdated()); this.@double = new DoubleVM(a => FieldUpdated()); this.@string = new StringVM(a => FieldUpdated()); this.operandListVM = new ListVM<object>((a, b) => FieldUpdated()); this.OperandListVM.DataErrorInfoDelegate = VerifyOperand; }
public InstructionOperandVM() { this.@sbyte = new SByteVM(a => FieldUpdated()); this.@byte = new ByteVM(a => FieldUpdated()); this.int32 = new Int32VM(a => FieldUpdated()); this.int64 = new Int64VM(a => FieldUpdated()); this.single = new SingleVM(a => FieldUpdated()); this.@double = new DoubleVM(a => FieldUpdated()); this.@string = new StringVM(a => FieldUpdated()); this.operandListVM = new ListVM <object>((a, b) => FieldUpdated()); this.OperandListVM.DataErrorInfoDelegate = VerifyOperand; }
public void ByteVM() { var vm = new ByteVM(); vm.EditValueProvider.String = "-1"; Assert.AreEqual(true, vm.ErrorProvider.HasError); Assert.AreEqual(0, vm.Value); vm.EditValueProvider.String = "1"; Assert.AreEqual(false, vm.ErrorProvider.HasError); Assert.AreEqual(1, vm.Value); vm.EditValueProvider.String = "256"; Assert.AreEqual(true, vm.ErrorProvider.HasError); Assert.AreEqual(1, vm.Value); vm.EditValueProvider.String = "255"; Assert.AreEqual(false, vm.ErrorProvider.HasError); Assert.AreEqual(255, vm.Value); }
public CilBodyVM(CilBodyOptions options, ModuleDef ownerModule, IDecompilerService decompilerService, TypeDef ownerType, MethodDef ownerMethod, bool initialize) { OwnerModule = ownerModule; this.ownerMethod = ownerMethod; origOptions = options; TypeSigCreatorOptions = new TypeSigCreatorOptions(ownerModule, decompilerService) { CanAddGenericTypeVar = ownerType.HasGenericParameters, CanAddGenericMethodVar = ownerMethod.MethodSig.GetGenParamCount() > 0, OwnerType = ownerType, OwnerMethod = ownerMethod, }; LocalsListVM = new LocalsIndexObservableCollection(this, () => new LocalVM(TypeSigCreatorOptions, new LocalOptions(new Local(ownerModule.CorLibTypes.Int32)))); InstructionsListVM = new IndexObservableCollection <InstructionVM>(() => CreateInstructionVM()); ExceptionHandlersListVM = new IndexObservableCollection <ExceptionHandlerVM>(() => new ExceptionHandlerVM(TypeSigCreatorOptions, new ExceptionHandlerOptions())); LocalsListVM.UpdateIndexesDelegate = LocalsUpdateIndexes; InstructionsListVM.UpdateIndexesDelegate = InstructionsUpdateIndexes; ExceptionHandlersListVM.UpdateIndexesDelegate = ExceptionHandlersUpdateIndexes; InstructionsListVM.CollectionChanged += InstructionsListVM_CollectionChanged; LocalsListVM.CollectionChanged += LocalsListVM_CollectionChanged; ExceptionHandlersListVM.CollectionChanged += ExceptionHandlersListVM_CollectionChanged; MaxStack = new UInt16VM(a => CallHasErrorUpdated()); LocalVarSigTok = new UInt32VM(a => CallHasErrorUpdated()); HeaderSize = new ByteVM(a => CallHasErrorUpdated()); HeaderRVA = new UInt32VM(a => CallHasErrorUpdated()); HeaderFileOffset = new UInt64VM(a => CallHasErrorUpdated()); RVA = new UInt32VM(a => CallHasErrorUpdated()); FileOffset = new UInt64VM(a => CallHasErrorUpdated()); if (initialize) { Reinitialize(); } }
public ResourceElementVM(ResourceElementOptions options, ModuleDef ownerModule, bool canDeserialize) { this.origOptions = options; this.canDeserialize = canDeserialize; this.booleanVM = new BooleanVM(a => HasErrorUpdated()); this.charVM = new CharVM(a => HasErrorUpdated()); this.byteVM = new ByteVM(a => HasErrorUpdated()); this.sbyteVM = new SByteVM(a => HasErrorUpdated()); this.int16VM = new Int16VM(a => HasErrorUpdated()); this.uint16VM = new UInt16VM(a => HasErrorUpdated()); this.int32VM = new Int32VM(a => HasErrorUpdated()); this.uint32VM = new UInt32VM(a => HasErrorUpdated()); this.int64VM = new Int64VM(a => HasErrorUpdated()); this.uint64VM = new UInt64VM(a => HasErrorUpdated()); this.singleVM = new SingleVM(a => HasErrorUpdated()); this.doubleVM = new DoubleVM(a => HasErrorUpdated()); this.decimalVM = new DecimalVM(a => HasErrorUpdated()); this.dateTimeVM = new DateTimeVM(a => HasErrorUpdated()); this.timeSpanVM = new TimeSpanVM(a => HasErrorUpdated()); this.userTypeVM = new UserTypeVM(ownerModule, canDeserialize); this.resourceElementTypeVM = new EnumListVM(resourceElementTypeList, (a, b) => OnResourceElementTypeChanged()); this.UserTypeVM.PropertyChanged += (s, e) => { if (e.PropertyName == "HasError") HasErrorUpdated(); }; Reinitialize(); }
public ByteHexField(HexDocument doc, string parentName, string name, ulong start, bool useDecimal = false) : base(doc, parentName, name, start, 1) { var val = (byte)doc.ReadByte(start); this.data = new ByteVM(val, a => UpdateValue()); if (useDecimal) this.data.Value = val; }
public InstructionOperandVM() { SByte = new SByteVM(a => FieldUpdated()); Byte = new ByteVM(a => FieldUpdated()); Int32 = new Int32VM(a => FieldUpdated()); Int64 = new Int64VM(a => FieldUpdated()); Single = new SingleVM(a => FieldUpdated()); Double = new DoubleVM(a => FieldUpdated()); String = new StringVM(a => FieldUpdated()); OperandListVM = new ListVM<object>((a, b) => FieldUpdated()); OperandListVM.DataErrorInfoDelegate = VerifyOperand; }
public ByteHexField(HexBuffer buffer, string parentName, string name, HexPosition start, bool useDecimal = false) : base(buffer, parentName, name, start, 1) { data = new ByteVM(buffer.ReadByte(start), a => UpdateValue(), useDecimal); }
public CilBodyVM(CilBodyOptions options, ModuleDef ownerModule, Language language, TypeDef ownerType, MethodDef ownerMethod) { this.ownerModule = ownerModule; this.ownerMethod = ownerMethod; this.origOptions = options; typeSigCreatorOptions = new TypeSigCreatorOptions(ownerModule, language) { CanAddGenericTypeVar = ownerType.HasGenericParameters, CanAddGenericMethodVar = ownerMethod.MethodSig.GetGenParamCount() > 0, OwnerType = ownerType, OwnerMethod = ownerMethod, }; this.localsListVM = new IndexObservableCollection<LocalVM>(() => new LocalVM(typeSigCreatorOptions, new LocalOptions(new Local(ownerModule.CorLibTypes.Int32)))); this.instructionsListVM = new IndexObservableCollection<InstructionVM>(() => CreateInstructionVM()); this.exceptionHandlersListVM = new IndexObservableCollection<ExceptionHandlerVM>(() => new ExceptionHandlerVM(typeSigCreatorOptions, new ExceptionHandlerOptions())); this.LocalsListVM.UpdateIndexesDelegate = LocalsUpdateIndexes; this.InstructionsListVM.UpdateIndexesDelegate = InstructionsUpdateIndexes; this.ExceptionHandlersListVM.UpdateIndexesDelegate = ExceptionHandlersUpdateIndexes; this.InstructionsListVM.CollectionChanged += InstructionsListVM_CollectionChanged; this.LocalsListVM.CollectionChanged += LocalsListVM_CollectionChanged; this.ExceptionHandlersListVM.CollectionChanged += ExceptionHandlersListVM_CollectionChanged; this.maxStack = new UInt16VM(a => CallHasErrorUpdated()); this.localVarSigTok = new UInt32VM(a => CallHasErrorUpdated()); this.headerSize = new ByteVM(a => CallHasErrorUpdated()); this.headerRVA = new UInt32VM(a => CallHasErrorUpdated()); this.headerFileOffset = new UInt64VM(a => CallHasErrorUpdated()); this.rva = new UInt32VM(a => CallHasErrorUpdated()); this.fileOffset = new UInt64VM(a => CallHasErrorUpdated()); Reinitialize(); }
public ByteFlagsHexField(HexBuffer buffer, string parentName, string name, HexPosition start) : base(buffer, parentName, name, start, 1) { data = new ByteVM(buffer.ReadByte(start), a => UpdateValue(), false); }
public ByteHexField(HexDocument doc, string parentName, string name, ulong start, bool useDecimal = false) : base(doc, parentName, name, start, 1) { this.data = new ByteVM((byte)doc.ReadByte(start), a => UpdateValue(), useDecimal); }
public ByteFlagsHexField(HexDocument doc, string parentName, string name, ulong start) : base(doc, parentName, name, start, 1) { this.data = new ByteVM((byte)doc.ReadByte(start), a => UpdateValue(), false); }
public ResourceElementVM(ResourceElementOptions options, ModuleDef ownerModule, bool canDeserialize) { origOptions = options; this.canDeserialize = canDeserialize; BooleanVM = new BooleanVM(a => HasErrorUpdated()); CharVM = new CharVM(a => HasErrorUpdated()); ByteVM = new ByteVM(a => HasErrorUpdated()); SByteVM = new SByteVM(a => HasErrorUpdated()); Int16VM = new Int16VM(a => HasErrorUpdated()); UInt16VM = new UInt16VM(a => HasErrorUpdated()); Int32VM = new Int32VM(a => HasErrorUpdated()); UInt32VM = new UInt32VM(a => HasErrorUpdated()); Int64VM = new Int64VM(a => HasErrorUpdated()); UInt64VM = new UInt64VM(a => HasErrorUpdated()); SingleVM = new SingleVM(a => HasErrorUpdated()); DoubleVM = new DoubleVM(a => HasErrorUpdated()); DecimalVM = new DecimalVM(a => HasErrorUpdated()); DateTimeVM = new DateTimeVM(a => HasErrorUpdated()); TimeSpanVM = new TimeSpanVM(a => HasErrorUpdated()); UserTypeVM = new UserTypeVM(ownerModule, canDeserialize); ResourceElementTypeVM = new EnumListVM(resourceElementTypeList, (a, b) => OnResourceElementTypeChanged()); UserTypeVM.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(UserTypeVM.HasError)) HasErrorUpdated(); }; Reinitialize(); }
public ConstantTypeVM(ModuleDef ownerModule, object value, ConstantType[] validConstants, bool allowNullString, bool arraysCanBeNull, TypeSigCreatorOptions options = null) { if (options == null) { IList<ConstantType> clist = validConstants; if (clist.IndexOf(ConstantType.Type) >= 0 || clist.IndexOf(ConstantType.TypeArray) >= 0 || clist.IndexOf(ConstantType.ObjectArray) >= 0) { throw new ArgumentNullException(); } } this.arraysCanBeNull = arraysCanBeNull; var list = validConstants.Select(a => typeToEnumVM[a]); this.constantTypeEnumListVM = new EnumListVM(list, (a, b) => OnConstantChanged()); this.boolean = new BooleanVM(a => FieldUpdated()); this.@char = new CharVM(a => FieldUpdated()); this.@sbyte = new SByteVM(a => FieldUpdated()); this.@byte = new ByteVM(a => FieldUpdated()); this.int16 = new Int16VM(a => FieldUpdated()); this.uint16 = new UInt16VM(a => FieldUpdated()); this.int32 = new Int32VM(a => FieldUpdated()); this.uint32 = new UInt32VM(a => FieldUpdated()); this.int64 = new Int64VM(a => FieldUpdated()); this.uint64 = new UInt64VM(a => FieldUpdated()); this.single = new SingleVM(a => FieldUpdated()); this.@double = new DoubleVM(a => FieldUpdated()); this.@string = new StringVM(a => FieldUpdated(), allowNullString); this.@enum = new EnumDataFieldVM(ownerModule, a => FieldUpdated()); this.type = new TypeSigVM(a => FieldUpdated(), options); this.objectArray = new ObjectListDataFieldVM(ownerModule, a => FieldUpdated(), options); this.booleanArray = new BooleanListDataFieldVM(a => FieldUpdated()); this.charArray = new CharListDataFieldVM(a => FieldUpdated()); this.sbyteArray = new SByteListDataFieldVM(a => FieldUpdated()); this.byteArray = new ByteListDataFieldVM(a => FieldUpdated()); this.int16Array = new Int16ListDataFieldVM(a => FieldUpdated()); this.uint16Array = new UInt16ListDataFieldVM(a => FieldUpdated()); this.int32Array = new Int32ListDataFieldVM(a => FieldUpdated()); this.uint32Array = new UInt32ListDataFieldVM(a => FieldUpdated()); this.int64Array = new Int64ListDataFieldVM(a => FieldUpdated()); this.uint64Array = new UInt64ListDataFieldVM(a => FieldUpdated()); this.singleArray = new SingleListDataFieldVM(a => FieldUpdated()); this.doubleArray = new DoubleListDataFieldVM(a => FieldUpdated()); this.stringArray = new StringListDataFieldVM(a => FieldUpdated()); this.enumArray = new EnumListDataFieldVM(ownerModule, a => FieldUpdated()); this.typeArray = new TypeSigListDataFieldVM(a => FieldUpdated(), options); this.Value = value; }
public ByteFlagsHexField(StructField <ByteFlagsData> field, bool useDecimal = false) : base(field) { data = new ByteVM(buffer.ReadByte(Span.Start), a => UpdateValue(), false); }