Exemplo n.º 1
0
 private void SetTabIcon(LogWindow.LogWindow logWindow, Icon icon)
 {
     if (logWindow != null)
     {
         logWindow.Icon = icon;
         logWindow.DockHandler.Pane?.TabStripControl.Invalidate(false);
     }
 }
Exemplo n.º 2
0
        private void RemoveLogWindow(LogWindow.LogWindow logWindow)
        {
            lock (_logWindowList)
            {
                _logWindowList.Remove(logWindow);
            }

            DisconnectEventHandlers(logWindow);
        }
Exemplo n.º 3
0
 private void SetTabColor(LogWindow.LogWindow logWindow, Color color)
 {
     //tabPage.BackLowColor = color;
     //tabPage.BackLowColorDisabled = Color.FromArgb(255,
     //  Math.Max(0, color.R - 50),
     //  Math.Max(0, color.G - 50),
     //  Math.Max(0, color.B - 50)
     //  );
 }
Exemplo n.º 4
0
        private void OnFindInExplorerToolStripMenuItemClick(object sender, EventArgs e)
        {
            LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.LogWindow;

            Process explorer = new Process();

            explorer.StartInfo.FileName        = "explorer.exe";
            explorer.StartInfo.Arguments       = "/e,/select," + logWindow.Title;
            explorer.StartInfo.UseShellExecute = false;
            explorer.Start();
        }
Exemplo n.º 5
0
        private void OnLogWindowDisposed(object sender, EventArgs e)
        {
            LogWindow.LogWindow logWindow = sender as LogWindow.LogWindow;

            if (sender == CurrentLogWindow)
            {
                ChangeCurrentLogWindow(null);
            }

            RemoveLogWindow(logWindow);

            logWindow.Tag = null;
        }
Exemplo n.º 6
0
        private void ShowLedPeak(LogWindow.LogWindow logWin)
        {
            LogWindowData data = logWin.Tag as LogWindowData;

            lock (data)
            {
                data.diffSum = DIFF_MAX;
            }

            Icon icon = GetIcon(data.diffSum, data);

            BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWin, icon);
        }
Exemplo n.º 7
0
        private void RemoveAndDisposeLogWindow(LogWindow.LogWindow logWindow, bool dontAsk)
        {
            if (CurrentLogWindow == logWindow)
            {
                ChangeCurrentLogWindow(null);
            }

            lock (_logWindowList)
            {
                _logWindowList.Remove(logWindow);
            }

            logWindow.Close(dontAsk);
        }
Exemplo n.º 8
0
 public void ScrollAllTabsToTimestamp(DateTime timestamp, LogWindow.LogWindow senderWindow)
 {
     lock (_logWindowList)
     {
         foreach (LogWindow.LogWindow logWindow in _logWindowList)
         {
             if (logWindow != senderWindow)
             {
                 if (logWindow.ScrollToTimestamp(timestamp, false, false))
                 {
                     ShowLedPeak(logWindow);
                 }
             }
         }
     }
 }
Exemplo n.º 9
0
        private void DisconnectEventHandlers(LogWindow.LogWindow logWindow)
        {
            logWindow.FileSizeChanged              -= OnFileSizeChanged;
            logWindow.TailFollowed                 -= OnTailFollowed;
            logWindow.Disposed                     -= OnLogWindowDisposed;
            logWindow.FileNotFound                 -= OnLogWindowFileNotFound;
            logWindow.FileRespawned                -= OnLogWindowFileRespawned;
            logWindow.FilterListChanged            -= OnLogWindowFilterListChanged;
            logWindow.CurrentHighlightGroupChanged -= OnLogWindowCurrentHighlightGroupChanged;
            logWindow.SyncModeChanged              -= OnLogWindowSyncModeChanged;

            LogWindowData data = logWindow.Tag as LogWindowData;
            //data.tabPage.MouseClick -= tabPage_MouseClick;
            //data.tabPage.TabDoubleClick -= tabPage_TabDoubleClick;
            //data.tabPage.ContextMenuStrip = null;
            //data.tabPage = null;
        }
Exemplo n.º 10
0
        public LogWindow.LogWindow AddMultiFileTab(string[] fileNames)
        {
            if (fileNames.Length < 1)
            {
                return(null);
            }

            LogWindow.LogWindow logWindow = new LogWindow.LogWindow(this, fileNames[fileNames.Length - 1], false, false);
            AddLogWindow(logWindow, fileNames[fileNames.Length - 1], false);
            multiFileToolStripMenuItem.Checked    = true;
            multiFileEnabledStripMenuItem.Checked = true;
            EncodingOptions encodingOptions = new EncodingOptions();

            FillDefaultEncodingFromSettings(encodingOptions);
            BeginInvoke(new LoadMultiFilesDelegate(logWindow.LoadFilesAsMulti), fileNames, encodingOptions);
            AddToFileHistory(fileNames[0]);
            return(logWindow);
        }
Exemplo n.º 11
0
        public LogWindow.LogWindow AddFilterTab(FilterPipe pipe, string title, ILogLineColumnizer preProcessColumnizer)
        {
            LogWindow.LogWindow logWin = AddFileTab(pipe.FileName, true, title, false, preProcessColumnizer);
            if (pipe.FilterParams.searchText.Length > 0)
            {
                ToolTip tip = new ToolTip(components);
                tip.SetToolTip(logWin,
                               "Filter: \"" + pipe.FilterParams.searchText + "\"" +
                               (pipe.FilterParams.isInvert ? " (Invert match)" : "") +
                               (pipe.FilterParams.columnRestrict ? "\nColumn restrict" : "")
                               );
                tip.AutomaticDelay = 10;
                tip.AutoPopDelay   = 5000;
                LogWindowData data = logWin.Tag as LogWindowData;
                data.toolTip = tip;
            }

            return(logWin);
        }
Exemplo n.º 12
0
        private IDockContent DeserializeDockContent(string persistString)
        {
            if (persistString.Equals(WindowTypes.BookmarkWindow.ToString()))
            {
                return(_bookmarkWindow);
            }

            if (persistString.StartsWith(WindowTypes.LogWindow.ToString()))
            {
                string fileName         = persistString.Substring(WindowTypes.LogWindow.ToString().Length + 1);
                LogWindow.LogWindow win = FindWindowForFile(fileName);
                if (win != null)
                {
                    return(win);
                }

                _logger.Warn("Layout data contains non-existing LogWindow for {0}", fileName);
            }

            return(null);
        }
Exemplo n.º 13
0
        private void OnTabColorToolStripMenuItemClick(object sender, EventArgs e)
        {
            LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.LogWindow;

            LogWindowData data = logWindow.Tag as LogWindowData;

            if (data == null)
            {
                return;
            }

            ColorDialog dlg = new ColorDialog();

            dlg.Color = data.color;
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                data.color = dlg.Color;
                SetTabColor(logWindow, data.color);
            }
            List <ColorEntry> delList = new List <ColorEntry>();

            foreach (ColorEntry entry in ConfigManager.Settings.fileColors)
            {
                if (entry.FileName.ToLower().Equals(logWindow.FileName.ToLower()))
                {
                    delList.Add(entry);
                }
            }
            foreach (ColorEntry entry in delList)
            {
                ConfigManager.Settings.fileColors.Remove(entry);
            }
            ConfigManager.Settings.fileColors.Add(new ColorEntry(logWindow.FileName, dlg.Color));
            while (ConfigManager.Settings.fileColors.Count > MAX_COLOR_HISTORY)
            {
                ConfigManager.Settings.fileColors.RemoveAt(0);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// Creates a temp file with the text content of the clipboard and opens the temp file in a new tab.
        /// </summary>
        private void PasteFromClipboard()
        {
            if (Clipboard.ContainsText())
            {
                string text     = Clipboard.GetText();
                string fileName = Path.GetTempFileName();

                using (FileStream fStream = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.Read))
                    using (StreamWriter writer = new StreamWriter(fStream, Encoding.Unicode))
                    {
                        writer.Write(text);
                        writer.Close();
                    }

                string title = "Clipboard";
                LogWindow.LogWindow logWindow = AddTempFileTab(fileName, title);
                LogWindowData       data      = logWindow.Tag as LogWindowData;
                if (data != null)
                {
                    SetTooltipText(logWindow, "Pasted on " + DateTime.Now);
                }
            }
        }
Exemplo n.º 15
0
        // called from LogWindow when follow tail was changed
        public void FollowTailChanged(LogWindow.LogWindow logWindow, bool isEnabled, bool offByTrigger)
        {
            LogWindowData data = logWindow.Tag as LogWindowData;

            if (data == null)
            {
                return;
            }

            if (isEnabled)
            {
                data.tailState = 0;
            }
            else
            {
                data.tailState = offByTrigger ? 2 : 1;
            }

            if (Preferences.showTailState)
            {
                Icon icon = GetIcon(data.diffSum, data);
                BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWindow, icon);
            }
        }
Exemplo n.º 16
0
 private void SetTooltipText(LogWindow.LogWindow logWindow, string logFileName)
 {
     logWindow.ToolTipText = logFileName;
 }
Exemplo n.º 17
0
 public void SelectTab(LogWindow.LogWindow logWindow)
 {
     logWindow.Activate();
 }
Exemplo n.º 18
0
 private void DisconnectBookmarkWindow(LogWindow.LogWindow logWindow)
 {
     _bookmarkWindow.SetBookmarkData(null);
     _bookmarkWindow.SetCurrentFile(null);
 }
Exemplo n.º 19
0
 private void DisconnectToolWindows(LogWindow.LogWindow logWindow)
 {
     DisconnectBookmarkWindow(logWindow);
 }
Exemplo n.º 20
0
        private void ChangeCurrentLogWindow(LogWindow.LogWindow newLogWindow)
        {
            if (newLogWindow == _currentLogWindow)
            {
                return; // do nothing if wishing to set the same window
            }

            LogWindow.LogWindow oldLogWindow = _currentLogWindow;
            _currentLogWindow = newLogWindow;
            string titleName = _showInstanceNumbers ? "LogExpert #" + _instanceNumber : "LogExpert";

            if (oldLogWindow != null)
            {
                oldLogWindow.StatusLineEvent     -= OnStatusLineEvent;
                oldLogWindow.ProgressBarUpdate   -= OnProgressBarUpdate;
                oldLogWindow.GuiStateUpdate      -= OnGuiStateUpdate;
                oldLogWindow.ColumnizerChanged   -= OnColumnizerChanged;
                oldLogWindow.BookmarkAdded       -= OnBookmarkAdded;
                oldLogWindow.BookmarkRemoved     -= OnBookmarkRemoved;
                oldLogWindow.BookmarkTextChanged -= OnBookmarkTextChanged;
                DisconnectToolWindows(oldLogWindow);
            }

            if (newLogWindow != null)
            {
                newLogWindow.StatusLineEvent     += OnStatusLineEvent;
                newLogWindow.ProgressBarUpdate   += OnProgressBarUpdate;
                newLogWindow.GuiStateUpdate      += OnGuiStateUpdate;
                newLogWindow.ColumnizerChanged   += OnColumnizerChanged;
                newLogWindow.BookmarkAdded       += OnBookmarkAdded;
                newLogWindow.BookmarkRemoved     += OnBookmarkRemoved;
                newLogWindow.BookmarkTextChanged += OnBookmarkTextChanged;

                if (newLogWindow.IsTempFile)
                {
                    Text = titleName + @" - " + newLogWindow.TempTitleName;
                }
                else
                {
                    Text = titleName + @" - " + newLogWindow.FileName;
                }

                multiFileToolStripMenuItem.Checked      = CurrentLogWindow.IsMultiFile;
                multiFileToolStripMenuItem.Enabled      = true;
                multiFileEnabledStripMenuItem.Checked   = CurrentLogWindow.IsMultiFile;
                cellSelectModeToolStripMenuItem.Checked = true;
                cellSelectModeToolStripMenuItem.Enabled = true;
                closeFileToolStripMenuItem.Enabled      = true;
                searchToolStripMenuItem.Enabled         = true;
                filterToolStripMenuItem.Enabled         = true;
                goToLineToolStripMenuItem.Enabled       = true;
                //ConnectToolWindows(newLogWindow);
            }
            else
            {
                Text = titleName;
                multiFileToolStripMenuItem.Checked    = false;
                multiFileEnabledStripMenuItem.Checked = false;
                checkBoxFollowTail.Checked            = false;
                mainMenuStrip.Enabled = true;
                timeshiftToolStripMenuItem.Enabled      = false;
                timeshiftToolStripMenuItem.Checked      = false;
                timeshiftMenuTextBox.Text               = "";
                timeshiftMenuTextBox.Enabled            = false;
                multiFileToolStripMenuItem.Enabled      = false;
                cellSelectModeToolStripMenuItem.Checked = false;
                cellSelectModeToolStripMenuItem.Enabled = false;
                closeFileToolStripMenuItem.Enabled      = false;
                searchToolStripMenuItem.Enabled         = false;
                filterToolStripMenuItem.Enabled         = false;
                goToLineToolStripMenuItem.Enabled       = false;
                dragControlDateTime.Visible             = false;
            }
        }
Exemplo n.º 21
0
 private void OnCopyPathToClipboardToolStripMenuItemClick(object sender, EventArgs e)
 {
     LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.LogWindow;
     Clipboard.SetText(logWindow.Title);
 }
Exemplo n.º 22
0
        private void StartTool(string cmd, string args, bool sysoutPipe, string columnizerName, string workingDir)
        {
            if (string.IsNullOrEmpty(cmd))
            {
                return;
            }

            Process          process   = new Process();
            ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args);

            if (!Util.IsNull(workingDir))
            {
                startInfo.WorkingDirectory = workingDir;
            }

            process.StartInfo           = startInfo;
            process.EnableRaisingEvents = true;

            if (sysoutPipe)
            {
                ILogLineColumnizer columnizer = ColumnizerPicker.DecideColumnizerByName(columnizerName,
                                                                                        PluginRegistry.GetInstance().RegisteredColumnizers);

                _logger.Info("Starting external tool with sysout redirection: {0} {1}", cmd, args);
                startInfo.UseShellExecute        = false;
                startInfo.RedirectStandardOutput = true;
                //process.OutputDataReceived += pipe.DataReceivedEventHandler;
                try
                {
                    process.Start();
                }
                catch (Win32Exception e)
                {
                    _logger.Error(e);
                    MessageBox.Show(e.Message);
                    return;
                }

                SysoutPipe          pipe   = new SysoutPipe(process.StandardOutput);
                LogWindow.LogWindow logWin = AddTempFileTab(pipe.FileName,
                                                            CurrentLogWindow.IsTempFile
                        ? CurrentLogWindow.TempTitleName
                        : Util.GetNameFromPath(CurrentLogWindow.FileName) + "->E");
                logWin.ForceColumnizer(columnizer);
                process.Exited += pipe.ProcessExitedEventHandler;
                //process.BeginOutputReadLine();
            }
            else
            {
                _logger.Info("Starting external tool: {0} {1}", cmd, args);
                try
                {
                    startInfo.UseShellExecute = false;
                    process.Start();
                }
                catch (Exception e)
                {
                    _logger.Error(e);
                    MessageBox.Show(e.Message);
                }
            }
        }
Exemplo n.º 23
0
        public LogWindow.LogWindow AddFileTab(string givenFileName, bool isTempFile, string title, bool forcePersistenceLoading, ILogLineColumnizer preProcessColumnizer, bool doNotAddToDockPanel = false)
        {
            string logFileName = FindFilenameForSettings(givenFileName);

            LogWindow.LogWindow win = FindWindowForFile(logFileName);
            if (win != null)
            {
                if (!isTempFile)
                {
                    AddToFileHistory(givenFileName);
                }

                SelectTab(win);
                return(win);
            }

            EncodingOptions encodingOptions = new EncodingOptions();

            FillDefaultEncodingFromSettings(encodingOptions);
            LogWindow.LogWindow logWindow = new LogWindow.LogWindow(this, logFileName, isTempFile, forcePersistenceLoading);

            logWindow.GivenFileName = givenFileName;

            if (preProcessColumnizer != null)
            {
                logWindow.ForceColumnizerForLoading(preProcessColumnizer);
            }

            if (isTempFile)
            {
                logWindow.TempTitleName  = title;
                encodingOptions.Encoding = new UnicodeEncoding(false, false);
            }

            AddLogWindow(logWindow, title, doNotAddToDockPanel);
            if (!isTempFile)
            {
                AddToFileHistory(givenFileName);
            }

            LogWindowData data = logWindow.Tag as LogWindowData;

            data.color = _defaultTabColor;
            SetTabColor(logWindow, _defaultTabColor);
            //data.tabPage.BorderColor = this.defaultTabBorderColor;
            if (!isTempFile)
            {
                foreach (ColorEntry colorEntry in ConfigManager.Settings.fileColors)
                {
                    if (colorEntry.FileName.ToLower().Equals(logFileName.ToLower()))
                    {
                        data.color = colorEntry.Color;
                        SetTabColor(logWindow, colorEntry.Color);
                        break;
                    }
                }
            }

            if (!isTempFile)
            {
                SetTooltipText(logWindow, logFileName);
            }

            if (givenFileName.EndsWith(".lxp"))
            {
                logWindow.ForcedPersistenceFileName = givenFileName;
            }

            // this.BeginInvoke(new LoadFileDelegate(logWindow.LoadFile), new object[] { logFileName, encoding });
            LoadFileDelegate loadFileFx = logWindow.LoadFile;

            loadFileFx.BeginInvoke(logFileName, encodingOptions, null, null);
            return(logWindow);
        }