Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
Contributor
Posts: 23
Registered: ‎11-15-2012
My Device: Red Z10 & PlayBook
My Carrier: E-Plus

Editing data saved in json file

Hello everyone,

 

I have here a small problem. I started building a small app with the Grid List Template in Momentics IDE. It has a grid list and when you click on a grid item, a second page gets opened. Here you can edit the data of the grid item.

This change has to be saved in the json-file back, but I am having some troubles at this point:

 

 

#include "Plan.h"
#include <qdebug.h>
#include <bb/cascades/GroupDataModel>
#include <bb/data/JsonDataAccess>

Plan::Plan() {}

void Plan::savePlan(QString id, QString tag, QString newFach, QString newRaum) {
	bb::data::JsonDataAccess jda;
	QVariantList lst = jda.load("app/native/assets/mydata.json").toList();
	if (jda.hasError()) {
	    //bb::data::DataAccessError error = jda.error();
	    //qDebug() << "JSON2 loading error: " << error.errorType() << ": " << error.errorMessage();
	} else {
	    qDebug() << "JSON2 data loaded OK!";
	    GroupDataModel *m = new GroupDataModel();
	    // insert the JSON data to model
	    m->insertList(lst);
	    // make the model flat
	    m->setGrouping(ItemGrouping::None);

	    QVariantMap newEntry;
	    newEntry["id"] = id;
	    newEntry["tag"] = tag;
	    newEntry["fach"] = newFach;
	    newEntry["raum"] = newRaum;

	    m->updateItem(1, newEntry);

	    QVariant newData = QVariant(QVariantList() << QVariant(m->data(0)) << QVariant(m->data(1)) << QVariant(m->data(2)) << QVariant(m->data(3)));

	    QDir home = QDir::home();
	    QTemporaryFile file(home.absoluteFilePath("app/native/assets/mydata.json"));

	    // Open the file that was created
	    if (file.open()) {
	    	// Create a JsonDataAccess object and save the data to the file
	    	//JsonDataAccess jda;
	    	jda.save(newData, &file);
	    }
	}
}

The basic problem is that this code does not get compiled Smiley Wink It gives me the following error:

 

../src/Plan.cpp:16:6: error: 'GroupDataModel' was not declared in this scope
../src/Plan.cpp:16:6: note: suggested alternative:
C:/bbndk/target_10_0_9_1101/qnx6/usr/include/bb/cascades/databinding/groupdatamodel.h:241:29: note:   'bb::cascades::GroupDataModel'
../src/Plan.cpp:16:22: error: 'm' was not declared in this scope
../src/Plan.cpp:16:30: error: expected type-specifier before 'GroupDataModel'
../src/Plan.cpp:16:30: error: expected ';' before 'GroupDataModel'
../src/Plan.cpp:20:21: error: 'ItemGrouping' has not been declared

But I really do not know anymore, what this means. If it may help: Since Beta 4 update (+ complete reinstall of SDK) I have problems with using Qt at all in the IDE, as I'm getting for example "Unresolved inclusion: <"qdebug.h">.


EDIT: I could solve this problem with adding "bb::cascades::" before like in the suggested alternative. But I am still not sure if this is the right way to load and save data in Cascades.

 

Best Regards,

Sebastian

Highlighted
Developer
Posts: 103
Registered: ‎02-13-2012
My Device: Z10 LE
My Carrier: Rogers

Re: Editing data saved in json file

I think this is a namespace problem.  In one of your header files or at the top of this file, you need:

 

using namepsace bb:cascades;

 

I hope that helps,

Nick

Learn to run and get in shape with Couch 2AnyK Pro, a Built for BlackBerry native Couch to 5K (C25K) app for BlackBerry 10, available in BlackBerry World.