private void activitiesPanel_MouseDoubleClick(object sender, MouseEventArgs e) { int actIndex = getActivityIndexFromMousePosition(e.Location); // if area double clicked was not an activity, ignore if (actIndex < 0) { return; } JArray activities = getActivities(CurrentLesson); JObject act = (JObject)activities[actIndex]; using (NewActivityPrompt prompt = new NewActivityPrompt(getName(act), getDescription(act), getTime(act), getColor(act), actIndex)) { this.Enabled = false; prompt.ShowDialog(); this.Enabled = true; // escape (do nothing) if user X'd out of Activity Editing prompt (activityTime returned 0) if (!prompt.isSaved()) { return; } // if activity is marked to be deleted, delete the activity and escape if (prompt.isDeleted()) { activities.RemoveAt(actIndex); } // otherwise, if input for new activity was valid: else { // create a updated activity based on user input data from prompt JObject updatedAct = new JObject( new JProperty("name", prompt.getActivityName()), new JProperty("description", prompt.getActivityDescription()), new JProperty("time", prompt.getActivityTime()), new JProperty("color", prompt.getActivityColor().ToArgb().ToString()) ); // update said activity in the activity list activities[actIndex] = updatedAct; } // update current lesson data to reflect updated activity list CurrentLesson["activities"] = activities; // update JSON file for lesson to reflect updated lesson data saveCurrentLessonData(); // update the panel to reflect changes Invalidate(); } }
private void newActivityButton_Click(object sender, EventArgs e) { using (NewActivityPrompt prompt = new NewActivityPrompt("", "", 0, Color.White, -1)) { this.Enabled = false; prompt.ShowDialog(); this.Enabled = true; // escape (do nothing) if user X'd out of Activity Editing prompt (activityTime returned 0) if (prompt.getActivityTime() <= 0) { return; } // if input for new activity was valid: // get current activities list from lesson JArray activities = getActivities(CurrentLesson); // create a new activity based on user input data from prompt JObject newAct = new JObject( new JProperty("name", prompt.getActivityName()), new JProperty("description", prompt.getActivityDescription()), new JProperty("time", prompt.getActivityTime()), new JProperty("color", prompt.getActivityColor().ToArgb().ToString()) ); // add said new activity to the activity list activities.Add(newAct); // update current lesson data to reflect new activity list with the new added item CurrentLesson["activities"] = activities; // update JSON file for lesson to reflect new lesson data saveCurrentLessonData(); // update the panel to reflect changes this.Refresh(); } }