public void SetColumnizer(ILogLineColumnizer columnizer) { this.logWindow.SetColumnizer(columnizer, this.patternHitsDataGridView); this.logWindow.SetColumnizer(columnizer, this.contentDataGridView); this.patternHitsDataGridView.Columns[0].Width = 20; this.contentDataGridView.Columns[0].Width = 20; DataGridViewTextBoxColumn blockInfoColumn = new DataGridViewTextBoxColumn(); blockInfoColumn.HeaderText = "Weight"; blockInfoColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; blockInfoColumn.Resizable = DataGridViewTriState.False; blockInfoColumn.DividerWidth = 1; blockInfoColumn.ReadOnly = true; blockInfoColumn.Width = 50; DataGridViewTextBoxColumn contentInfoColumn = new DataGridViewTextBoxColumn(); contentInfoColumn.HeaderText = "Diff"; contentInfoColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; contentInfoColumn.Resizable = DataGridViewTriState.False; contentInfoColumn.DividerWidth = 1; contentInfoColumn.ReadOnly = true; contentInfoColumn.Width = 50; this.patternHitsDataGridView.Columns.Insert(1, blockInfoColumn); this.contentDataGridView.Columns.Insert(1, contentInfoColumn); }
public void Execute(string keyword, string param, ILogExpertCallback callback, ILogLineColumnizer columnizer) { int start = 0; int end = 0; if (param.StartsWith("\"")) { start = 1; end = param.IndexOf("\"", start); } else { end = param.IndexOf(" "); } if (end == -1) end = param.Length; string procName = param.Substring(start, end - start); string parameters = param.Substring(end).Trim(); parameters = parameters.Replace("%F", callback.GetFileName()); parameters = parameters.Replace("%K", keyword); parameters = parameters.Replace("%L", "" + callback.GetLineNum()); parameters = parameters.Replace("%T", callback.GetTabTitle()); parameters = parameters.Replace("%C", callback.GetLogLine(callback.GetLineNum())); Process explorer = new Process(); explorer.StartInfo.FileName = procName; explorer.StartInfo.Arguments = parameters; explorer.StartInfo.UseShellExecute = false; explorer.Start(); }
public LogWindow AddFileTab(string givenFileName, bool isTempFile, string title, bool forcePersistenceLoading, ILogLineColumnizer preProcessColumnizer) { return(AddFileTab(givenFileName, isTempFile, title, forcePersistenceLoading, preProcessColumnizer, false)); }
public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. Logger.logError(ae.Message); } DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; // markerColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; // lineNumberColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; //titleColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(titleColumn); } gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } //gridView.Refresh(); //AutoResizeColumns(gridView); }
public ContextMenuPluginEventArgs(IContextMenuEntry entry, IList <int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { this.entry = entry; this.logLines = logLines; this.columnizer = columnizer; this.callback = callback; }
public ILogLineColumnizer FindColumnizerByFileMask(string fileName) { foreach (ColumnizerMaskEntry entry in ConfigManager.Settings.preferences.columnizerMaskList) { if (entry.mask != null) { try { if (Regex.IsMatch(fileName, entry.mask)) { ILogLineColumnizer columnizer = ColumnizerPicker.FindColumnizerByName(entry.columnizerName, PluginRegistry.GetInstance().RegisteredColumnizers); return(columnizer); } } catch (ArgumentException e) { _logger.Error(e, "RegEx-error while finding columnizer: "); // occurs on invalid regex patterns } } } return(null); }
public ContextMenuPluginEventArgs(IContextMenuEntry entry, IList<int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { this.Entry = entry; this.LogLines = logLines; this.Columnizer = columnizer; this.Callback = callback; }
public void MenuSelected(IList<int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { if (logLines.Count != 1) return; XmlDocument doc = BuildParam(callback.GetLogLine(logLines[0])); if (doc == null) { MessageBox.Show("Cannot parse Java stack trace line", "LogExpert"); } else { try { TcpClient client = new TcpClient(this.config.host, this.config.port); NetworkStream stream = client.GetStream(); StreamWriter writer = new StreamWriter(stream); doc.Save(writer); writer.Flush(); stream.Flush(); writer.Close(); stream.Close(500); client.Close(); } catch (Exception e) { MessageBox.Show(e.Message, "LogExpert"); } } }
public void MenuSelected(IList <int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { if (logLines.Count != 1) { return; } XmlDocument doc = BuildParam(callback.GetLogLine(logLines[0])); if (doc == null) { MessageBox.Show("Cannot parse Java stack trace line", "LogExpert"); } else { try { TcpClient client = new TcpClient(this.config.host, this.config.port); NetworkStream stream = client.GetStream(); StreamWriter writer = new StreamWriter(stream); doc.Save(writer); writer.Flush(); stream.Flush(); writer.Close(); stream.Close(500); client.Close(); } catch (Exception e) { MessageBox.Show(e.Message, "LogExpert"); } } }
public FilterSelectorForm(IList <ILogLineColumnizer> existingColumnizerList, ILogLineColumnizer currentColumnizer, ILogLineColumnizerCallback callback) { SelectedColumnizer = currentColumnizer; _callback = callback; InitializeComponent(); filterComboBox.SelectedIndexChanged += OnFilterComboBoxSelectedIndexChanged; // for the currently selected columnizer use the current instance and not the template instance from // columnizer registry. This ensures that changes made in columnizer config dialogs // will apply to the current instance _columnizerList = new List <ILogLineColumnizer>(); foreach (ILogLineColumnizer col in existingColumnizerList) { _columnizerList.Add(col.GetType() == SelectedColumnizer.GetType() ? SelectedColumnizer : col); } foreach (ILogLineColumnizer col in _columnizerList) { filterComboBox.Items.Add(col); } foreach (ILogLineColumnizer columnizer in _columnizerList) { if (columnizer.GetType() == SelectedColumnizer.GetType()) { filterComboBox.SelectedItem = columnizer; break; } } }
public ILogLineColumnizer FindColumnizer(string fileName, LogfileReader logFileReader) { if (logFileReader == null || string.IsNullOrEmpty(fileName)) { return(new DefaultLogfileColumnizer()); } ILogLineColumnizer lineColumnizer = null; var timeDeterminer = new TimeFormatDeterminer(); List <ILogLine> loglines = new List <ILogLine> { // Sampling a few lines to select the correct columnizer logFileReader.GetLogLine(0), logFileReader.GetLogLine(1), logFileReader.GetLogLine(2), logFileReader.GetLogLine(3), logFileReader.GetLogLine(4), logFileReader.GetLogLine(5), logFileReader.GetLogLine(25), logFileReader.GetLogLine(100), logFileReader.GetLogLine(200), logFileReader.GetLogLine(400) }; lineColumnizer = PluginRegistry.GetInstance().RegisteredColumnizers.OrderByDescending(x => x.GetPriority(fileName, loglines)).First(); return(lineColumnizer); }
public FilterColumnChooser(FilterParams filterParams) { InitializeComponent(); this.columnizer = filterParams.currentColumnizer; this.filterParams = filterParams; Init(); }
private string GetMsgForLine(int i, ILogWindowSearch logWindow) { string line = logWindow.GetLogLine(i); ILogLineColumnizer columnizer = logWindow.CurrentColumnizer; ColumnizerCallback callback = new ColumnizerCallback(logWindow.CurrentLogWindows); string[] cols = columnizer.SplitLine(callback, line); return(cols[columnizer.GetColumnCount() - 1]); }
void filterComboBox_SelectedIndexChanged(object sender, EventArgs e) { ILogLineColumnizer col = columnizerList[this.filterComboBox.SelectedIndex]; this.selectedColumnizer = col; string description = col.GetDescription(); description += "\r\nSupports timeshift: " + (this.selectedColumnizer.IsTimeshiftImplemented() ? "Yes" : "No"); this.commentTextBox.Text = description; this.configButton.Enabled = (this.selectedColumnizer is IColumnizerConfigurator); }
/// <summary> /// This method implemented the "auto columnizer" feature. /// This method should be called after each columnizer is changed to update the columizer. /// </summary> /// <param name="fileName"></param> /// <param name="logFileReader"></param> /// <param name="logLineColumnizer"></param> /// <returns></returns> public static ILogLineColumnizer FindReplacementForAutoColumnizer(string fileName, IAutoLogLineColumnizerCallback logFileReader, ILogLineColumnizer logLineColumnizer) { if (logLineColumnizer == null || logLineColumnizer.GetName() == "Auto Columnizer") { return(FindColumnizer(fileName, logFileReader)); } return(logLineColumnizer); }
public string GetMenuText(IList<int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { if (logLines.Count == 1 && BuildParam(callback.GetLogLine(logLines[0])) != null) { return "Load class in Eclipse"; } else { return "_Load class in Eclipse"; } }
public string GetMenuText(IList <int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { if (logLines.Count == 1 && BuildParam(callback.GetLogLine(logLines[0])) != null) { return("Load class in Eclipse"); } else { return("_Load class in Eclipse"); } }
private void OnFilterComboBoxSelectedIndexChanged(object sender, EventArgs e) { ILogLineColumnizer col = _columnizerList[filterComboBox.SelectedIndex]; SelectedColumnizer = col; string description = col.GetDescription(); description += "\r\nSupports timeshift: " + (SelectedColumnizer.IsTimeshiftImplemented() ? "Yes" : "No"); commentTextBox.Text = description; configButton.Enabled = SelectedColumnizer is IColumnizerConfigurator; }
public static ILogLineColumnizer FindBetterColumnizer(string fileName, IAutoLogLineColumnizerCallback logFileReader, ILogLineColumnizer logLineColumnizer) { var newColumnizer = FindColumnizer(fileName, logFileReader); if (newColumnizer.GetType().Equals(logLineColumnizer.GetType())) { return(null); } return(newColumnizer); }
private void FillColumnizerList() { columnizerDataGridView.Rows.Clear(); DataGridViewComboBoxColumn comboColumn = (DataGridViewComboBoxColumn)columnizerDataGridView.Columns[1]; comboColumn.Items.Clear(); DataGridViewTextBoxColumn textColumn = (DataGridViewTextBoxColumn)columnizerDataGridView.Columns[0]; IList <ILogLineColumnizer> columnizers = PluginRegistry.GetInstance().RegisteredColumnizers; foreach (ILogLineColumnizer columnizer in columnizers) { int index = comboColumn.Items.Add(columnizer.GetName()); } //comboColumn.DisplayMember = "Name"; //comboColumn.ValueMember = "Columnizer"; foreach (ColumnizerMaskEntry maskEntry in Preferences.columnizerMaskList) { DataGridViewRow row = new DataGridViewRow(); row.Cells.Add(new DataGridViewTextBoxCell()); DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell(); foreach (ILogLineColumnizer logColumnizer in columnizers) { int index = cell.Items.Add(logColumnizer.GetName()); } row.Cells.Add(cell); row.Cells[0].Value = maskEntry.mask; ILogLineColumnizer columnizer = Util.FindColumnizerByName(maskEntry.columnizerName, PluginRegistry.GetInstance().RegisteredColumnizers); if (columnizer == null) { columnizer = PluginRegistry.GetInstance().RegisteredColumnizers[0]; } row.Cells[1].Value = columnizer.GetName(); columnizerDataGridView.Rows.Add(row); } int count = columnizerDataGridView.RowCount; if (count > 0 && !columnizerDataGridView.Rows[count - 1].IsNewRow) { DataGridViewComboBoxCell comboCell = (DataGridViewComboBoxCell)columnizerDataGridView.Rows[count - 1].Cells[1]; comboCell.Value = comboCell.Items[0]; } }
/// <summary> /// The worker function which is called when the entry is choosen by the user. /// What we do here: Take all lines, uppercase the content, keep track of original line numbers, /// write it to a new tab. /// </summary> public void MenuSelected(IList<int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { List<LineEntry> lineEntryList = new List<LineEntry>(); foreach(int lineNum in logLines) { LineEntry newEntry = new LineEntry(); newEntry.logLine = callback.GetLogLine(lineNum).ToUpper(); newEntry.lineNum = lineNum; lineEntryList.Add(newEntry); } callback.AddPipedTab(lineEntryList, callback.GetTabTitle() + " (uppercased)"); }
public void Execute(string keyword, string param, ILogExpertCallback callback, ILogLineColumnizer columnizer) { FormCollection openForms = Application.OpenForms; foreach (Form form in openForms) { if (form.TopLevel && form.Name.Equals("LogTabWindow") && form.Text.Contains(callback.GetFileName())) { FlashWindowFx fx = FlashWindow; form.BeginInvoke(fx, new object[] {form}); } } }
/// <summary> /// The worker function which is called when the entry is choosen by the user. /// What we do here: Take all lines, uppercase the content, keep track of original line numbers, /// write it to a new tab. /// </summary> public void MenuSelected(IList <int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { List <LineEntry> lineEntryList = new List <LineEntry>(); foreach (int lineNum in logLines) { LineEntry newEntry = new LineEntry(); newEntry.logLine = callback.GetLogLine(lineNum).ToUpper(); newEntry.lineNum = lineNum; lineEntryList.Add(newEntry); } callback.AddPipedTab(lineEntryList, callback.GetTabTitle() + " (uppercased)"); }
private void setColumnizerHistoryEntry(string fileName, ILogLineColumnizer columnizer) { ColumnizerHistoryEntry entry = findColumnizerHistoryEntry(fileName); if (entry != null) { ConfigManager.Settings.columnizerHistoryList.Remove(entry); } ConfigManager.Settings.columnizerHistoryList.Add(new ColumnizerHistoryEntry(fileName, columnizer.GetName())); if (ConfigManager.Settings.columnizerHistoryList.Count > MAX_COLUMNIZER_HISTORY) { ConfigManager.Settings.columnizerHistoryList.RemoveAt(0); } }
/// <summary> /// This method will search all registered columnizer and return one according to the priority that returned /// by the each columnizer. /// </summary> /// <param name="fileName"></param> /// <param name="logFileReader"></param> /// <returns></returns> public static ILogLineColumnizer FindColumnizer(string fileName, IAutoLogLineColumnizerCallback logFileReader) { if (string.IsNullOrEmpty(fileName)) { return(new DefaultLogfileColumnizer()); } List <ILogLine> loglines = new List <ILogLine>(); if (logFileReader != null) { loglines = new List <ILogLine>() { // Sampling a few lines to select the correct columnizer logFileReader.GetLogLine(0), logFileReader.GetLogLine(1), logFileReader.GetLogLine(2), logFileReader.GetLogLine(3), logFileReader.GetLogLine(4), logFileReader.GetLogLine(5), logFileReader.GetLogLine(25), logFileReader.GetLogLine(100), logFileReader.GetLogLine(200), logFileReader.GetLogLine(400) }; } var registeredColumnizer = PluginRegistry.GetInstance().RegisteredColumnizers; List <Tuple <Priority, ILogLineColumnizer> > priorityListOfColumnizers = new List <Tuple <Priority, ILogLineColumnizer> >(); foreach (ILogLineColumnizer logLineColumnizer in registeredColumnizer) { Priority priority = default(Priority); if (logLineColumnizer is IColumnizerPriority columnizerPriority) { priority = columnizerPriority.GetPriority(fileName, loglines); } priorityListOfColumnizers.Add(new Tuple <Priority, ILogLineColumnizer>(priority, logLineColumnizer)); } ILogLineColumnizer lineColumnizer = priorityListOfColumnizers.OrderByDescending(a => a.Item1).Select(a => a.Item2).First(); return(lineColumnizer); }
public static ILogLineColumnizer CloneColumnizer(ILogLineColumnizer columnizer) { if (columnizer == null) { return null; } ConstructorInfo cti = columnizer.GetType().GetConstructor(Type.EmptyTypes); if (cti != null) { object o = cti.Invoke(new object[] { }); if (o is IColumnizerConfigurator) { ((IColumnizerConfigurator)o).LoadConfig(ConfigManager.ConfigDir); } return (ILogLineColumnizer)o; } return null; }
public LogWindow AddFilterTab(FilterPipe pipe, string title, ILogLineColumnizer preProcessColumnizer) { LogWindow logWin = AddFileTab(pipe.FileName, true, title, false, preProcessColumnizer); if (pipe.FilterParams.searchText.Length > 0) { ToolTip tip = new ToolTip(this.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); }
public static ILogLineColumnizer CloneColumnizer(ILogLineColumnizer columnizer) { if (columnizer == null) { return(null); } ConstructorInfo cti = columnizer.GetType().GetConstructor(Type.EmptyTypes); if (cti != null) { object o = cti.Invoke(new object[] { }); if (o is IColumnizerConfigurator) { ((IColumnizerConfigurator)o).LoadConfig(ConfigManager.ConfigDir); } return((ILogLineColumnizer)o); } return(null); }
internal string[] GetColumnsForLine(LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, LogExpert.LogWindow.ColumnizerCallback columnizerCallback) { if (this.lastColumnizer != columnizer || this.lastLineNumber != lineNumber && this.cachedColumns != null || columnizerCallback.LineNum != lineNumber) { this.lastColumnizer = columnizer; this.lastLineNumber = lineNumber; string line = logFileReader.GetLogLineWithWait(lineNumber); if (line != null) { columnizerCallback.LineNum = lineNumber; this.cachedColumns = columnizer.SplitLine(columnizerCallback, line); } else { this.cachedColumns = null; } } return(this.cachedColumns); }
internal IColumnizedLogLine GetColumnsForLine(LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, ColumnizerCallback columnizerCallback) { if (_lastColumnizer != columnizer || _lastLineNumber != lineNumber && _cachedColumns != null || columnizerCallback.LineNum != lineNumber) { _lastColumnizer = columnizer; _lastLineNumber = lineNumber; ILogLine line = logFileReader.GetLogLineWithWait(lineNumber); if (line != null) { columnizerCallback.LineNum = lineNumber; _cachedColumns = columnizer.SplitLine(columnizerCallback, line); } else { _cachedColumns = null; } } return(_cachedColumns); }
public static ILogLineColumnizer CloneColumnizer(ILogLineColumnizer columnizer) { if (columnizer == null) { return(null); } ConstructorInfo cti = columnizer.GetType().GetConstructor(Type.EmptyTypes); if (cti != null) { object o = cti.Invoke(new object[] { }); if (o is IColumnizerConfigurator configurator) { configurator.LoadConfig(ConfigManager.Settings.preferences.PortableMode ? ConfigManager.PortableModeDir : ConfigManager.ConfigDir); } return((ILogLineColumnizer)o); } return(null); }
internal string[] GetColumnsForLine(LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, LogExpert.ColumnizerCallback columnizerCallback) { if (_lastColumnizer != columnizer || _lastLineNumber != lineNumber || _cachedColumns == null || columnizerCallback.LineNum != lineNumber) { _lastColumnizer = columnizer; _lastLineNumber = lineNumber; string line = logFileReader.GetLogLineWithWait(lineNumber); if (line != null) { columnizerCallback.LineNum = lineNumber; _cachedColumns = columnizer.SplitLine(columnizerCallback, line); } else { _cachedColumns = null; } } return _cachedColumns; }
public void SetColumnizer(ILogLineColumnizer columnizer) { PaintHelper.SetColumnizer(columnizer, this.bookmarkDataGridView); if (this.bookmarkDataGridView.ColumnCount > 0) { this.bookmarkDataGridView.Columns[0].Width = 20; } DataGridViewTextBoxColumn commentColumn = new DataGridViewTextBoxColumn(); commentColumn.HeaderText = "Bookmark Comment"; commentColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; commentColumn.Resizable = DataGridViewTriState.NotSet; commentColumn.DividerWidth = 1; commentColumn.ReadOnly = true; commentColumn.Width = 250; commentColumn.MinimumWidth = 130; this.bookmarkDataGridView.Columns.Insert(1, commentColumn); ShowCommentColumn(this.commentColumnCheckBox.Checked); ResizeColumns(); }
public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. _logger.Error(ae); } gridView.Columns.Add(CreateMarkerColumn()); gridView.Columns.Add(CreateLineNumberColumn()); foreach (string colName in columnizer.GetColumnNames()) { gridView.Columns.Add(CreateTitleColumn(colName)); } gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } //gridView.Refresh(); //AutoResizeColumns(gridView); }
public FilterSelectorForm(IList <ILogLineColumnizer> existingColumnizerList, ILogLineColumnizer currentColumnizer, ILogLineColumnizerCallback callback) { this.SelectedColumnizer = currentColumnizer; this.callback = callback; InitializeComponent(); this.filterComboBox.SelectedIndexChanged += new EventHandler(filterComboBox_SelectedIndexChanged); // for the currently selected columnizer use the current instance and not the template instance from // columnizer registry. This ensures that changes made in columnizer config dialogs // will apply to the current instance this.columnizerList = new List <ILogLineColumnizer>(); foreach (ILogLineColumnizer col in existingColumnizerList) { if (col.GetType().Equals(this.SelectedColumnizer.GetType())) { this.columnizerList.Add(this.SelectedColumnizer); } else { this.columnizerList.Add(col); } } this.columnizerList = this.columnizerList.ToList().OrderBy(x => x.Text).ToList(); foreach (ILogLineColumnizer col in this.columnizerList) { this.filterComboBox.Items.Add(col); } foreach (ILogLineColumnizer columnizer in this.columnizerList) { if (columnizer.GetType().Equals(this.SelectedColumnizer.GetType())) { this.filterComboBox.SelectedItem = columnizer; break; } } }
internal string[] GetColumnsForLine( LogfileReader logFileReader, int line, ILogLineColumnizer columnizer, LogExpert.LogWindow.ColumnizerCallback callback) { if (this.last_columnizer == columnizer && this.last_line == line && this.cached_columns != null) { return(this.cached_columns); } string line_data = logFileReader.GetLogLineWithWait(line); if (line_data != null) { callback.LineNum = line; this.cached_columns = columnizer.SplitLine(callback, line_data); this.last_columnizer = columnizer; this.last_line = line; } return(this.cached_columns); }
public FilterSelectorForm(IList<ILogLineColumnizer> existingColumnizerList, ILogLineColumnizer currentColumnizer, ILogLineColumnizerCallback callback) { this.selectedColumnizer = currentColumnizer; this.callback = callback; InitializeComponent(); this.filterComboBox.SelectedIndexChanged += new EventHandler(filterComboBox_SelectedIndexChanged); // for the currently selected columnizer use the current instance and not the template instance from // columnizer registry. This ensures that changes made in columnizer config dialogs // will apply to the current instance this.columnizerList = new List<ILogLineColumnizer>(); foreach (ILogLineColumnizer col in existingColumnizerList) { if (col.GetType().Equals(this.selectedColumnizer.GetType())) { this.columnizerList.Add(this.selectedColumnizer); } else { this.columnizerList.Add(col); } } foreach (ILogLineColumnizer col in this.columnizerList) { this.filterComboBox.Items.Add(col); } foreach (ILogLineColumnizer columnizer in this.columnizerList) { if (columnizer.GetType().Equals(this.selectedColumnizer.GetType())) { this.filterComboBox.SelectedItem = columnizer; break; } } }
protected void PreSelectColumnizer(ILogLineColumnizer columnizer) { if (columnizer != null) { CurrentColumnizer = _forcedColumnizerForLoading = columnizer; } else { CurrentColumnizer = _forcedColumnizerForLoading = PluginRegistry.GetInstance().RegisteredColumnizers[0]; } }
private void LoadFileInternal(string fileName, EncodingOptions encodingOptions) { EnterLoadFileStatus(); if (fileName != null) { FileName = fileName; EncodingOptions = encodingOptions; if (CurrentLogFileReader != null) { CurrentLogFileReader.StopMonitoringAsync(); UnRegisterLogFileReaderEvents(); } if (!LoadPersistenceOptions()) { if (!IsTempFile) { ILogLineColumnizer columnizer = FindColumnizer(); if (columnizer != null) { if (_reloadMemento == null) { columnizer = Util.CloneColumnizer(columnizer); } } PreSelectColumnizer(columnizer); } SetDefaultHighlightGroup(); } // this may be set after loading persistence data if (_fileNames != null && IsMultiFile) { LoadFilesAsMulti(_fileNames, EncodingOptions); return; } _columnCache = new ColumnCache(); try { CurrentLogFileReader = new LogfileReader( fileName, EncodingOptions, IsMultiFile, Preferences.bufferCount, Preferences.linesPerBuffer, _multifileOptions); CurrentLogFileReader.UseNewReader = !Preferences.useLegacyReader; } catch (LogFileException lfe) { MessageBox.Show("Cannot load file\n" + lfe.Message, "LogExpert"); BeginInvoke(new Action<bool>(Close), new object[] { true }); _isLoadError = true; return; } ILogLineXmlColumnizer xmlColumnizer = CurrentColumnizer as ILogLineXmlColumnizer; if (xmlColumnizer != null) { CurrentLogFileReader.IsXmlMode = true; CurrentLogFileReader.XmlLogConfig = xmlColumnizer.GetXmlLogConfiguration(); } if (_forcedColumnizerForLoading != null) { CurrentColumnizer = _forcedColumnizerForLoading; } IPreProcessColumnizer preProcessColumnizer = CurrentColumnizer as IPreProcessColumnizer; if (CurrentColumnizer is IPreProcessColumnizer) { CurrentLogFileReader.PreProcessColumnizer = preProcessColumnizer; } else { CurrentLogFileReader.PreProcessColumnizer = null; } RegisterLogFileReaderEvents(); Logger.logInfo("Loading logfile: " + fileName); CurrentLogFileReader.startMonitoring(); } }
void OnColumnizerChanged(ILogLineColumnizer columnizer) { if (ColumnizerChanged != null) { ColumnizerChanged(this, new ColumnizerEventArgs(columnizer)); } }
public void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; gridView.Columns.Clear(); DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; markerColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; lineNumberColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; titleColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(titleColumn); } columnNamesLabel.Text = CalculateColumnNames(_filterParams); gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } gridView.Refresh(); AutoResizeColumns(gridView); ApplyFrozenState(gridView); }
public void ForceColumnizerForLoading(ILogLineColumnizer columnizer) { _forcedColumnizerForLoading = Util.CloneColumnizer(columnizer); }
void SetColumnizerInternal(ILogLineColumnizer columnizer) { Logger.logInfo("SetColumnizerInternal(): " + columnizer.GetName()); ILogLineColumnizer oldColumnizer = CurrentColumnizer; bool oldColumnizerIsXmlType = CurrentColumnizer is ILogLineXmlColumnizer; bool oldColumnizerIsPreProcess = CurrentColumnizer is IPreProcessColumnizer; bool mustReload = false; // Check if the filtered columns disappeared, if so must refresh the UI if (_filterParams.columnRestrict) { string[] newColumns = columnizer != null ? columnizer.GetColumnNames() : new string[0]; bool colChanged = false; if (dataGridView.ColumnCount - 2 == newColumns.Length) // two first columns are 'marker' and 'line number' { for (int i = 0; i < newColumns.Length; i++) { if (dataGridView.Columns[i].HeaderText != newColumns[i]) { colChanged = true; break; // one change is sufficient } } } else { colChanged = true; } if (colChanged) { // Update UI columnNamesLabel.Text = CalculateColumnNames(_filterParams); } } Type oldColType = _filterParams.currentColumnizer != null ? _filterParams.currentColumnizer.GetType() : null; Type newColType = columnizer != null ? columnizer.GetType() : null; if (oldColType != newColType && _filterParams.columnRestrict && _filterParams.isFilterTail) { _filterParams.columnList.Clear(); } if (CurrentColumnizer == null || !CurrentColumnizer.GetType().Equals(columnizer.GetType())) { CurrentColumnizer = columnizer; _freezeStateMap.Clear(); if (CurrentLogFileReader != null) { IPreProcessColumnizer preprocessColumnizer = CurrentColumnizer as IPreProcessColumnizer; if (preprocessColumnizer != null) { CurrentLogFileReader.PreProcessColumnizer = preprocessColumnizer; } else { CurrentLogFileReader.PreProcessColumnizer = null; } } // always reload when choosing XML columnizers if (CurrentLogFileReader != null && CurrentColumnizer is ILogLineXmlColumnizer) { //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } // Reload when choosing no XML columnizer but previous columnizer was XML if (CurrentLogFileReader != null && !(CurrentColumnizer is ILogLineXmlColumnizer) && oldColumnizerIsXmlType) { CurrentLogFileReader.IsXmlMode = false; //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } // Reload when previous columnizer was PreProcess and current is not, and vice versa. // When the current columnizer is a preProcess columnizer, reload in every case. bool isCurrentColumnizerIPreProcessColumnizer = CurrentColumnizer is IPreProcessColumnizer; if ((isCurrentColumnizerIPreProcessColumnizer != oldColumnizerIsPreProcess) || isCurrentColumnizerIPreProcessColumnizer) { //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } } else { CurrentColumnizer = columnizer; } IInitColumnizer initColumnizer = oldColumnizer as IInitColumnizer; if (initColumnizer != null) { initColumnizer.DeSelected(new ColumnizerCallback(this)); } initColumnizer = columnizer as IInitColumnizer; if (initColumnizer != null) { initColumnizer.Selected(new ColumnizerCallback(this)); } SetColumnizer(columnizer, dataGridView); SetColumnizer(columnizer, filterGridView); if (_patternWindow != null) { _patternWindow.SetColumnizer(columnizer); } _guiStateArgs.TimeshiftPossible = columnizer.IsTimeshiftImplemented(); SendGuiStateUpdate(); if (CurrentLogFileReader != null) { dataGridView.RowCount = CurrentLogFileReader.LineCount; } if (_filterResultList != null) { filterGridView.RowCount = _filterResultList.Count; } if (mustReload) { Reload(); } else { if (CurrentColumnizer.IsTimeshiftImplemented()) { SetTimestampLimits(); SyncTimestampDisplay(); } Settings settings = ConfigManager.Settings; ShowLineColumn(!settings.hideLineColumn); ShowTimeSpread(Preferences.showTimeSpread && columnizer.IsTimeshiftImplemented()); } if (!columnizer.IsTimeshiftImplemented() && IsTimeSynced) { FreeFromTimeSync(); } columnComboBox.Items.Clear(); foreach (String columnName in columnizer.GetColumnNames()) { columnComboBox.Items.Add(columnName); } columnComboBox.SelectedIndex = 0; OnColumnizerChanged(CurrentColumnizer); }
void SetColumnizer(ILogLineColumnizer columnizer) { int timeDiff = 0; if (CurrentColumnizer != null && CurrentColumnizer.IsTimeshiftImplemented()) { timeDiff = CurrentColumnizer.GetTimeOffset(); } SetColumnizerInternal(columnizer); if (CurrentColumnizer.IsTimeshiftImplemented()) { CurrentColumnizer.SetTimeOffset(timeDiff); } }
/// <summary> /// The function which gets called to give us a chance to decide whether to show a context menu entry. /// </summary> public string GetMenuText(IList<int> logLines, ILogLineColumnizer columnizer, ILogExpertCallback callback) { // no additional checks. always show the menu entry return "(Example) Write lines to tab"; }
public ColumnizerEventArgs(ILogLineColumnizer columnizer) { this.Columnizer = columnizer; }
public void Execute(string keyword, string param, ILogExpertCallback callback, ILogLineColumnizer columnizer) { int start = 0; int end = 0; if (param.StartsWith("\"")) { start = 1; end = param.IndexOf("\"", start); } else { end = param.IndexOf(" "); } if (end == -1) { end = param.Length; } string procName = param.Substring(start, end - start); string parameters = param.Substring(end).Trim(); parameters = parameters.Replace("%F", callback.GetFileName()); parameters = parameters.Replace("%K", keyword); parameters = parameters.Replace("%L", "" + callback.GetLineNum()); parameters = parameters.Replace("%T", callback.GetTabTitle()); parameters = parameters.Replace("%C", callback.GetLogLine(callback.GetLineNum()).FullLine); Process explorer = new Process(); explorer.StartInfo.FileName = procName; explorer.StartInfo.Arguments = parameters; explorer.StartInfo.UseShellExecute = false; explorer.Start(); }
void SetGuiAfterLoading() { if (Text.Length == 0) { if (IsTempFile) { Text = TempTitleName; } else { Text = Util.GetNameFromPath(FileName); } } ShowBookmarkBubbles = Preferences.showBubbles; ILogLineColumnizer columnizer; if (_forcedColumnizerForLoading != null) { columnizer = _forcedColumnizerForLoading; _forcedColumnizerForLoading = null; } else { columnizer = FindColumnizer(); if (columnizer != null) { if (_reloadMemento == null) { columnizer = Util.CloneColumnizer(columnizer); } } else { // Default Columnizers columnizer = Util.CloneColumnizer(PluginRegistry.GetInstance().RegisteredColumnizers[0]); } } Invoke(new Action<ILogLineColumnizer>(SetColumnizer), new object[] { columnizer }); dataGridView.Enabled = true; DisplayCurrentFileOnStatusline(); _guiStateArgs.MultiFileEnabled = !IsTempFile; _guiStateArgs.MenuEnabled = true; _guiStateArgs.CurrentEncoding = CurrentLogFileReader.CurrentEncoding; SendGuiStateUpdate(); if (CurrentColumnizer.IsTimeshiftImplemented()) { if (Preferences.timestampControl) { SetTimestampLimits(); SyncTimestampDisplay(); } Settings settings = ConfigManager.Settings; ShowLineColumn(!settings.hideLineColumn); } ShowTimeSpread(Preferences.showTimeSpread && CurrentColumnizer.IsTimeshiftImplemented()); locateLineInOriginalFileToolStripMenuItem.Enabled = FilterPipe != null; }
public ColumnizerEntry(ILogLineColumnizer columnizer) { this.Columnizer = columnizer; }
public void ForceColumnizer(ILogLineColumnizer columnizer) { _forcedColumnizer = Util.CloneColumnizer(columnizer); SetColumnizer(_forcedColumnizer); }
public void Reload() { SavePersistenceData(false); _reloadMemento = new ReloadMemento(); _reloadMemento.currentLine = dataGridView.CurrentCellAddress.Y; _reloadMemento.firstDisplayedLine = dataGridView.FirstDisplayedScrollingRowIndex; _forcedColumnizerForLoading = CurrentColumnizer; if (_fileNames == null || !IsMultiFile) { LoadFile(FileName, EncodingOptions); } else { LoadFilesAsMulti(_fileNames, EncodingOptions); } }
public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. Logger.logError(ae.Message); } DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; // markerColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; // lineNumberColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; //titleColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(titleColumn); } gridView.RowCount = rowCount; if (currLine != -1) gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; if (currFirstLine != -1) gridView.FirstDisplayedScrollingRowIndex = currFirstLine; //gridView.Refresh(); //AutoResizeColumns(gridView); }