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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        public VM()
        {
            InitiliazeItems();
            InitilaizeDt();
            var helloCm = CommandItemFactory.CreateNew(null);

            helloCm.Name = "你好";
            Commands.Add(helloCm);
        }
예제 #6
0
        private static ICommandItem CreateEncodingCommand(IHexDataContext hexContext, IBytesToCharEncoding encoding)
        {
            var cmi = CommandItemFactory.CreateNew(new DelegateCommand(() => {
                hexContext.BytesToCharEncoding = encoding;
            }));

            cmi.Name = encoding.EncodingName;
            return(cmi);
        }
예제 #7
0
        /// <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);
        }
예제 #14
0
 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);
        }
예제 #17
0
        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);
        }