/// <summary> /// Setup dialog with the information from the current log input. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Dialog_Load(object sender, EventArgs e) { tb_MatlabName.Text = logInput.getKeyVariableName(); if (logInput.getAbsoluteTime() != null) { string[] absolute = logInput.getAbsoluteTime(); startDTP.Text = absolute[0]; endDTP.Text = absolute[1]; } else { startDTP.Text = logInput.getTimeRange().StartTime.ToString(); endDTP.Text = logInput.getTimeRange().EndTime.ToString(); } string path = logInput.getPath(); if (path.Contains("EventFrames")) //Cannot Edit Event Frames Time { startDTP.Enabled = false; endDTP.Enabled = false; } else { startDTP.Enabled = true; endDTP.Enabled = true; } }
/// <summary> /// Resulting Action of editting the List View. /// 1) Edit the List Item /// 2) Re-log the item /// 3) Edit the Matlab workspace. /// </summary> /// <param name="name"> The new variable name. (or the same)</param> /// <param name="start"> The new start time. (or the same)</param> /// <param name="end"> The new end time. (or the same)</param> /// <param name="previous"></param> public void EditLog(string name, string start, string end, LogInput previous) { MatlabAccess.removeMatlabVariable(previous.getKeyVariableName()); if (previous.getKeyVariableName() != name) { name = MatlabAccess.modifyMatlabName(name); } if (name == string.Empty) { name = previous.getKeyVariableName(); } string attName = previous.getAttribute(); string path = previous.getPath(); string elem = previous.getElement(); //EDIT LIST VIEW if (AFAccess.isAbsoluteTimeString(start, end, previous)) { lv_LogDialog.SelectedItems[0].SubItems[3].Text = start + " = " + end; lv_LogDialog.SelectedItems[0].Text = name; } else { AFTimeRange range = new AFTimeRange(start, end); lv_LogDialog.SelectedItems[0].SubItems[3].Text = range.ToString(); lv_LogDialog.SelectedItems[0].Text = name; } //EDIT ACTUAL LOG LogSystem.removeLogInput(previous.getKeyVariableName(), previous.getServerDatabase()); //Workspace Edit - remove variable, getNewData if (path == "PI.Point") { string[] info = Regex.Split(previous.getServerDatabase(), "'"); control.getPIData(attName, info[1], name, start, end, false); } else { control.getAFData(previous.getServerDatabase(), attName, name, path, start, end, false); } }
/// <summary> /// Log the new export of Matlab data /// Steps: 1) Check for the Server_database key /// 2) Add variable name to server list and logs. /// 3) Add to the ListView - doesn't add to ListView when editting. /// </summary> /// <param name="keySrv_Db"> The string representing the server and database</param> /// <param name="logInput"> The LogInput entry.</param> /// <param name="addToListView"> true: adds a ListViewItem to the ListView (generally true, false when editting)</param> public static void addLogInput(string keySrv_Db, LogInput logInput, bool addToListView) { if (!isServer_DatabasesInLogSystem(keySrv_Db)) { servers_databases.Add(keySrv_Db, new List <string>() { logInput.getKeyVariableName() }); } else { servers_databases[keySrv_Db].Add(logInput.getKeyVariableName()); } logs.Add(logInput.getKeyVariableName(), logInput); if (addToListView) { Log.Items.Add(logInput.ToListViewItem()); } }
/// <summary> /// Resulting Action of editting the List View. /// 1) Edit the List Item /// 2) Re-log the item /// 3) Edit the Matlab workspace. /// </summary> /// <param name="name"> The new variable name. (or the same)</param> /// <param name="start"> The new start time. (or the same)</param> /// <param name="end"> The new end time. (or the same)</param> /// <param name="previous"></param> public void EditLog(string name, string start, string end, LogInput previous) { MatlabAccess.removeMatlabVariable(previous.getKeyVariableName()); if(previous.getKeyVariableName() != name) name = MatlabAccess.modifyMatlabName(name); if (name == string.Empty) name = previous.getKeyVariableName(); string attName = previous.getAttribute(); string path = previous.getPath(); string elem = previous.getElement(); //EDIT LIST VIEW if (AFAccess.isAbsoluteTimeString(start, end, previous)) { lv_LogDialog.SelectedItems[0].SubItems[3].Text = start + " = " + end; lv_LogDialog.SelectedItems[0].Text = name; } else { AFTimeRange range = new AFTimeRange(start, end); lv_LogDialog.SelectedItems[0].SubItems[3].Text = range.ToString(); lv_LogDialog.SelectedItems[0].Text = name; } //EDIT ACTUAL LOG LogSystem.removeLogInput(previous.getKeyVariableName(), previous.getServerDatabase()); //Workspace Edit - remove variable, getNewData if (path == "PI.Point") { string[] info = Regex.Split(previous.getServerDatabase(), "'"); control.getPIData(attName, info[1], name, start, end,false); } else control.getAFData(previous.getServerDatabase(), attName, name, path, start, end, false); }
static Dictionary<string, List<string>> servers_databases = new Dictionary<string,List<string>>(); //"server_database" Key #endregion Fields #region Methods /// <summary> /// Log the new export of Matlab data /// Steps: 1) Check for the Server_database key /// 2) Add variable name to server list and logs. /// 3) Add to the ListView - doesn't add to ListView when editting. /// </summary> /// <param name="keySrv_Db"> The string representing the server and database</param> /// <param name="logInput"> The LogInput entry.</param> /// <param name="addToListView"> true: adds a ListViewItem to the ListView (generally true, false when editting)</param> public static void addLogInput(string keySrv_Db, LogInput logInput, bool addToListView) { if (!isServer_DatabasesInLogSystem(keySrv_Db)) servers_databases.Add(keySrv_Db, new List<string>() { logInput.getKeyVariableName() }); else servers_databases[keySrv_Db].Add(logInput.getKeyVariableName()); logs.Add(logInput.getKeyVariableName(), logInput); if(addToListView) Log.Items.Add(logInput.ToListViewItem()); }