/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addNotesButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *notesButtonCmd = new OpenMenuCommand(menu); /** * We only want to retrieve from Facebook the "id", "subject" and "from" fields from an Album object */ MAUtil::Vector<MAUtil::String> fields; fields.add("id"); fields.add("subject"); // fields.add("from"); ConnectionRequestCommand *displayNotesCmd = new ConnectionRequestCommand( mFacebookManager, notesButtonCmd->getMenuScreen(), Connections<User>::notes(), fields, "me"); ListItem *displayNotes = new ListItem(displayNotesCmd, "Display notes"); notesButtonCmd->addMenuItem(displayNotes); //create new friend list AddCommand<Note> *createNoteCmd = new AddCommand<Note>( mFacebookManager, notesButtonCmd->getMenuScreen()); createNoteCmd->setNoteParams("New note created with MOSYNC_SDK", "Testing creating a note with Facebook library"); ListItem *createNote = new ListItem(createNoteCmd, "Create Note"); notesButtonCmd->addMenuItem(createNote); ListItem *listsButton = new ListItem(notesButtonCmd, "notes"); menu->add(listsButton); }
/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addStatusMessagesButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *statusButtonCmd = new OpenMenuCommand(menu); /** * We only want to retrieve from Facebook the "name", "id", "message" fields from an StatusMessage object */ MAUtil::Vector<MAUtil::String> fields; fields.add("id"); fields.add("message"); ConnectionRequestCommand *displayStatusesCmd = new ConnectionRequestCommand( mFacebookManager, menu, Connections<User>::statuses(), fields, "me"); ListItem *displayStatuses = new ListItem(displayStatusesCmd, "Display status messages"); statusButtonCmd->addMenuItem(displayStatuses); //create new status message AddCommand<StatusMessage> *createStatusMsgCmd = new AddCommand<StatusMessage>( mFacebookManager, menu); createStatusMsgCmd->setMessage("New status message created with MOSYNC_SDK"); ListItem *createStatusMsg = new ListItem(createStatusMsgCmd, "Create StatusMessage"); statusButtonCmd->addMenuItem(createStatusMsg); ListItem *statusButton = new ListItem(statusButtonCmd, "status messages"); menu->add(statusButton); }
/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addCheckinsButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *checkinsButtonCmd = new OpenMenuCommand(menu); /** * We only want to retrieve from Facebook the "place" and "id" fields from an Checkin object */ MAUtil::Vector<MAUtil::String> fields; fields.add("id"); fields.add("place"); //fields.add("application"); ConnectionRequestCommand *displayCheckinsCmd = new ConnectionRequestCommand( mFacebookManager, checkinsButtonCmd->getMenuScreen(), Connections<User>::checkins(), fields, "me"); ListItem *displayCheckins = new ListItem(displayCheckinsCmd, "display checkins"); checkinsButtonCmd->addMenuItem(displayCheckins); //create new checkin AddCommand<Checkin> *createCheckinCmd = new AddCommand<Checkin>( mFacebookManager, checkinsButtonCmd->getMenuScreen()); MAUtil::String placeIdMoSync = "126381597427662"; Coordinate coordMoSync; coordMoSync.mLatitude = "59.339451"; coordMoSync.mLongitude = "18.05798"; createCheckinCmd->setCheckinParams(placeIdMoSync, coordMoSync); ListItem *createCheckin = new ListItem(createCheckinCmd, "create checkin"); checkinsButtonCmd->addMenuItem(createCheckin); ListItem *checkinsButton = new ListItem(checkinsButtonCmd, "checkins"); menu->add(checkinsButton); }
/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addAlbumsButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *albumsButtonCmd = new OpenMenuCommand(menu); /** * We only want to retrieve from Facebook the "name", "id", "description" and "count" fields from an Album object */ MAUtil::Vector<MAUtil::String> fields; fields.add("name"); fields.add("id"); // fields.add("description"); // fields.add("count"); ConnectionRequestCommand *displayAlbumsCmd = new ConnectionRequestCommand( mFacebookManager, albumsButtonCmd->getMenuScreen(), Connections<User>::albums(), fields, "me"); ListItem *displayAlbums = new ListItem(displayAlbumsCmd, "display albums"); albumsButtonCmd->addMenuItem(displayAlbums); //create new album AddCommand<Album> *createAlbumCmd = new AddCommand<Album>( mFacebookManager, albumsButtonCmd->getMenuScreen()); createAlbumCmd->setAlbumName("New album created with MOSYNC_SDK"); ListItem *createAlbum = new ListItem(createAlbumCmd, "create album"); albumsButtonCmd->addMenuItem(createAlbum); ListItem *albumsButton = new ListItem(albumsButtonCmd, "albums"); menu->add(albumsButton); }
void AddCommandTest::testAddItem() { QTemporaryFile tempFile; tempFile.setAutoRemove(false); tempFile.open(); tempFile.write("Hello World!"); const char *args[6] = { "akonadiclient", "add", "/res3", tempFile.fileName().toLocal8Bit().data(), "--base", QDir::tempPath().toLocal8Bit().data() }; tempFile.close(); KCmdLineArgs *parsedArgs = getParsedArgs(6, args); AddCommand *command = new AddCommand(this); int ret = command->init(parsedArgs); QCOMPARE(ret, 0); ret = runCommand(command); QCOMPARE(ret, 0); }
void Client::main(std::string args[]) { //1:组装命令和接收者 //创建接收者 OperationApi *operation = new Operation(); //创建命令 AddCommand *addCmd = new AddCommand(5); SubstractCommand *substractCmd = new SubstractCommand(3); //组装命令和接收者 addCmd->setOperation(operation); substractCmd->setOperation(operation); //2:把命令设置到持有者,就是计算器里面 Calculator *calculator = new Calculator(); calculator->setAddCmd(addCmd); calculator->setSubstractCmd(substractCmd); //3:模拟按下按钮,测试一下 calculator->addPressed(); puts("一次加法运算后的结果为:"+operation->getResult()); calculator->substractPressed(); puts("一次减法运算后的结果为:"+operation->getResult()); //测试撤消 calculator->undoPressed(); puts("撤销一次后的结果为:"+operation->getResult()); calculator->undoPressed(); puts("再撤销一次后的结果为:"+operation->getResult()); //测试恢复 calculator->redoPressed(); puts("恢复操作一次后的结果为:"+operation->getResult()); calculator->redoPressed(); puts("再恢复操作一次后的结果为:"+operation->getResult()); }
/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addFriendListsButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *listsButtonCmd = new OpenMenuCommand(menu); //display the friend lists ConnectionRequestCommand *displayListsCmd = new ConnectionRequestCommand( mFacebookManager, listsButtonCmd->getMenuScreen(), Connections<User>::friendlists(), "me"); ListItem *displayLists = new ListItem(displayListsCmd, "Display friend lists"); listsButtonCmd->addMenuItem(displayLists); //create new friend list tm tmTimeStamp; split_time(maLocalTime(), &tmTimeStamp); MAUtil::String strTimeStamp; strTimeStamp = MAUtil::integerToString(tmTimeStamp.tm_year + 1900); strTimeStamp += "/"; strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_mon); strTimeStamp += "/"; strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_mday); strTimeStamp += "_"; strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_hour); strTimeStamp += ":"; strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_min); strTimeStamp += ":"; strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_sec); // strTimeStamp += MAUtil::integerToString(tmTimeStamp.tm_sec + rand()); AddCommand<FriendList> *createListCmd = new AddCommand<FriendList>( mFacebookManager, listsButtonCmd->getMenuScreen() ); createListCmd->setFriendlistName(strTimeStamp); ListItem *createList = new ListItem(createListCmd, "Create friend list"); listsButtonCmd->addMenuItem(createList); ListItem *listsButton = new ListItem(listsButtonCmd, "friendLists"); menu->add(listsButton); }
/** * Creates a button and adds it to the main menu * Adds on the button a command that sends the connection request to Facebook */ void FacebookDemoMoblet::addEventsButton(FacebookDemoGUI::FacebookDemoScreen *menu) { using namespace FacebookDemoGUI; using namespace FacebookDemoApplication; OpenMenuCommand *eventsButtonCmd = new OpenMenuCommand(menu); /** * We only want to retrieve from Facebook the "name", "id", "name" and "start_time" and "location" fields from an Event object */ MAUtil::Vector<MAUtil::String> fields; fields.add("id"); fields.add("name"); // fields.add("start_time"); fields.add("location"); ConnectionRequestCommand *displayEventsCmd = new ConnectionRequestCommand( mFacebookManager, eventsButtonCmd->getMenuScreen(), Connections<User>::events(), fields, "me"); ListItem *displayEvents = new ListItem(displayEventsCmd, "Display events"); eventsButtonCmd->addMenuItem(displayEvents); //create new event AddCommand<Event> *createEventCmd = new AddCommand<Event>( mFacebookManager, eventsButtonCmd->getMenuScreen()); //event UnixTimeStamp startTimeStamp(Date("2012", "10", "6"), Time("4","15","30")); UnixTimeStamp endTimeStamp(Date("2012", "10", "6"), Time("5", "20","00")); createEventCmd->setEventParams("New event created with MOSYNC_SDK", startTimeStamp, endTimeStamp, "Testing creating an event", "Stockholm"); ListItem *createEvent = new ListItem(createEventCmd, "Create event"); eventsButtonCmd->addMenuItem(createEvent); ListItem *eventsButton = new ListItem(eventsButtonCmd, "events"); menu->add(eventsButton); }
void AddCommandTest::testAddItem() { QDir dir(mTempDir->name()); dir.cd("foo"); QDir::setCurrent(dir.absolutePath()); CollectionResolveJob *resolveJob = new CollectionResolveJob("/res3", this); QVERIFY(resolveJob->hasUsableInput()); AKVERIFYEXEC(resolveJob); QVERIFY(resolveJob->collection().isValid()); Collection col; col.setName("test"); col.setParentCollection(resolveJob->collection()); CollectionCreateJob *createJob = new CollectionCreateJob(col, this); AKVERIFYEXEC(createJob); col = createJob->collection(); QVERIFY(col.isValid()); const int numArgs = 5; QVector<QByteArray> args; args.reserve(numArgs); args << "akonadiclient" << "add" << "/res3/test" << "../test.txt" << "bar"; const char *testArgs[numArgs]; for (int i = 0; i < numArgs; i++) { testArgs[i] = args.at(i).data(); } KCmdLineArgs *parsedArgs = getParsedArgs(numArgs, testArgs); AddCommand *command = new AddCommand(this); int ret = command->init(parsedArgs); QCOMPARE(ret, 0); ret = runCommand(command); QCOMPARE(ret, 0); ItemFetchJob *itemFetchJob1 = new ItemFetchJob(col, this); itemFetchJob1->fetchScope().fetchAllAttributes(false); itemFetchJob1->fetchScope().fetchFullPayload(true); AKVERIFYEXEC(itemFetchJob1); QCOMPARE(itemFetchJob1->items().count(), 1); QCOMPARE(itemFetchJob1->items().at(0).payloadData(), QByteArray("Testing")); CollectionFetchJob *fetchJob1 = new CollectionFetchJob(col, CollectionFetchJob::FirstLevel, this); AKVERIFYEXEC(fetchJob1); QCOMPARE(fetchJob1->collections().count(), 1); col = fetchJob1->collections().at(0); QCOMPARE(col.name(), QString("bar")); ItemFetchJob *itemFetchJob2 = new ItemFetchJob(col, this); itemFetchJob2->fetchScope().fetchAllAttributes(false); itemFetchJob2->fetchScope().fetchFullPayload(true); AKVERIFYEXEC(itemFetchJob2); QCOMPARE(itemFetchJob2->items().count(), 1); QCOMPARE(itemFetchJob2->items().at(0).payloadData(), QByteArray("Bar Item")); }