Example #1
0
        private void ChildItem_CheckStateChanged(object sender, EventArgs e)
        {
            ToolStripItem menuItem = (ToolStripItem)sender;

            SingleTimerLib.SingleTimer _t = TimersList[menuItem.Text.SubStringByIndexOf("-[").Trim()];
            Color _fc = Color.Black;
            Color _bc = Color.White;

            if (_t != null)
            {
                if (_t.TimerIsRunning)
                {
                    _fc = Color.NavajoWhite;
                    _bc = Color.LightSeaGreen;

                    _t.StopTimer();
                    DebugPrint(string.Format("{0}: {1} is no longer running!", "ChildItem_CheckStateChanged", _t.Name));
                }
                else
                {
                    _t.StartTimer();
                    DebugPrint(string.Format("{0}: {1} is now running!", "ChildItem_CheckStateChanged", _t.Name));
                }
                menuItem.BackColor = _t.TimerIsRunning ? Color.LightSeaGreen : Color.LightPink;
                menuItem.ForeColor = _t.TimerIsRunning ? Color.NavajoWhite : Color.MintCream;
                Rows[_t.RowIndex].Cells[1].Style.BackColor = menuItem.BackColor;
                Rows[_t.RowIndex].Cells[1].Style.ForeColor = menuItem.ForeColor;
            }
            else
            {
                menuItem.BackColor = SystemColors.InactiveCaption;
                menuItem.ForeColor = SystemColors.InactiveCaptionText;
            }
        }
Example #2
0
        private void QueryUserRenameTimer(int rowIndex)
        {
            string oldname = Rows[rowIndex].TimerCanonicalName();
            string newname = GetTimerName("Specify as new name:", "Rename Timer", oldname);

            if (newname == "Cancel")
            {
                return;
            }
            if (newname == oldname)
            {
                return;
            }

            SingleTimerLib.SingleTimer _t = TimersList[oldname];
            if (_t != null)
            {
                TimerName2RowIndexDictionary.Remove(_t.Name);
                TimersList.Remove(_t.Name);
                TimerName2RowIndexDictionary.Add(newname, _t.RowIndex);
                _t.ReNameTimer(newname);
            }
            else
            {
                Rows.RemoveAt(rowIndex);
                TimerName2RowIndexDictionary.Remove(oldname);
                TimersList.Remove(oldname);
            }
        }
Example #3
0
        private void TimersGridViewDeleteItem_Click(object sender, EventArgs e)
        {
            List <int> deleteables = new List <int>();

            foreach (ListViewItem _i in timersDataGridView.SelectedRows)
            {
                deleteables.Add(_i.Index);
            }

            timersDataGridView.ClearSelection();

            string message = "Confirm deletion of {0}";
            string caption = Application.ProductName + "Delete {0}";

            timersDataGridView.ClearSelection();
            foreach (int index in deleteables)
            {
                Rows[index].Selected = true;
                string timerName = Rows[index].TimerCanonicalName();

                if (AnswerYesNo(string.Format(message, timerName), string.Format(caption, timerName)) == DialogResult.Yes)
                {
                    SingleTimerLib.SingleTimer _t = TimersList[timerName];
                    _t.PropertyChanged    -= SingleTimer_PropertyChanged;
                    _t.SingleTimerChanged -= SingleTimer_SingleTimerChanged;
                    _t.TimerReset         -= SingleTimer_OnTimerReset;
                    TimersList.Remove(timerName);
                    timersDataGridView.Rows.RemoveAt(index);
                }

                timersDataGridView.ClearSelection();
            }
        }
Example #4
0
        private void SingleTimer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            SingleTimerLib.SingleTimer _t = (SingleTimerLib.SingleTimer)sender;
            if (sender == null)
            {
                return;
            }
            switch (e.PropertyName)
            {
            case nameof(SingleTimerLib.SingleTimer.RunningElapsedTime):
                ThreadSafeUpdateTimerElapsedTime(_t);
                DebugPrint(string.Format("From {1}: [{2}] Elapsed {0}", _t.RunningElapsedTime, "SingleTimer_PropertyChanged", e.PropertyName));
                break;

            case nameof(SingleTimerLib.SingleTimer.RowIndex):
                break;

            case nameof(SingleTimerLib.SingleTimer.Name):
                DebugPrint(string.Format("{0} is a new name!", _t.Name));
                Debug.Assert(TimerName2RowIndexDictionary.ContainsKey(_t.CanonicalName));
                TimersList.Add(_t.CanonicalName, _t);
                ThreadSafeUpdateTimerNamee(_t);
                break;

            case nameof(SingleTimerLib.SingleTimer.TimerIsRunning):
                string message1 = "{0}: {1} is running! [{2}]";
                string message2 = "{0}: {1} is stopped! [{2}]";
                DebugPrint(string.Format(_t.TimerIsRunning ? message1 : message2, "SingleTimer_PropertyChanged", _t.Name, e.PropertyName));
                break;

            default:
                break;
            }
        }
Example #5
0
        private void DoClose()
        {
            _isClosing = true;
            Properties.Settings.Default.Save();

            List <string> listOfKeys = new List <string>();

            foreach (string _k in TimersList.Keys)
            {
                listOfKeys.Add(_k);
            }
            foreach (string name in listOfKeys)
            {
                SingleTimerLib.SingleTimer _t = TimersList[name];
                _t.PropertyChanged    -= SingleTimer_PropertyChanged;
                _t.SingleTimerChanged -= SingleTimer_SingleTimerChanged;
                _t.TimerReset         -= SingleTimer_OnTimerReset;
                _t.StopTimer();
                TimersList.Remove(_t.CanonicalName);
                TimerName2RowIndexDictionary.Remove(_t.CanonicalName);
                DebugPrint(string.Format("Timer {0} is being is about to be disposed!", _t.Name));
                _t.Dispose();
            }

            WriteDataToXml();

            listOfKeys.Clear();
            listOfKeys = null;

            Hide();
            jobTimersIcon.Visible = false;
            FormClosing          -= JobTimerForm_FormClosing;
            Close();
            Application.Exit();
        }
Example #6
0
 private void QueryUserResetTimer(ToolStripMenuItem childItem, string shortName, int rowIndex)
 {
     if (MessageBox.Show(this, string.Format("Reset Timer '{0}'", shortName), shortName, MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         SingleTimerLib.SingleTimer _t = TimersList[shortName];
         _t.ResetTimer();
         ThreadSafeUpdateTimerElapsedTime(new SingleTimerLib.SingleTimerLibEventArgs(_t.RunningElapsedTime, _t.Name, _t.RowIndex, 0));
         childItem.BackColor = _t.TimerIsRunning ? Color.LightSeaGreen : Color.LightPink;
         childItem.ForeColor = _t.TimerIsRunning ? Color.NavajoWhite : Color.MintCream;
     }
 }
Example #7
0
 private void SetupChildItem(SingleTimerLib.SingleTimer _t, ToolStripMenuItem childItem)
 {
     childItem.CheckOnClick       = true;
     childItem.Checked            = _t.TimerIsRunning;
     childItem.Image              = new Bitmap(_imageStream);
     childItem.MouseEnter        += ChildItem_MouseEnter;
     childItem.MouseDown         += ChildItem_MouseDown;
     childItem.MouseLeave        += ChildItem_MouseLeave;
     childItem.CheckStateChanged += ChildItem_CheckStateChanged;
     childItem.BackColor          = _t.TimerIsRunning ? Color.LightSeaGreen : Color.LightPink;
     childItem.ForeColor          = _t.TimerIsRunning ? Color.NavajoWhite : Color.MintCream;
 }
Example #8
0
 private void NewTimerToolStripMenuItem1_Click(object sender, EventArgs e)
 {
     SingleTimerLib.SingleTimer _t = StartNewTimer;
     if (_t != null)
     {
         if (AnswerYesNo(string.Format("Run timer '{0}'?", _t.Name), _t.Name) == DialogResult.Yes)
         {
             _t.StartTimer();
         }
     }
     else
     {
         MessageBox.Show("Adding new Timer failed.\nDid you cancel or attempt to add a duplicate name?");
     }
 }
Example #9
0
        private void QueryUserResetTimer(int rowIndex)
        {
            string name = Rows[rowIndex].TimerCanonicalName();

            if (MessageBox.Show(this, string.Format("Reset Timer '{0}'", name), name, MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                SingleTimerLib.SingleTimer _t = TimersList[name];
                if (_t != null)
                {
                    _t.ResetTimer();
                }
                else
                {
                    ThreadSafeUpdateGridViewRowElapsedTimerValue(rowIndex, "00:00:00");
                }
            }
        }
Example #10
0
        private void SetupSavedTimers()
        {
            Application.DoEvents();
            timersDataGridView.Update();
            for (int idx = 0; idx < Timers.Rows.Count; ++idx)
            {
                DataRow _r = Timers.Rows[idx];

                if (!TimerName2RowIndexDictionary.ContainsKey(_r[0].ToString()))
                {
                    TimerName2RowIndexDictionary.Add(_r[0].ToString(), idx);
                }
                SingleTimerLib.SingleTimer _t = TimersList.AddTimer(_r[0].ToString(), new SingleTimerLib.SingleTimer(idx, _r[0].ToString(), _r[1].ToString()));
                _t.PropertyChanged    += SingleTimer_PropertyChanged;
                _t.SingleTimerChanged += SingleTimer_SingleTimerChanged;
                _t.TimerReset         += SingleTimer_OnTimerReset;
            }
        }
Example #11
0
 private void ActiveTimersMenu_DropDownOpening(object sender, EventArgs e)
 {
     foreach (ToolStripMenuItem item in activeTimersMenu.DropDownItems)
     {
         string name = item.Text.SubStringByIndexOf("-[");
         SingleTimerLib.SingleTimer _t = TimersList[name];
         if (_t != null)
         {
             item.BackColor = _t.TimerIsRunning ? Color.LightSeaGreen : Color.LightPink;
             item.ForeColor = _t.TimerIsRunning ? Color.NavajoWhite : Color.MintCream;
         }
         else
         {
             item.BackColor = Color.LightPink;
             item.ForeColor = Color.MintCream;
         }
     }
 }
Example #12
0
 private void TreadSafeDeleteDataGridViewRows()
 {
     if (timersDataGridView.InvokeRequired)
     {
         timersDataGridView.Invoke(new Action(TreadSafeDeleteDataGridViewRows));
         return;
     }
     foreach (DataGridViewRow _dr in timersDataGridView.SelectedRows)
     {
         string name = timersDataGridView.CurrentRow.TimerCanonicalName();
         SingleTimerLib.SingleTimer _t = TimersList[name];
         _t.SingleTimerChanged -= SingleTimer_SingleTimerChanged;
         _t.PropertyChanged    -= SingleTimer_PropertyChanged;
         _t.TimerReset         -= SingleTimer_OnTimerReset;
         _t.StopTimer();
         Debug.Assert(_t.CanonicalName == Timers.Rows[_t.RowIndex].TimerCanonicalName());
         Timers.Rows.RemoveAt(_t.RowIndex);
         Timers.AcceptChanges();
         ThreadSafeUpdateDataGridView();
         TimerName2RowIndexDictionary.Remove(name);
         TimersList.Remove(name);
         _t.Dispose();
     }
 }