private static ICommandItem GetCopyAsProCommandItem(IHexDataContext hexDataContext, IBufferToCodeFormatter formatter) { var comm = CommandFactory.CreateDelegateCommand(() => { if (hexDataContext.SelectionStart == -1 || hexDataContext.SelectionLength == -1) { return; } if (hexDataContext.SelectionLength - hexDataContext.SelectionStart > MaxCopyToClipBoardSize) { MsgBoxService.Current?.Show(LanguageService.Current?.FindResourceString(Constants.MsgText_TooLargeCopySize)); return; } try { var buffer = GetSelectionData(hexDataContext); ClipBoardService.SetText(formatter.FormatAsCode(buffer)); } catch (Exception ex) { LoggerService.WriteCallerLine(ex.Message); } }); var cmi = CommandItemFactory.CreateNew(comm); cmi.Name = LanguageService.FindResourceString(formatter.CodeLanguageName); return(cmi); }
public void Handle() { var treeService = Contracts.MainPage.MainTreeService.Current; if (treeService == null) { return; } var comm = CommandFactory.CreateDelegateCommand(() => { var streamFile = GetStreamFileFromUnitSelected(treeService); if (streamFile == null) { return; } FileExplorerStreamFileExtensions.SignSearch(streamFile); }); var cmi = CommandItemFactory.CreateNew(comm, Constants.ContextCommandItemGUID_CustomSignSearch, () => GetStreamFileFromUnitSelected(treeService) != null); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_CustomSignSearch); cmi.Sort = 12; treeService.AddContextCommand(cmi); }
public void Initialize() { var hashSets = HashSetManagementService.HashSets; if (hashSets == null) { return; } foreach (var hashSet in hashSets) { HashSetModels.Add(new HashSetModel(hashSet)); } //加入列出表功能; var listHashCmi = CommandItemFactory.CreateNew(ListHashValuesCommand); listHashCmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_ListHashValue); ContextCommands.Add(listHashCmi); //加入删除哈希集命令; var delCmi = CommandItemFactory.CreateNew(DeleteHashSetCommand); delCmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_DeleteHashSet); ContextCommands.Add(delCmi); //加入导入哈希命令; var importCmi = CommandItemFactory.CreateNew(ImportHashCommand); importCmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_ImportHash); ContextCommands.Add(importCmi); }
/// <summary> /// 创建打开文件的命令; /// </summary> /// <param name="viewerName"></param> /// <param name="viewerPath"></param> /// <param name="vm"></param> /// <returns></returns> private static ICommandItem CreateOpenFileWithProCommandItem(string viewerName, string viewerPath, Contracts.FileExplorer.ViewModels.IFolderBrowserViewModel vm) { var comm = CreateOpenFileWithProCommand(viewerPath, vm); var cmi = CommandItemFactory.CreateNew(comm); cmi.Name = viewerName; return(cmi); }
public VM() { InitiliazeItems(); InitilaizeDt(); var helloCm = CommandItemFactory.CreateNew(null); helloCm.Name = "你好"; Commands.Add(helloCm); }
private static ICommandItem CreateEncodingCommand(IHexDataContext hexContext, IBytesToCharEncoding encoding) { var cmi = CommandItemFactory.CreateNew(new DelegateCommand(() => { hexContext.BytesToCharEncoding = encoding; })); cmi.Name = encoding.EncodingName; return(cmi); }
/// <summary> /// 其它程序打开命令; /// </summary> /// <param name="vm"></param> /// <returns></returns> private static ICommandItem CreateOpenFileWithAnotherProCommandItem(Contracts.FileExplorer.ViewModels.IFolderBrowserViewModel vm) { var comm = CreateOpenFileWithAnotherProCommand(vm); var cmi = CommandItemFactory.CreateNew(comm); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_OpenFileWithAnotherPro); cmi.Sort = 128; return(cmi); }
/// <summary> /// 拷贝至新文件; /// </summary> /// <param name="hexDataContext"></param> /// <returns></returns> public static ICommandItem CreateCopyToNewFileCommandItem(IHexDataContext hexDataContext) { if (hexDataContext == null) { throw new ArgumentNullException(nameof(hexDataContext)); } var cmi = CommandItemFactory.CreateNew(CreateCopyToNewFileCommand(hexDataContext)); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_CopyToNewFile); return(cmi); }
/// <summary> /// 创建显示证据项命令; /// </summary> /// <param name="treeService"></param> /// <returns></returns> public static ICommandItem CreateShowCaseEvidencePropertyCommandItem(ITreeService treeService) { var cmi = CommandItemFactory.CreateNew( CreateShowCaseEvidencePropertyCommand(treeService), Constants.ContextCommandItemGUID_ShowCaseEvidenceProperty, () => CheckEvidenceUnitSelected(treeService) ); cmi.Name = LanguageService.Current?.FindResourceString("Properties"); cmi.Sort = 128; return(cmi); }
/// <summary> /// 另存为功能; /// </summary> /// <param name="vm"></param> /// <returns></returns> public static ICommandItem CreateSaveAsFileCommandItem(IFolderBrowserViewModel vm) { if (vm == null) { throw new ArgumentNullException(nameof(vm)); } var cmi = CommandItemFactory.CreateNew(CreateSaveAsFileCommand(vm)); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_SaveAs); cmi.Sort = 12; return(cmi); }
/// <summary> /// 创建显示案件属性命令; /// </summary> /// <param name="treeService"></param> /// <returns></returns> public static ICommandItem CreateShowCasePropertyCommandItem(ITreeService treeService) { var comm = CommandFactory.CreateDelegateCommand( () => { ServiceProvider.Current?.GetInstance <ICaseDialogService>()?.ShowCaseProperty(GetCaseFromSelectedUnit(treeService)); } ); var cmi = CommandItemFactory.CreateNew(comm, Constants.ContextCommandItemGUID_ShowCaseProperty, () => CheckCaseUnitSelected(treeService)); cmi.Name = LanguageService.FindResourceString(Constants.ShowCaseProperty); cmi.Sort = 256; return(cmi); }
/// <summary> /// 创建打开案件路径命令; /// </summary> /// <param name="treeService"></param> /// <returns></returns> public static ICommandItem CreateOpenCasePathCommandItem(ITreeService treeService) { if (treeService == null) { throw new ArgumentNullException(nameof(treeService)); } var command = CreateOpenCasePathCommand(treeService); var cmi = CommandItemFactory.CreateNew(command, Constants.ContextCommandItemGUID_OpenCasePathFolder, () => CheckCaseUnitSelected(treeService)); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_OpenCasePathFolder); cmi.Sort = 128; return(cmi); }
/// <summary> /// 复制为代码; /// </summary> /// <param name="hexDataContext"></param> /// <returns></returns> public static ICommandItem CreateCopyAsProCodeCommandItem(IHexDataContext hexDataContext) { if (hexDataContext == null) { throw new ArgumentNullException(nameof(hexDataContext)); } var cmi = CommandItemFactory.CreateNew(CreateSetAsEndCommand(hexDataContext)); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_CopyAsProgramCode); var children = GetCopyAsProCommandItems(hexDataContext); foreach (var child in children) { cmi.AddChild(child); } return(cmi); }
public void Handle(IHexDataContext hexContext) { ThreadInvoker.BackInvoke(() => { var cmi = CommandItemFactory.CreateNew(null); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_EncodingSelect); foreach (var encoding in _bytesToCharEncodings) { cmi.AddChild(CreateEncodingCommand(hexContext, encoding)); } ThreadInvoker.UIInvoke(() => { hexContext.AddContextCommand(cmi); if (_bytesToCharEncodings.Length != 0) { hexContext.BytesToCharEncoding = _bytesToCharEncodings[0]; } }); }); }
/// <summary> /// 创建移除证据项命令; /// </summary> /// <param name="treeService"></param> /// <returns></returns> public static ICommandItem CreateRemoveCaseEvidenceCommandItem(ITreeService treeService) { if (treeService == null) { throw new ArgumentNullException(nameof(treeService)); } var comm = CommandFactory.CreateDelegateCommand( () => { if (MsgBoxService.Show( LanguageService.FindResourceString(Constants.MsgText_ConfirmToRemoveEvidence), MessageBoxButton.YesNo) != MessageBoxResult.Yes) { return; } var cs = CaseService.Current?.CurrentCase; if (cs == null) { LoggerService.WriteCallerLine($"{nameof(cs)} can't be null."); return; } var evidence = GetEvidenceFromSelectedUnit(treeService); if (evidence == null) { return; } cs.RemoveCaseEvidence(evidence); } ); var cmi = CommandItemFactory.CreateNew( comm, Constants.ContextCommandItemGUID_RemoveCaseProperty, () => CheckEvidenceUnitSelected(treeService) ); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_RemoveCaseEvidence); cmi.Sort = 64; return(cmi); }
/// <summary> /// 另存勾选文件功能; /// </summary> /// <param name="vm"></param> /// <returns></returns> public static ICommandItem CreateSaveCheckedFilesCommandItem(IFolderBrowserViewModel vm) { if (vm == null) { throw new ArgumentNullException(nameof(vm)); } var cmi = CommandItemFactory.CreateNew( CommandFactory.CreateDelegateCommand(() => { if (vm.SelectedFileRows == null) { return; } RecoverFiles(vm.FileRows.Where(p => p.IsChecked).Select(p => p.File)); }) ); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_SaveCheckedAs); cmi.Sort = 12; return(cmi); }
public void Handle(Contracts.FileExplorer.IFolderBrowserDataContext dataContext) { if (dataContext == null) { return; } var vm = dataContext.FolderBrowserViewModel; if (vm == null) { return; } var cmi = CommandItemFactory.CreateNew(null, Constants.CommandItemGUID_OpenFileWith); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_OpenFileWith); cmi.Sort = 48; var cmiChildren = CreateOpenFileWithCommandItems(vm); if (cmiChildren != null) { foreach (var cmiChild in cmiChildren) { cmi.AddChild(cmiChild); } } var cmiOther = CreateOpenFileWithAnotherProCommandItem(vm); if (cmiOther != null) { cmi.AddChild(cmiOther); } vm.AddContextCommand(cmi); }
public void Handle() { var treeService = Contracts.MainPage.MainTreeService.Current; if (treeService == null) { return; } var comm = CommandFactory.CreateDelegateCommand(() => { if (CheckInnerFileUnitSelected(treeService)) { HandleOnInnerFileUnit(treeService.SelectedUnit); } else if (CheckFileSystemUnitSelected(treeService)) { HandleOnFileSystemUnit(treeService.SelectedUnit); } }); var cmi = CommandItemFactory.CreateNew(comm, Constants.ContextCommandItemGUID_RecurBrowse, () => CheckFileSystemUnitSelected(treeService) || CheckInnerFileUnitSelected(treeService)); cmi.Name = LanguageService.FindResourceString(Constants.ContextCommandName_RecurBrowse); treeService.AddContextCommand(cmi); }