bootstrap: change bootstrap to a tizen service app
[platform/core/uifw/aurum.git] / org.tizen.aurum-bootstrap / src / Commands / ClickCommand.cc
1 #include "ClickCommand.h"
2
3 #include "UiObject.h"
4 #include "UiDevice.h"
5
6 #include <loguru.hpp>
7
8 ClickCommand::ClickCommand(const ::aurum::ReqClick* request,
9                            ::aurum::RspClick*       response)
10     : mRequest{request}, mResponse{response}
11 {
12 }
13
14 ::grpc::Status ClickCommand::execute()
15 {
16    return grpc::Status::CANCELLED;
17 }
18
19 std::unique_ptr<ClickCommand> ClickCommand::createCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response)
20 {
21     ::aurum::ReqClick_RequestType type = request->type();
22
23     if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ELEMENTID)
24         return std::make_unique<ClickElementCommand>(request, response);
25     else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_COORD)
26         return std::make_unique<ClickCoordCommand>(request, response);
27     else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ATSPI)
28         return std::make_unique<ClickAtspiCommand>(request, response);
29     else
30         return std::make_unique<ClickCommand>(request, response);
31 }
32
33 ::grpc::Status ClickElementCommand::execute()
34 {
35     ObjectMapper* mObjMap = ObjectMapper::getInstance();
36     UiObject* obj = mObjMap->getElement(mRequest->elementid());
37
38     if (obj) {
39         obj->click();
40         mResponse->set_status(::aurum::RspStatus::OK);
41     } else
42         mResponse->set_status(::aurum::RspStatus::ERROR);
43
44     return grpc::Status::OK;
45 }
46
47 ::grpc::Status ClickCoordCommand::execute()
48 {
49     UiDevice* obj = UiDevice::getInstance(DeviceType::DEFAULT);
50     const ::aurum::Point& point = mRequest->coordination();
51     obj->click(point.x(), point.y());
52     mResponse->set_status(::aurum::RspStatus::OK);
53 }
54
55 ::grpc::Status ClickAtspiCommand::execute()
56 {
57     return grpc::Status::CANCELLED;
58 }