Example #1
0
 void dgridSelectedModules_DoubleClick(object sender, EventArgs e)
 {
     if ((laba[dgridSelectedModules.SelectedRows[0].Index].Module as IModuleSettings) != null)
     {
         SettingsForm sf =
             new SettingsForm((laba[dgridSelectedModules.SelectedRows[0].Index].Module
                 as IModuleSettings).GetSettingsControl(laba[dgridSelectedModules.SelectedRows[0].Index].Settings));
         sf.ShowDialog(this);
         if (sf.Successful)
         {
             сохранитьToolStripButton.Enabled = notSaved = true;
             UndoRedoAction ura = new UndoRedoAction(UndoRedoActionKind.ChangeSettings,
                 new object[] { dgridSelectedModules.SelectedRows[0].Index,
                 laba[dgridSelectedModules.SelectedRows[0].Index].Settings });
             undoStack.Push(ura);
             if (redoStack.Count > 0 && ura == redoStack.Peek())
                 redoStack.Pop();
             else
             {
                 btnRedo.Enabled = false;
                 redoStack.Clear();
             }
             btnUndo.Enabled = true;
             laba[dgridSelectedModules.SelectedRows[0].Index].Settings = sf.settings;
         }
     }
 }
Example #2
0
 private void btnUndo_Click(object sender, EventArgs e)
 {
     dgridModules.Focus();
     if (undoStack.Count > 0)
     {
         UndoRedoAction action = undoStack.Pop();
         switch (action.UndoRedoActionKind)
         {
             case UndoRedoActionKind.Add:
                 laba.RemoveTask(dgridSelectedModules.Rows.Count - 1);
                 dgridSelectedModules.Rows.RemoveAt(dgridSelectedModules.Rows.Count - 1);
                 break;
             case UndoRedoActionKind.ChangeSettings:
                 object settings = laba[(int)action.ActionData[0]].Settings;
                 laba[(int)action.ActionData[0]].Settings = action.ActionData[1];
                 action = new UndoRedoAction(UndoRedoActionKind.ChangeSettings,
                     new object[] { (int)action.ActionData[0], settings });
                 break;
             case UndoRedoActionKind.MoveDown:
                 laba.Swap((int)action.ActionData[0], (int)action.ActionData[0] + 1);
                 int index = (int)action.ActionData[0];
                 dgridSelectedModules.Rows.Insert(index + 2, new object[] {
                     dgridSelectedModules.Rows[index].Cells[0].Value,
                     dgridSelectedModules.Rows[index].Cells[1].Value,
                     dgridSelectedModules.Rows[index].Cells[2].Value,
                     dgridSelectedModules.Rows[index].Cells[3].Value,
                     dgridSelectedModules.Rows[index].Cells[4].Value,
                     dgridSelectedModules.Rows[index].Cells[5].Value,
                     dgridSelectedModules.Rows[index].Cells[6].Value,
                     dgridSelectedModules.Rows[index].Cells[7].Value,
                     dgridSelectedModules.Rows[index].Cells[8].Value
                 });
                 dgridSelectedModules.Rows.RemoveAt(index);
                 dgridSelectedModules.Rows[index].Selected = true;
                 break;
             case UndoRedoActionKind.MoveUp:
                 laba.Swap((int)action.ActionData[0], (int)action.ActionData[0] - 1);
                 int index1 = (int)action.ActionData[0] - 1;
                 dgridSelectedModules.Rows.Insert(index1 + 2, new object[] {
                     dgridSelectedModules.Rows[index1].Cells[0].Value,
                     dgridSelectedModules.Rows[index1].Cells[1].Value,
                     dgridSelectedModules.Rows[index1].Cells[2].Value,
                     dgridSelectedModules.Rows[index1].Cells[3].Value,
                     dgridSelectedModules.Rows[index1].Cells[4].Value,
                     dgridSelectedModules.Rows[index1].Cells[5].Value,
                     dgridSelectedModules.Rows[index1].Cells[6].Value,
                     dgridSelectedModules.Rows[index1].Cells[7].Value,
                     dgridSelectedModules.Rows[index1].Cells[8].Value
                 });
                 dgridSelectedModules.Rows.RemoveAt(index1);
                 dgridSelectedModules.Rows[index1 + 1].Selected = true;
                 break;
             case UndoRedoActionKind.Remove:
                     int index2 = (int)action.ActionData[1];
                     int index3 = (int)action.ActionData[0];
                     dgridSelectedModules.Rows.Insert(index2, new object[] {
                         dgridModules.Rows[index3].Cells[0].Value,
                         dgridModules.Rows[index3].Cells[1].Value,
                         dgridModules.Rows[index3].Cells[2].Value,
                         dgridModules.Rows[index3].Cells[3].Value,
                         dgridModules.Rows[index3].Cells[4].Value,
                         dgridModules.Rows[index3].Cells[5].Value,
                         dgridModules.Rows[index3].Cells[6].Value,
                         dgridModules.Rows[index3].Cells[7].Value,
                         dgridModules.Rows[index3].Cells[8].Value
                     });
                     laba.InsertTask(index2, ModulesArray[(int)dgridModules.Rows[index3].Cells[6].Value]);
                     laba[index2].Settings = action.ActionData[2];
                     break;
             default:
                 throw new NotImplementedException();
         }
         redoStack.Push(action);
         if (undoStack.Count == 0)
             btnUndo.Enabled = false;
         btnRedo.Enabled = true;
     }
 }
Example #3
0
 private void btnMoveUp_Click(object sender, EventArgs e)
 {
     if (dgridSelectedModules.SelectedRows.Count > 0)
         foreach (DataGridViewRow row in dgridSelectedModules.SelectedRows)
             if (row.Index >= 1)
             {
                 сохранитьToolStripButton.Enabled = notSaved = true;
                 UndoRedoAction ura = new UndoRedoAction(UndoRedoActionKind.MoveUp,
                     new object[] { row.Index });
                 undoStack.Push(ura);
                 if (redoStack.Count > 0 && ura == redoStack.Peek())
                     redoStack.Pop();
                 else
                 {
                     btnRedo.Enabled = false;
                     redoStack.Clear();
                 }
                 btnUndo.Enabled = true;
                 laba.Swap(row.Index, row.Index - 1);
                 int index = row.Index - 1;
                 dgridSelectedModules.Rows.Insert(index, new object[] {
                     row.Cells[0].Value,
                     row.Cells[1].Value,
                     row.Cells[2].Value,
                     row.Cells[3].Value,
                     row.Cells[4].Value,
                     row.Cells[5].Value,
                     row.Cells[6].Value,
                     row.Cells[7].Value,
                     row.Cells[8].Value
                 });
                 dgridSelectedModules.Rows.Remove(row);
                 dgridSelectedModules.Rows[index].Selected = true;
             }
 }
Example #4
0
 private void btnRemove_Click(object sender, EventArgs e)
 {
     if (dgridSelectedModules.SelectedRows.Count > 0)
         foreach (DataGridViewRow row in dgridSelectedModules.SelectedRows)
         {
             сохранитьToolStripButton.Enabled = notSaved = true;
             UndoRedoAction ura = new UndoRedoAction(UndoRedoActionKind.Remove,
                 new object[] { (int)row.Cells[6].Value, row.Index, laba[row.Index].Settings });
             undoStack.Push(ura);
             if (redoStack.Count > 0 && ura == redoStack.Peek())
                 redoStack.Pop();
             else
             {
                 btnRedo.Enabled = false;
                 redoStack.Clear();
             }
             btnUndo.Enabled = true; laba.RemoveTask(row.Index);
             dgridSelectedModules.Rows.Remove(row);
         }
 }
Example #5
0
 private void btnAdd_Click(object sender, EventArgs e)
 {
     if (dgridModules.SelectedRows.Count > 0)
     foreach (DataGridViewRow row in dgridModules.SelectedRows)
     {
         if (row.Index >= 0)
             сохранитьToolStripButton.Enabled = notSaved = true;
             UndoRedoAction ura = new UndoRedoAction(UndoRedoActionKind.Add,
                 new object[] { (int)row.Cells[6].Value, dgridSelectedModules.Rows.Count, null });
             undoStack.Push(ura);
             if (redoStack.Count > 0 && ura == redoStack.Peek())
                 redoStack.Pop();
             else
             {
                 btnRedo.Enabled = false;
                 redoStack.Clear();
             }
             btnUndo.Enabled = true;
             dgridSelectedModules.Rows.Add(new object[] {
                 row.Cells[0].Value,
                 row.Cells[1].Value,
                 row.Cells[2].Value,
                 row.Cells[3].Value,
                 row.Cells[4].Value,
                 row.Cells[5].Value,
                 row.Cells[6].Value,
                 row.Cells[7].Value,
                 row.Cells[8].Value
             });
         laba.AddTask(ModulesArray[(int)row.Cells[6].Value]);
     }
 }