private async void btMakeMap_Click(object sender, EventArgs e) { string[] selectedProfiles = checkedListBoxProfiles.CheckedItems.Cast <string>().ToArray(); if (selectedProfiles.Length == 0) { MessageBox.Show("Select at least one profile"); return; } string name = tbName.Text; var labels = _controller.State.Labels.Where(t => selectedProfiles.Contains(t.ProfileName)).ToArray(); if (labels.Length < 2) { MessageBox.Show("Selected profiles contain less than 2 labels, not enough labels"); return; } Job = new ProcessMapJob() { Labels = labels.Select(t => t._id).ToArray(), LogName = _controller.State.Info.Name, MapName = name, Id = Guid.NewGuid(), MapId = Guid.NewGuid() }; await ApiBoundary.AddProcessMapJob(Job); tabControl.SelectTab(1); jobWaiter.SetJobs(new Guid[] { Job.Id }); jobWaiter.Start(); jobWaiter.onAllJobsCompleted += JobWaiterOnOnAllJobsCompleted; //timerCheckStatus.Start(); }
private async void LogImportDialog_Load(object sender, EventArgs e) { var list = await ApiBoundary.GetFiles(); cbFiles.Items.Clear(); cbFiles.Items.AddRange(list.Cast <object>().ToArray()); }
private async void comboBoxFieldName_SelectedIndexChanged(object sender, EventArgs e) { dgv.DataSource = null; EnableProgress(true); var selectedName = comboBoxFieldName.SelectedItem.ToString(); field = selectedName; var distinctValues = await ApiBoundary.GetDistinctFieldValues(_controller.State.Info.Name, selectedName); if (distinctValues == null) { MessageBox.Show("Too much values of given field, cannot enumerate"); EnableProgress(false); return; } Array.Sort(distinctValues); GroupingValues = new List <GroupingValue>(); for (int i = 0; i < distinctValues.Length; i++) { var dv = distinctValues[i]; var gv = new GroupingValue() { Value = dv, Name = $"{selectedName} = {dv}", Text = dv, GroupIndex = i }; GroupingValues.Add(gv); } dgv.DataSource = GroupingValues; tbProfileName.Text = "Autolabeled " + selectedName; EnableProgress(false); }
private async void ProcessMapForm_Load(object sender, EventArgs e) { _map = await ApiBoundary.GetMap(_controller.State.Info.Name, _mapId); Text = _controller.State.Info.Name + " - " + _map.Name + " - Process Map"; FillGraph(); }
private async void btCacheAll_Click(object sender, EventArgs e) { var labelsToCache = _state.Labels.Where(ProfileFilter).Where(t => !t.HasCache).ToList(); if (labelsToCache.Count == 0) { MessageBox.Show("Nothing to cache"); return; } List <Guid> guids = new List <Guid>(); foreach (var label in labelsToCache) { var job = new CacheLabelJob() { LabelId = label._id, LogName = _controller.State.Info.Name }; guids.Add(job.Id); await ApiBoundary.AddCacheLabelJob(job); } //MessageBox.Show($"Added {labelsToCache.Count} cache jobs, wait and do not click this button again"); JobWaiterForm form = new JobWaiterForm(guids.ToArray()); form.jobWaiter.onAllJobsCompleted += async delegate { await _controller.LoadLabels(); RefreshDataInAdapter(); }; form.Show(); }
public async Task LoadLabels() { var labels = await ApiBoundary.GetLabels(_state.Info.Name); _state.Labels = labels.ToList(); profileSelector.Refresh(); }
private async void LabelGenerateForm_Load(object sender, EventArgs e) { EnableProgress(true); var fields = await ApiBoundary.GetFieldNames(_controller.State.Info.Name); comboBoxFieldName.Items.AddRange(fields); comboBoxFieldName.Enabled = true; EnableProgress(false); }
private async void cbFiles_SelectedIndexChanged(object sender, EventArgs e) { var fields = await ApiBoundary.GetHeaders(cbFiles.SelectedItem.ToString()); cbGroupingField.SelectedIndex = -1; cbGroupingField.Items.Clear(); cbGroupingField.Items.AddRange(fields); cbTimeField.Items.AddRange(fields); }
private async void checkTimer_Tick(object sender, EventArgs e) { checkTimer.Stop(); _jobInfos.Clear(); foreach (var jobId in _jobIds) { var info = await ApiBoundary.GetJobInfo(jobId); _jobInfos.Add(info); } int finishedCount = _jobInfos.Count(t => !IsJobPendingOrActive(t)); lbStatus.Text = MakeLabel(); if (_jobInfos.Count > 1) { progressBar1.Value = finishedCount * 100 / _jobIds.Length; } else { var info = JobInfos[0]; if (info.Progress == null) { progressBar1.Style = ProgressBarStyle.Marquee; } else { progressBar1.Style = ProgressBarStyle.Blocks; if (info.Progress.TotalStagesCount > 0) { progressBar1.Value = info.Progress.CurrentStagePercentage; } else { progressBar1.Value = info.Progress.OverallProgress; } } } if (finishedCount == _jobIds.Length) { //all jobs done onAllJobsCompleted?.Invoke(); progressBar1.Style = ProgressBarStyle.Blocks; } else { checkTimer.Start(); } }
private async void buttonCreate_Click(object sender, EventArgs e) { var selected = new List <string>(checkedListBoxValues.CheckedItems.Cast <string>()); if (selected.Count < 2) { MessageBox.Show("Select at least two values, each value will represent one node in process map"); return; } var mapName = tbMapName.Text; if (string.IsNullOrEmpty(mapName)) { MessageBox.Show("Enter map name"); return; } var profileName = $"_map_{mapName}_autogenerated"; var fieldName = selectedField; var labels = selected.Select(t => MakeLabel(fieldName, t, profileName)).ToList(); foreach (var logLabel in labels) { await _controller.AddLabel(logLabel); } Job = new ProcessMapJob() { Labels = labels.Select(t => t._id).ToArray(), LogName = _controller.State.Info.Name, MapName = mapName, Id = Guid.NewGuid(), MapId = Guid.NewGuid() }; await ApiBoundary.AddProcessMapJob(Job); JobWaiterForm form = new JobWaiterForm(Job.Id); var res = form.ShowDialog(); if (res == DialogResult.OK) { btOpenMap.Enabled = true; } else { Close(); } }
public async void OpenNewLog(string name) { var info = await ApiBoundary.GetLogInfo(name); _state.Info = info; _state.Pos = 0; //_state.Labels = labels.ToList(); await LoadLabels(); //refresh views //MessageBox.Show(JsonConvert.SerializeObject(info, Formatting.Indented)); _form.Text = info.Name + " - LogExplorer"; mainView.Refresh(); profileSelector.Refresh(); LoadLazyLogIfNeeded(); }
private async void btCache_Click(object sender, EventArgs e) { var job = new CacheLabelJob() { LabelId = data._id, LogName = _controller.State.Info.Name }; await ApiBoundary.AddCacheLabelJob(job); JobWaiterForm form = new JobWaiterForm(new Guid[] { job.Id }); form.jobWaiter.onAllJobsCompleted += async delegate { await _controller.LoadLabels(); RaiseOnDataDirty(); }; form.Show(); //MessageBox.Show("Added job, you may continue to work, do not click this button again"); }
private async void LoadLazyLogIfNeeded(bool reallyNeeded = false) { if (State.Info == null) { return; } var posWas = State.Pos; await Task.Delay(50); if (posWas != State.Pos && !reallyNeeded) { return; } if (!State.Log.CoversWindow(State.Pos, State.Pos + State.TracesInView)) { var data = await ApiBoundary.GetLogAtPos(State.Info.Name, State.Pos, State.TracesInView, State.Labels.Where(t => t.ProfileName == State.ActiveLabelProfile).Select(t => t._id).ToArray()); State.Log.PushData(data); OnLazyLogLoaded(); } }
private async void comboBoxLabelField_SelectedIndexChanged(object sender, EventArgs e) { var selectedName = comboBoxLabelField.SelectedItem.ToString(); selectedField = selectedName; var distinctValues = await ApiBoundary.GetDistinctFieldValues(_controller.State.Info.Name, selectedName); if (distinctValues == null) { MessageBox.Show("Too much values of given field, select another field"); buttonCreate.Enabled = false; checkedListBoxValues.Items.Clear(); return; } checkedListBoxValues.Items.Clear(); checkedListBoxValues.Items.AddRange(distinctValues.Cast <object>().ToArray()); for (int i = 0; i < checkedListBoxValues.Items.Count; i++) { checkedListBoxValues.SetItemChecked(i, true); } buttonCreate.Enabled = true; }
private async void CreateProcessMapBasicForm_Load(object sender, EventArgs e) { fields = await ApiBoundary.GetFieldNames(_controller.State.Info.Name); comboBoxLabelField.Items.AddRange(fields.Cast <object>().ToArray()); }
public async Task UpdateLabel(LogLabel label) { await ApiBoundary.UpdateLabel(label, _state.Info.Name); await LoadLabels(); }
private async void btImport_Click(object sender, EventArgs e) { var fname = cbFiles.SelectedItem.ToString(); var logName = tbLogName.Text; if (string.IsNullOrWhiteSpace(logName)) { MessageBox.Show("Enter name of the log"); return; } var groupingField = cbGroupingField.SelectedItem?.ToString(); if (groupingField == null) { MessageBox.Show("Select grouping field"); return; } var groupingFieldType = cbGroupingFieldType.SelectedItem?.ToString(); if (groupingFieldType == null) { MessageBox.Show("Select grouping field type"); return; } var timeField = cbTimeField.SelectedItem?.ToString(); if (timeField == null) { MessageBox.Show("Select time field"); return; } var timeFieldType = cbTimeFieldType.SelectedItem?.ToString(); if (timeFieldType == null) { MessageBox.Show("Select time field type"); return; } if (tbDelimiter.Text.Length < 1) { MessageBox.Show("Enter delimiter character"); return; } var delimiter = tbDelimiter.Text[0]; var guid = Guid.NewGuid(); var importArgs = new ImportArgs() { JobID = guid, LogName = logName, FileName = fname, GroupingField = groupingField, GroupingFieldType = groupingFieldType, TimeField = timeField, TimeFieldType = timeFieldType, CsvDelimiter = delimiter }; await ApiBoundary.AddImportTask(importArgs); JobWaiterForm form = new JobWaiterForm(guid); form.ShowDialog(); Close(); //btJobsRefresh_Click(null, null); }
private async void OpenMapDialog_Load(object sender, EventArgs e) { maps = await ApiBoundary.GetMapList(_logname); listBox1.Items.AddRange(maps.Select(t => t.Name).Cast <object>().ToArray()); }