/// <summary>
        /// 根据后缀选择最佳视图,并且切换至最佳视图
        /// </summary>
        /// <param name="extension">要切换的后缀</param>
        /// <param name="argsType">打开方式</param>
        private IFileViewer _Open(string extension, FileViewerArgsType argsType)
        {
            if (this.FileViewers == null || this.FileViewers.Count == 0)
            {
                return(null);
            }
            FileViewerType type   = FileViewerConfig.Config.BestSupport(extension, argsType, this.FileViewers.Select(p => p.ViewerType).ToArray());
            IFileViewer    viewer = this.FileViewers.Where(p => p.ViewerType == type).FirstOrDefault();

            foreach (UIElement ui in this.FileViewers)
            {
                if (ui == null)
                {
                    continue;
                }
                if (ui == viewer)
                {
                    ui.Visibility = System.Windows.Visibility.Visible;
                    IFileViewer ifv = ui as IFileViewer;
                }
                else
                {
                    ui.Visibility = System.Windows.Visibility.Collapsed;
                }
            }
            this.CurrentFileViewer = viewer;
            return(viewer);
        }
Esempio n. 2
0
        private void cmdEdit_Click(object sender, System.EventArgs e)
        {
            IFileViewer fileViewer = GetCurrentViewer();
            int         fileID     = fileViewer.FileID;
            CFile       file       = new FileSystem(Globals.CurrentIdentity).GetFile(fileID);

            //Check to see if this file is locked
            if (!CheckLock(file))
            {
                BindData(GetWindow());
                return;
            }

            try {
                new FileSystem(Globals.CurrentIdentity).Edit(file);
            } catch (FileOperationException er) {
                PageError(er.Message);
                return;
            }

            fileViewer.Edit();
            cmdSave.Enabled = cmdCancel.Enabled = true;
            cmdEdit.Enabled = false;
            CheckLock(file);
        }
Esempio n. 3
0
        private void RenderFile(Blob blob, string filePath, string extension)
        {
            ViewModel.ErrorText = null;

            if (blob == null)
            {
                return;
            }

            ViewerContent.Children.Clear();

            UserControl fileViewerControl = CreateViewer(extension ?? Path.GetExtension(blob));

            _viewer = (IFileViewer)fileViewerControl;
            if (_viewer is IFileEditor editor)
            {
                editor.FileChanged += _ => ViewModel.HasChanged = true;
            }

            try
            {
                _viewer.SetContentFromFile(filePath, extension);
                ViewerContent.Children.Add(fileViewerControl);
            }
            catch (Exception ex)
            {
                ViewModel.ErrorText = ex.Message;
                Log.Error(ex, "failed to render");
            }
        }
        /// <summary>
        /// 强制切换至某视图
        /// </summary>
        /// <param name="type">要切换至的视图类型</param>
        /// <returns>是否成功切换</returns>
        public bool ChangeToView(FileViewerType type)
        {
            if (this.FileViewers == null || this.FileViewers.Count == 0)
            {
                return(false);
            }
            IFileViewer ifv = this.FileViewers.Where(p => p.ViewerType == type).FirstOrDefault();

            if (ifv != null && ifv is UIElement)
            {
                UIElement ui = ifv as UIElement;
                foreach (UIElement element in this.FileViewers)
                {
                    if (element != null && element != ui)
                    {
                        element.Visibility = System.Windows.Visibility.Collapsed;
                    }
                }
                ui.Visibility = System.Windows.Visibility.Visible;
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 5
0
        public FileViewer()
        {
            TreatAllFilesAsText  = false;
            ShowEntireFile       = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            if (GitCommands.Settings.RunningOnWindows())
            {
                _internalFileViewer = new FileViewerWindows();
            }
            else
            {
                _internalFileViewer = new FileViewerMono();
            }

            _internalFileViewer.MouseEnter += _internalFileViewer_MouseEnter;
            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove  += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;

            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
            {
                ResetForText(null);
                _internalFileViewer.SetText("Unsupported file");
                if (TextLoaded != null)
                {
                    TextLoaded(this, null);
                }
            };

            IgnoreWhitespaceChanges = false;

            IsReadOnly = true;

            this.encodingToolStripComboBox.Items.AddRange(new Object[]
            {
                "Default (" + Encoding.Default.HeaderName + ")", "ASCII",
                "Unicode", "UTF7", "UTF8", "UTF32"
            });
            _internalFileViewer.MouseMove           += TextAreaMouseMove;
            _internalFileViewer.MouseLeave          += TextAreaMouseLeave;
            _internalFileViewer.TextChanged         += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged    += _internalFileViewer_ScrollPosChanged;
            _internalFileViewer.SelectedLineChanged += _internalFileViewer_SelectedLineChanged;
            _internalFileViewer.DoubleClick         += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            ContextMenu.Opening += ContextMenu_Opening;
        }
Esempio n. 6
0
        public FileViewer()
        {
            TreatAllFilesAsText  = false;
            ShowEntireFile       = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            GitUICommandsSourceSet += FileViewer_GitUICommandsSourceSet;

            _internalFileViewer             = new FileViewerInternal();
            _internalFileViewer.MouseEnter += _internalFileViewer_MouseEnter;
            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove  += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;

            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
            {
                ResetForText(null);
                _internalFileViewer.SetText("Unsupported file: \n\n" + args.Exception.Message);
                if (TextLoaded != null)
                {
                    TextLoaded(this, null);
                }
            };

            IgnoreWhitespaceChanges   = AppSettings.IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges;

            IsReadOnly = true;

            this.encodingToolStripComboBox.Items.AddRange(new Object[]
            {
                "Default (" + Encoding.Default.HeaderName + ")", "DOS852", "ASCII",
                "Unicode", "UTF7", "UTF8", "UTF32"
            });
            _internalFileViewer.MouseMove           += TextAreaMouseMove;
            _internalFileViewer.MouseLeave          += TextAreaMouseLeave;
            _internalFileViewer.TextChanged         += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged    += _internalFileViewer_ScrollPosChanged;
            _internalFileViewer.SelectedLineChanged += _internalFileViewer_SelectedLineChanged;
            _internalFileViewer.DoubleClick         += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            if (RunTime() && ContextMenuStrip == null)
            {
                ContextMenuStrip = contextMenu;
            }
            contextMenu.Opening += ContextMenu_Opening;
        }
Esempio n. 7
0
        public FileViewer()
        {
            TreatAllFilesAsText = false;
            ShowEntireFile = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            GitUICommandsSourceSet += FileViewer_GitUICommandsSourceSet;

            if (GitCommands.Utils.EnvUtils.RunningOnWindows())
                _internalFileViewer = new FileViewerWindows();
            else
                _internalFileViewer = new FileViewerMono();

            _internalFileViewer.MouseEnter += _internalFileViewer_MouseEnter;
            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;
            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file: \n\n" + args.Exception.Message);
                    if (TextLoaded != null)
                        TextLoaded(this, null);
                };

            IgnoreWhitespaceChanges = AppSettings.IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges;

            IsReadOnly = true;

            this.encodingToolStripComboBox.Items.AddRange(new Object[]
                                                    {
                                                        "Default (" + Encoding.Default.HeaderName + ")", "ASCII",
                                                        "Unicode", "UTF7", "UTF8", "UTF32"
                                                    });
            _internalFileViewer.MouseMove += TextAreaMouseMove;
            _internalFileViewer.MouseLeave += TextAreaMouseLeave;
            _internalFileViewer.TextChanged += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged += _internalFileViewer_ScrollPosChanged;
            _internalFileViewer.SelectedLineChanged += _internalFileViewer_SelectedLineChanged;
            _internalFileViewer.DoubleClick += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            if (RunTime() && ContextMenuStrip == null)
                ContextMenuStrip = contextMenu;
            contextMenu.Opening += ContextMenu_Opening;
        }
        public SignatureListViewModel(ISignatureService signatureService, IFileViewer fileViewer) {
            this.signatureService = signatureService;
            this.fileViewer = fileViewer;

            this.Configure = new Command(() => App.NavigateTo<SignaturePadConfigViewModel>());
            this.Create = new Command(this.OnCreate);
            this.Delete = new Command<Signature>(x => this.OnDelete(x));
            this.View = new Command<Signature>(this.OnView);
            this.List = new ObservableCollection<Signature>();
        }
        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="stream">文件流</param>
        /// <param name="extension">要打开的文件扩展名</param>
        public void Open(System.IO.Stream stream, string extension)
        {
            IFileViewer viewer = this._Open(extension, FileViewerArgsType.Stream);

            if (viewer != null)
            {
                viewer.Open(stream, extension);
            }
            this.OpenArgs = stream;
        }
        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="buffer">文件Buffer</param>
        /// <param name="extension">要打开的文件扩展名</param>
        public void Open(byte[] buffer, string extension)
        {
            IFileViewer viewer = this._Open(extension, FileViewerArgsType.Buffer);

            if (viewer != null)
            {
                viewer.Open(buffer, extension);
            }
            this.OpenArgs = buffer;
        }
        public SignatureListViewModel(ISignatureService signatureService, IUserDialogService dialogs, IFileSystem fileSystem, IFileViewer fileViewer) {
            this.signatureService = signatureService;
            this.dialogs = dialogs;
            this.fileSystem = fileSystem;
            this.fileViewer = fileViewer;

            this.Configure = new Command(() => App.NavigateTo<SignaturePadConfigViewModel>());
            this.Create = new Command(this.OnCreate);
            this.List = new ObservableList<Signature>();
        }
Esempio n. 12
0
        public FileViewer()
        {
            TreatAllFilesAsText = false;
            ShowEntireFile = false;
            DisableFocusControlOnHover = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            if (GitCommands.Settings.RunningOnWindows())
                _internalFileViewer = new FileViewerWindows();
            else
                _internalFileViewer = new FileViewerMono();

            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;
            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file");
                    if (TextLoaded != null)
                        TextLoaded(this, null);
                };

            IgnoreWhitespaceChanges = false;

            IsReadOnly = true;

            Settings.WorkingDirChanged += WorkingDirChanged;

            this.Encoding = Settings.FilesEncoding;

            this.encodingToolStripComboBox.Items.AddRange(new Object[]
                                                    {
                                                        "Default (" + Encoding.Default.HeaderName + ")", "ASCII",
                                                        "Unicode", "UTF7", "UTF8", "UTF32"
                                                    });
            _internalFileViewer.MouseMove += TextAreaMouseMove;
            _internalFileViewer.MouseLeave += TextAreaMouseLeave;
            _internalFileViewer.TextChanged += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged += new EventHandler(_internalFileViewer_ScrollPosChanged);
            _internalFileViewer.SelectedLineChanged += new SelectedLineChangedEventHandler(_internalFileViewer_SelectedLineChanged);
            _internalFileViewer.DoubleClick += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            ContextMenu.Opening += ContextMenu_Opening;
        }
        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="path">文件路径</param>
        public void Open(string path)
        {
            string      extension = System.IO.Path.GetExtension(path);
            IFileViewer viewer    = this._Open(extension, FileViewerArgsType.Path);

            if (viewer != null)
            {
                viewer.Open(path);
            }
            this.OpenArgs = path;
        }
Esempio n. 14
0
        private void cmdCreate_Click(object sender, System.EventArgs e)
        {
            string         comment;
            double         points;
            IFileViewer    fileViewer = GetCurrentViewer();
            int            fileID = fileViewer.FileID, type;
            int            rubID = ucRubric.GetCurrentRubricID();
            CannedResponse can   = GetCannedResponse();
            ArrayList      lines;
            string         parserrmsg = "";

            //Try to parse line string
            try {
                lines = ParseLinesAffected(txtLines.Text);
            } catch (Exception er) {
                lines      = null;
                parserrmsg = er.Message;
            }

            if (lines == null)
            {
                PageCommentError(parserrmsg);
            }
            else if (lines.Count == 0)
            {
                PageCommentError("Must enter at least one line affected");
            }
            else
            {
                if (can == null)
                {
                    comment = txtCustom.Text;
                    type    = Convert.ToInt32(ddlType.SelectedValue);
                    points  = Convert.ToDouble(txtPoints.Text);
                }
                else
                {
                    comment = can.Comment;
                    type    = can.Type;
                    points  = can.Points;
                }
                try {
                    new Results(Globals.CurrentIdentity).CreateSubj(GetSubID(), rubID, comment,
                                                                    fileID, (int)lines[0], points, lines, type);
                } catch (DataAccessException er) {
                    PageCommentError(er.Message);
                } catch (LineParseException er) {
                    PageCommentError(er.Message);
                }
            }

            ucRubric.UpdateRubric();
            BindData(GetWindow());
        }
        public SignatureListViewModel(ISignatureService signatureService, IUserDialogService dialogs, IFileSystem fileSystem, IFileViewer fileViewer)
        {
            this.signatureService = signatureService;
            this.dialogs          = dialogs;
            this.fileSystem       = fileSystem;
            this.fileViewer       = fileViewer;

            this.Configure = new Command(() => App.NavigateTo <SignaturePadConfigViewModel>());
            this.Create    = new Command(this.OnCreate);
            this.List      = new ObservableList <Signature>();
        }
Esempio n. 16
0
 public void Setup()
 {
     _ResourceResolver = new TinyIoCContainer();
     _Configuration    = Mock.Of <IConfiguration>();
     _ResourceResolver.Register <IConfiguration>(_Configuration);
     _FileViewer = Mock.Of <IFileViewer>();
     _ResourceResolver.Register <IFileViewer>(_FileViewer);
     _ResourceResolver.Register <IFileLocationParser>(Mock.Of <IFileLocationParser>());
     _ResourceResolver.Register <IFileLocationMapper>(Mock.Of <IFileLocationMapper>());
     _MainViewModel = new MainViewModel(_ResourceResolver);
 }
Esempio n. 17
0
        public SignatureListViewModel(ISignatureService signatureService, IFileViewer fileViewer)
        {
            this.signatureService = signatureService;
            this.fileViewer       = fileViewer;

            this.Configure = new Command(() => App.NavigateTo <SignaturePadConfigViewModel>());
            this.Create    = new Command(this.OnCreate);
            this.Delete    = new Command <Signature>(x => this.OnDelete(x));
            this.View      = new Command <Signature>(this.OnView);
            this.List      = new ObservableCollection <Signature>();
        }
Esempio n. 18
0
        public FileViewer()
        {
            TreatAllFilesAsText        = false;
            ShowEntireFile             = false;
            DisableFocusControlOnHover = false;
            NumberOfVisibleLines       = 3;
            InitializeComponent();
            Translate();

            if (GitCommands.Settings.RunningOnWindows())
            {
                _internalFileViewer = new FileViewerWindows();
            }
            else
            {
                _internalFileViewer = new FileViewerMono();
            }

            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove  += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;

            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
            {
                ResetForText(null);
                _internalFileViewer.SetText("Unsupported file");
                if (TextLoaded != null)
                {
                    TextLoaded(this, null);
                }
            };

            IgnoreWhitespaceChanges = false;

            IsReadOnly = true;

            _internalFileViewer.MouseMove           += TextAreaMouseMove;
            _internalFileViewer.MouseLeave          += TextAreaMouseLeave;
            _internalFileViewer.TextChanged         += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged    += new EventHandler(_internalFileViewer_ScrollPosChanged);
            _internalFileViewer.SelectedLineChanged += new SelectedLineChangedEventHandler(_internalFileViewer_SelectedLineChanged);
            _internalFileViewer.DoubleClick         += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            ContextMenu.Opening += ContextMenu_Opening;
        }
        public SignatureListViewModel(IFileSystem fileSystem,
                                      IFileViewer fileViewer,
                                      IUserDialogs dialogService,
                                      ISignatureService signatureService)
        {
            this.fileSystem       = fileSystem;
            this.fileViewer       = fileViewer;
            this.dialogService    = dialogService;
            this.signatureService = signatureService;

            this.Create = new MvxAsyncCommand(OnCreate);
            this.View   = new MvxCommand <IFile>(OnView);
            this.List   = new ObservableCollection <IFile>();
        }
        public SignatureListViewModel(IFileSystem fileSystem, 
								      IFileViewer fileViewer,
                                      IUserDialogService dialogService,
                                      ISignatureService signatureService){
			this.fileSystem = fileSystem;
			this.fileViewer = fileViewer;
            this.dialogService = dialogService;
            this.signatureService = signatureService;

            this.Configure = new MvxCommand(() => this.ShowViewModel<SignatureConfigurationViewModel>());
			this.Create = new MvxCommand(async () => await this.OnCreate());
            this.View = new MvxCommand<IFile>(this.OnView);
			this.List = new ObservableCollection<IFile>();
        }
        public SignatureListViewModel(IFileSystem fileSystem,
                                      IFileViewer fileViewer,
                                      IUserDialogService dialogService,
                                      ISignatureService signatureService)
        {
            this.fileSystem       = fileSystem;
            this.fileViewer       = fileViewer;
            this.dialogService    = dialogService;
            this.signatureService = signatureService;

            this.Configure = new MvxCommand(() => this.ShowViewModel <SignatureConfigurationViewModel>());
            this.Create    = new MvxCommand(async() => await this.OnCreate());
            this.View      = new MvxCommand <IFile>(this.OnView);
            this.List      = new ObservableCollection <IFile>();
        }
Esempio n. 22
0
        public FileViewer()
        {
            TreatAllFilesAsText = false;
            ShowEntireFile = false;
            DisableFocusControlOnHover = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            if (GitCommands.Settings.RunningOnWindows())
                _internalFileViewer = new FileViewerWindows();
            else
                _internalFileViewer = new FileViewerMono();

            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;
            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file");
                    if (TextLoaded != null)
                        TextLoaded(this, null);
                };

            IgnoreWhitespaceChanges = false;

            IsReadOnly = true;

            _internalFileViewer.MouseMove += TextAreaMouseMove;
            _internalFileViewer.MouseLeave += TextAreaMouseLeave;
            _internalFileViewer.TextChanged += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged += new EventHandler(_internalFileViewer_ScrollPosChanged);
            _internalFileViewer.SelectedLineChanged += new SelectedLineChangedEventHandler(_internalFileViewer_SelectedLineChanged);
            _internalFileViewer.DoubleClick += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;
            this.Hotkeys = HotkeySettingsManager.LoadHotkeys(HotkeySettingsName);

            ContextMenu.Opening += ContextMenu_Opening;
        }
Esempio n. 23
0
        public FileViewer()
        {
            TreatAllFilesAsText = false;
            ShowEntireFile = false;
            DisableFocusControlOnHover = false;
            NumberOfVisibleLines = 3;
            InitializeComponent();
            Translate();

            _internalFileViewer = InternalFileViewer;

            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;
            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file");
                    if (TextLoaded != null)
                        TextLoaded(this, null);
                };

            IgnoreWhitespaceChanges = false;

            IsReadOnly = true;

            this.Encoding = Settings.Encoding;
            this.encodingToolStripComboBox.Items.AddRange(EncodingTypes);

            this.encodingToolStripComboBox.Text = ToolStripComboBoxText;
            _internalFileViewer.MouseMove += TextAreaMouseMove;
            _internalFileViewer.MouseLeave += TextAreaMouseLeave;
            _internalFileViewer.TextChanged += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged += new EventHandler(_internalFileViewer_ScrollPosChanged);
            _internalFileViewer.SelectedLineChanged += new SelectedLineChangedEventHandler(_internalFileViewer_SelectedLineChanged);
            _internalFileViewer.DoubleClick += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            ContextMenu.Opening += ContextMenu_Opening;
        }
Esempio n. 24
0
        public MainViewModel(TinyIoCContainer resourceResolver)
        {
            _ResourceResolver = resourceResolver;

            Configuration = _ResourceResolver.Resolve <IConfiguration>();
            _FileViewer   = _ResourceResolver.Resolve <IFileViewer>();

            _Reporter = new ObservableReporter(_ResourceResolver.Resolve <IFileLocationParser>(), _ResourceResolver.Resolve <IFileLocationMapper>());

            _ResourceResolver.Register <IReporter>(_Reporter);

            StartServerCommand   = new RelayCommand(StartServer);
            RunAllTestsCommand   = new RelayCommand(RunAllTests);
            CopyServerUrlCommand = new RelayCommand(CopyServerUrlToClipboard);
            ConfigurationCommand = new RelayCommand(() => ConfigurationVisible = true);
            OpenFileCommand      = new RelayCommand <FileLocation>(fl => _FileViewer.Open(fl.FullPath, fl.LineNumber, fl.ColumnNumber));
        }
Esempio n. 25
0
        private void GiveUpLock()
        {
            IFileViewer fileViewer = GetCurrentViewer();
            int         fileID     = fileViewer.FileID;
            CFile       file       = new FileSystem(Globals.CurrentIdentity).GetFile(fileID);

            try {
                new FileSystem(Globals.CurrentIdentity).UnLock(file);
            } catch (FileOperationException er) {
                PageError(er.Message);
            }

            fileViewer.UnEdit();
            cmdSave.Enabled = cmdCancel.Enabled = false;
            cmdEdit.Enabled = true;
            CheckLock(file);
            BindData(GetWindow());
        }
Esempio n. 26
0
        public static void SetSyntax(IFileViewer editor, string fileName)
        {
            string syntax = "XML";

            if (fileName.LastIndexOf('.') > 0)
            {
                string extension = fileName.Substring(fileName.LastIndexOf('.') + 1).ToUpper();

                switch (extension)
                {
                case "BAS":
                case "VBS":
                case "VB":
                    syntax = "VBNET";
                    break;

                case "CS":
                    syntax = "C#";
                    break;

                case "CMD":
                case "BAT":
                    syntax = "BAT";
                    break;

                case "C":
                case "RC":
                case "IDL":
                case "H":
                case "CPP":
                    syntax = "C#";
                    break;

                case "JS":
                    syntax = "JavaScript";
                    break;

                default:
                    break;
                }
            }
            editor.SetHighlighting(syntax);
        }
        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="args">打开文件参数</param>
        public void Open(IFileViewerArgs args)
        {
            string      extension = args.Extension;
            IFileViewer viewer    = null;

            if (args.Buffer == null && string.IsNullOrEmpty(args.Path) && args.Stream == null)
            {
                viewer = this.FileViewers.Where(c => c.ViewerType == FileViewerType.None).FirstOrDefault();
            }
            else
            {
                viewer = this._Open(extension, args.Type);
            }
            if (viewer != null)
            {
                viewer.Open(args);
            }
            this.OpenArgs = args;
        }
Esempio n. 28
0
        private void cmdSave_Click(object sender, System.EventArgs e)
        {
            IFileViewer fileViewer = GetCurrentViewer();
            int         fileID     = fileViewer.FileID;
            CFile       file       = new FileSystem(Globals.CurrentIdentity).GetFile(fileID);

            new FileSystem(Globals.CurrentIdentity).LoadFileData(file);
            try {
                file.Data = fileViewer.Data.ToCharArray();
                new FileSystem(Globals.CurrentIdentity).Save(file);
            } catch (FileOperationException er) {
                PageError(er.Message);
            }

            fileViewer.LoadFile(file);
            fileViewer.UnEdit();
            cmdSave.Enabled = cmdCancel.Enabled = false;
            cmdEdit.Enabled = true;

            CheckLock(file);
            BindData(GetWindow());
        }
Esempio n. 29
0
        public static void SetSyntax(IFileViewer editor, string fileName)
        {
            string syntax = "XML";
            if (fileName.LastIndexOf('.') > 0)
            {
                string extension = fileName.Substring(fileName.LastIndexOf('.') + 1).ToUpper();

                switch (extension)
                {
                    case "BAS":
                    case "VBS":
                    case "VB":
                        syntax = "VBNET";
                        break;
                    case "CS":
                        syntax = "C#";
                        break;
                    case "CMD":
                    case "BAT":
                        syntax = "BAT";
                        break;
                    case "C":
                    case "RC":
                    case "IDL":
                    case "H":
                    case "CPP":
                        syntax = "C#";
                        break;
                    case "JS":
                        syntax = "JavaScript";
                        break;
                    default:
                        break;
                }
            }
            editor.SetHighlighting(syntax);
        }
Esempio n. 30
0
		public DirectoryController(IFileViewer fileViewer, Action listUpdated)
            : base(fileViewer)
		{
			this.listUpdated = listUpdated;
		}
Esempio n. 31
0
        public FileViewer()
        {
            TreatAllFilesAsText  = false;
            ShowEntireFile       = false;
            NumberOfVisibleLines = AppSettings.NumberOfContextLines;
            InitializeComponent();
            Translate();

            GitUICommandsSourceSet += FileViewer_GitUICommandsSourceSet;

            _internalFileViewer             = new FileViewerInternal();
            _internalFileViewer.MouseEnter += _internalFileViewer_MouseEnter;
            _internalFileViewer.MouseLeave += _internalFileViewer_MouseLeave;
            _internalFileViewer.MouseMove  += _internalFileViewer_MouseMove;

            var internalFileViewerControl = (Control)_internalFileViewer;

            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (sender, args) =>
            {
                if (!IsDisposed)
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file: \n\n" + args.Exception.ToString());
                    if (TextLoaded != null)
                    {
                        TextLoaded(this, null);
                    }
                }
            };

            IgnoreWhitespaceChanges   = AppSettings.IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Image   = GitUI.Properties.Resources.ignore_whitespaces;
            ignoreWhitespaceChangesToolStripMenuItem.Checked = IgnoreWhitespaceChanges;
            ignoreWhitespaceChangesToolStripMenuItem.Image   = ignoreWhiteSpaces.Image;

            ignoreAllWhitespaces.Checked = AppSettings.IgnoreAllWhitespaceChanges;
            ignoreAllWhitespaces.Image   = GitUI.Properties.Resources.ignore_all_whitespaces;
            ignoreAllWhitespaceChangesToolStripMenuItem.Checked = ignoreAllWhitespaces.Checked;
            ignoreAllWhitespaceChangesToolStripMenuItem.Image   = ignoreAllWhitespaces.Image;

            ShowEntireFile = AppSettings.ShowEntireFile;
            showEntireFileButton.Checked            = ShowEntireFile;
            showEntireFileToolStripMenuItem.Checked = ShowEntireFile;

            showNonPrintChars.Checked = AppSettings.ShowNonPrintingChars;
            showNonprintableCharactersToolStripMenuItem.Checked = AppSettings.ShowNonPrintingChars;
            ToggleNonPrintingChars(AppSettings.ShowNonPrintingChars);

            IsReadOnly = true;
            var encodingList        = AppSettings.AvailableEncodings.Values.Select(e => e.EncodingName).ToList();
            var defaultEncodingName = Encoding.Default.EncodingName;

            for (int i = 0; i < encodingList.Count; i++)
            {
                if (string.Compare(encodingList[i], defaultEncodingName, true) == 0)
                {
                    encodingList[i] = "Default (" + Encoding.Default.HeaderName + ")";
                    break;
                }
            }
            encodingToolStripComboBox.Items.AddRange(encodingList.ToArray());

            _internalFileViewer.MouseMove           += TextAreaMouseMove;
            _internalFileViewer.MouseLeave          += TextAreaMouseLeave;
            _internalFileViewer.TextChanged         += TextEditor_TextChanged;
            _internalFileViewer.ScrollPosChanged    += _internalFileViewer_ScrollPosChanged;
            _internalFileViewer.SelectedLineChanged += _internalFileViewer_SelectedLineChanged;
            _internalFileViewer.DoubleClick         += (sender, args) => OnRequestDiffView(EventArgs.Empty);

            this.HotkeysEnabled = true;

            if (RunTime() && ContextMenuStrip == null)
            {
                ContextMenuStrip = contextMenu;
            }
            contextMenu.Opening += ContextMenu_Opening;
            _fullPathResolver    = new FullPathResolver(() => Module.WorkingDir);
        }
 public FindAPhotoController(IFileViewer fileViewer)
     : base(fileViewer)
 {
 }
Esempio n. 33
0
        public FileViewer()
        {
            TreatAllFilesAsText  = false;
            ShowEntireFile       = false;
            NumberOfContextLines = AppSettings.NumberOfContextLines;
            InitializeComponent();
            InitializeComplete();

            UICommandsSourceSet += OnUICommandsSourceSet;

            _internalFileViewer             = new FileViewerInternal(() => Module);
            _internalFileViewer.MouseEnter += (_, e) => OnMouseEnter(e);
            _internalFileViewer.MouseLeave += (_, e) => OnMouseLeave(e);
            _internalFileViewer.MouseMove  += (_, e) => OnMouseMove(e);
            _internalFileViewer.KeyUp      += (_, e) => OnKeyUp(e);

            var internalFileViewerControl = (Control)_internalFileViewer;

            internalFileViewerControl.Dock = DockStyle.Fill;
            Controls.Add(internalFileViewerControl);

            _async = new AsyncLoader();
            _async.LoadingError +=
                (_, e) =>
            {
                if (!IsDisposed)
                {
                    ResetForText(null);
                    _internalFileViewer.SetText("Unsupported file: \n\n" + e.Exception.ToString(), openWithDifftool: null /* not applicable */);
                    TextLoaded?.Invoke(this, null);
                }
            };

            IgnoreWhitespaceChanges   = AppSettings.IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Checked = IgnoreWhitespaceChanges;
            ignoreWhiteSpaces.Image   = Images.WhitespaceIgnore;
            ignoreWhitespaceChangesToolStripMenuItem.Checked = IgnoreWhitespaceChanges;
            ignoreWhitespaceChangesToolStripMenuItem.Image   = ignoreWhiteSpaces.Image;

            ignoreAllWhitespaces.Checked = AppSettings.IgnoreAllWhitespaceChanges;
            ignoreAllWhitespaces.Image   = Images.WhitespaceIgnoreAll;
            ignoreAllWhitespaceChangesToolStripMenuItem.Checked = ignoreAllWhitespaces.Checked;
            ignoreAllWhitespaceChangesToolStripMenuItem.Image   = ignoreAllWhitespaces.Image;

            ShowEntireFile = AppSettings.ShowEntireFile;
            showEntireFileButton.Checked            = ShowEntireFile;
            showEntireFileToolStripMenuItem.Checked = ShowEntireFile;
            SetStateOfContextLinesButtons();

            showNonPrintChars.Checked = AppSettings.ShowNonPrintingChars;
            showNonprintableCharactersToolStripMenuItem.Checked = AppSettings.ShowNonPrintingChars;
            ToggleNonPrintingChars(AppSettings.ShowNonPrintingChars);

            IsReadOnly = true;
            var encodingList        = AppSettings.AvailableEncodings.Values.Select(e => e.EncodingName).ToList();
            var defaultEncodingName = Encoding.Default.EncodingName;

            for (int i = 0; i < encodingList.Count; i++)
            {
                if (string.Equals(encodingList[i], defaultEncodingName, StringComparison.OrdinalIgnoreCase))
                {
                    encodingList[i] = "Default (" + Encoding.Default.HeaderName + ")";
                    break;
                }
            }

            encodingToolStripComboBox.Items.AddRange(encodingList.ToArray <object>());

            _internalFileViewer.MouseMove += (_, e) =>
            {
                if (_currentViewIsPatch && !fileviewerToolbar.Visible)
                {
                    fileviewerToolbar.Visible  = true;
                    fileviewerToolbar.Location = new Point(Width - fileviewerToolbar.Width - 40, 0);
                    fileviewerToolbar.BringToFront();
                }
            };
            _internalFileViewer.MouseLeave += (_, e) =>
            {
                if (GetChildAtPoint(PointToClient(MousePosition)) != fileviewerToolbar &&
                    fileviewerToolbar != null)
                {
                    fileviewerToolbar.Visible = false;
                }
            };
            _internalFileViewer.TextChanged += (sender, e) =>
            {
                if (_patchHighlighting)
                {
                    _internalFileViewer.AddPatchHighlighting();
                }

                TextChanged?.Invoke(sender, e);
            };
            _internalFileViewer.ScrollPosChanged    += (sender, e) => ScrollPosChanged?.Invoke(sender, e);
            _internalFileViewer.SelectedLineChanged += (sender, e) => SelectedLineChanged?.Invoke(sender, e);
            _internalFileViewer.DoubleClick         += (_, args) => RequestDiffView?.Invoke(this, EventArgs.Empty);

            HotkeysEnabled = true;

            if (!IsDesignModeActive && ContextMenuStrip == null)
            {
                ContextMenuStrip = contextMenu;
            }

            contextMenu.Opening += (sender, e) =>
            {
                copyToolStripMenuItem.Enabled = _internalFileViewer.GetSelectionLength() > 0;
                ContextMenuOpening?.Invoke(sender, e);
            };

            _fullPathResolver = new FullPathResolver(() => Module.WorkingDir);
        }
Esempio n. 34
0
 private void LoadPlaceHolders(IFileViewer[] viewers)
 {
     int i;
     for (i = 0; i < MAXFILES; i++) {
         string ctrlname = "phFileViewer" + i.ToString();
         PlaceHolder ph = (PlaceHolder) FindControl(ctrlname);
         if (viewers[i] != null)
             ph.Controls.Add(viewers[i] as Control);
     }
 }