private void DynamicStateEventClick(object sender, EventArgs e) { Button button = sender as Button; UserEvent userEvent = (UserEvent)button.Tag; textBoxDebug.Text = userEvent.EventDesciption; List <UserState> nextState = UserStateParser.GetNextStates(userEvent, Database.AllUserState); AddNextState(panelNextState, nextState); }
private void buttonBrowse_Click(object sender, EventArgs e) { FolderBrowserDialog folderDlg = new FolderBrowserDialog(); folderDlg.ShowNewFolderButton = true; folderDlg.Description = "Choose (user_handler) foder"; if (!string.IsNullOrEmpty(FoderLastSelected)) { if (Directory.Exists(FoderLastSelected)) { folderDlg.SelectedPath = FoderLastSelected; } } else { if (!string.IsNullOrEmpty(Setting.FoderUser)) { FoderLastSelected = Setting.FoderUser; if (Directory.Exists(FoderLastSelected)) { folderDlg.SelectedPath = FoderLastSelected; } } } // Show the FolderBrowserDialog. DialogResult result = folderDlg.ShowDialog(); if (result == DialogResult.OK) { // Parse default implementation string fileDefaultaHandler = folderDlg.SelectedPath + "/user_handler_events.c"; if (!File.Exists(fileDefaultaHandler)) { fileDefaultaHandler = folderDlg.SelectedPath + "/user_handler_events.cpp"; } if (File.Exists(fileDefaultaHandler)) { Database.DefaultImplemt = DefaultEventParser.ParseDefaultImplementationEvent(fileDefaultaHandler); } else { MessageBox.Show("Cannot open file user_handler_events"); } // Parse for every state textBoxUserHandleFoder.Text = folderDlg.SelectedPath; FoderLastSelected = folderDlg.SelectedPath; string[] AllFiles = Directory.GetFiles(folderDlg.SelectedPath, "*", SearchOption.AllDirectories); int numFiles = AllFiles.Length; Database.AllUserState.Clear(); for (int i = 0; i < numFiles; i++) { if (AllFiles[i].Contains(".c") || AllFiles[i].Contains(".cpp")) { UserState state = UserStateParser.ParseState(AllFiles[i]); if (state != null) { UserState mergeState = state.MergeWithDefaultHandle(Database.DefaultImplemt); Database.AllUserState.Add(mergeState); } } } // Assign data to UI of every user_state AssignAllState(); // Save current foder for user if (FoderLastSelected != Setting.FoderUser) { Setting.WriteSetting(FoderLastSelected); } } }