/// <summary> /// Przywraca następny stan grafiki. Oczywiście tylko wtedy gdy jest następny stan. /// </summary> public void NextState() { log.Write("Przywracanie następnego stanu grafiki.", LogMessagesTypes.Important); if (futureOperations.Count > 0) // Jeżeli cokolwiek jest w przyszłych operacjach. { IGraphicOperation nextOperation = futureOperations[0]; // pierwsza przyszła operacja // Ustawianie i dorysowywanie operacji. operations.Add(nextOperation); futureOperations.RemoveAt(0); Execute(nextOperation); } }
/// <summary> /// Wykonuje operację graficzną. /// </summary> /// <param name="operation">Operacja do wykonania.</param> public void Execute(IGraphicOperation operation) { log.Write("Operacja graficzna została wykonana.", LogMessagesTypes.Detail); // Pobieranie paramterów operacji graficznej. object[] parameters = operation.GetParameters(); switch (operation.Operation) // Tu dla różnych typów operacji graficznych różnie interpretowne są argumenty. { case GraphicOperations.ImagesDrawning: DrawImage(parameters[0] as Image, (int)parameters[1], (int)parameters[2]); break; case GraphicOperations.DrawLine: DrawLine(parameters[0] as Pen, (Point)parameters[1], (Point)parameters[2], (bool)parameters[3]); break; } }
public void Execute(IGraphicOperation operation) { throw new NotImplementedException(); }