/** * This method process the command given by the user and call the right action to be applied. * @param Array $command * @param string $canvas_string * @return string */ public function process_command() { //Obj to handle messages $messages = new messages(); if ($this->values_ok) { switch (strtoupper($this->command_array[0])) { //Create a Canvas case 'C': if (count($this->command_array) == 3) { $command = $this->command_array; $this->canvas = new canvas($command[1], $command[2]); $messages->set_message('general-ok-0'); } else { $messages->set_message('general-error-0'); $messages->is_reload(); } break; //Print a Line //Print a Line case 'L': if (!$this->canvas->get_canvas_state()) { $messages->set_message('line-error-1'); } elseif (count($this->command_array) == 5) { $command = $this->command_array; $this->canvas->draw_line(array($command[1], $command[2]), array($command[3], $command[4]), $messages); $messages->set_message('general-ok-0'); } else { $messages->set_message('general-error-0'); } break; //Print a Rectangle //Print a Rectangle case 'R': if (!$this->canvas->get_canvas_state()) { $messages->set_message('rec-error-0'); } elseif (count($this->command_array) == 5) { $command = $this->command_array; $this->canvas->draw_rectangle(array($command[1], $command[2]), array($command[3], $command[4])); $messages->set_message('general-ok-0'); } else { $messages->set_message('general-error-0'); } break; //Bucket fill action //Bucket fill action case 'B': if (!$this->canvas->get_canvas_state()) { $messages->set_message('line-error-1'); } elseif (count($this->command_array) == 4) { $command = $this->command_array; $this->canvas->bucket_fill(array($command[1], $command[2]), $command[3]); $messages->set_message('general-ok-0'); } else { $messages->set_message('general-error-0'); } break; //Restart the app //Restart the app case 'Q': $messages->set_message('general-ok-0'); $messages->is_reload(); break; default: break; } } else { return false; } return $this->canvas->get_canvas_string($messages) . '<br/>' . $messages->get_current_message(); }