private void createHabit(Habit h) { lstHabit.Items.Add(h); if (lstHabit.Items.Count <= 1) { updateHabitTimer(h); habitTimer.Start(); } else if (isEarliestHabit(h)) { updateHabitTimer(h); } }
private void updateHabitTimer(Habit h) { notifyCSDA.BalloonTipText = "Ambis boleh tapi jangan lupa : " + h.name; Int32 tempInterval = getWaktu(h.habitTime); if (tempInterval <= 0) { showHabit(); } else { habitTimer.Interval = tempInterval; } }
private void showHabit() { if (lstHabit.Items.Count <= 0) { return; } notifyCSDA.ShowBalloonTip(30000); removeHabit(findEarliestHabit()); Habit h = findEarliestHabit(); if (h != null) { updateHabitTimer(findEarliestHabit()); } }
private Habit findEarliestHabit() { if (lstHabit.Items.Count <= 0) { return(null); } Habit returnHabit = (Habit)lstHabit.Items[0]; foreach (Habit h in lstHabit.Items) { if (h.habitTime.Ticks <= returnHabit.habitTime.Ticks) { returnHabit = h; } } return(returnHabit); }
private void removeHabit(Habit h) { bool update = false; if (isEarliestHabit(h)) { update = true; } lstHabit.Items.Remove(h); if (lstHabit.Items.Count <= 0) { habitTimer.Stop(); } else if (update) { updateHabitTimer(findEarliestHabit()); } }
private void Save() { FileStream todoFS = new FileStream("todo.dat", FileMode.Create); FileStream reminderFS = new FileStream("reminder.dat", FileMode.Create); FileStream jadwalFS = new FileStream("jadwal.dat", FileMode.Create); FileStream habitFS = new FileStream("habit.dat", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); Todo[] todo = new Todo[clbTodo.Items.Count]; clbTodo.Items.CopyTo(todo, 0); Reminder[] reminder = new Reminder[clbReminder.Items.Count]; clbReminder.Items.CopyTo(reminder, 0); Jadwal[] jadwal = new Jadwal[lstMingguan.Items.Count]; lstMingguan.Items.CopyTo(jadwal, 0); Habit[] habit = new Habit[lstHabit.Items.Count]; lstHabit.Items.CopyTo(habit, 0); try { formatter.Serialize(todoFS, todo); formatter.Serialize(reminderFS, reminder); formatter.Serialize(jadwalFS, jadwal); formatter.Serialize(habitFS, habit); } catch (Exception e) { MessageBox.Show("Failed to serialize: Reason: " + e.Message); throw; } finally { habitFS.Close(); todoFS.Close(); reminderFS.Close(); jadwalFS.Close(); } }
private bool isEarliestHabit(Habit inHabit) { return(inHabit.Equals(findEarliestHabit())); }
//====================================================================================================// // KODE UNTUK FITUR HABIT // Mekanismenya sama dengan reminder hanya saja pada habit waktu sudah ditentukan oleh program //====================================================================================================// private void btnHabitActive_Click(object sender, EventArgs e) { if (clbHabit.CheckedItems.Count == 0) { MessageBox.Show("Centang salah satu habit pada box!", "Warning"); } else { lstHabit.Items.Clear(); tbHabitStatus.Text = "Habit Aktif"; DateTime time = DateTime.Now; DateTime time1 = new DateTime(time.Year, time.Month, time.Day, 8, 0, 0); DateTime time2 = new DateTime(time.Year, time.Month, time.Day, 9, 0, 0); DateTime time3 = new DateTime(time.Year, time.Month, time.Day, 11, 30, 0); DateTime time4 = new DateTime(time.Year, time.Month, time.Day, 15, 0, 0); DateTime time5 = new DateTime(time.Year, time.Month, time.Day, 17, 0, 0); DateTime time6 = new DateTime(time.Year, time.Month, time.Day, 18, 30, 0); for (int i = 0; i < clbHabit.Items.Count; i++) { if (clbHabit.GetItemCheckState(i) == CheckState.Checked) { if (clbHabit.Items[i].ToString() == "Sarapan" && (DateTime.Compare(time, time1) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time1); createHabit(h); } else if (clbHabit.Items[i].ToString() == "Mandi pagi" && (DateTime.Compare(time, time2) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time2); createHabit(h); } else if (clbHabit.Items[i].ToString() == "Makan siang" && (DateTime.Compare(time, time3) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time3); createHabit(h); } else if (clbHabit.Items[i].ToString() == "Olahraga rutin" && (DateTime.Compare(time, time4) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time4); createHabit(h); } else if (clbHabit.Items[i].ToString() == "Mandi sore" && (DateTime.Compare(time, time5) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time5); createHabit(h); } else if (clbHabit.Items[i].ToString() == "Makan sore" && (DateTime.Compare(time, time6) < 0)) { Habit h = new Habit(clbHabit.Items[i].ToString(), time6); createHabit(h); } } } foreach (int i in clbHabit.CheckedIndices) { clbHabit.SetItemCheckState(i, CheckState.Unchecked); } } }