use of com.codename1.rad.models.Entity in project CodeRAD by shannah.
the class TextFieldPropertyView method commit.
@Override
public void commit() {
Entity leafEntity = getPropertySelector().getLeafEntity();
Property leafProperty = getPropertySelector().getLeafProperty();
String text = getComponent().getText();
TextFormatterAttribute formatter = (TextFormatterAttribute) getField().findAttribute(TextFormatterAttribute.class);
if (formatter != null) {
if (!formatter.getValue().supportsParse()) {
throw new RuntimeException("Formatter does not support parse committing text '" + text + "'.");
}
try {
text = formatter.getValue().parse(text);
} catch (ParseException ex) {
throw new RuntimeException("Failed to parse text '" + text + "' for property.");
}
}
leafProperty.setValue(leafEntity.getEntity(), ContentType.convert(ContentType.Text, text, getProperty().getContentType()));
}
use of com.codename1.rad.models.Entity in project CodeRAD by shannah.
the class Actions method createHorizontalGrid.
public Container createHorizontalGrid(Entity entity) {
if (size() > 0) {
Container cnt = new Container(new GridLayout(size()));
addToContainer(cnt, entity);
return cnt;
} else {
return new Container();
}
}
use of com.codename1.rad.models.Entity in project CodeRAD by shannah.
the class ResultParserTest method nestedXMLAttsTest.
// Disabling nested XML Atts tests because I can't figure out how
// Result works with XML...
private void nestedXMLAttsTest() throws Exception {
assertTrue(personType.newInstance() instanceof PersonModel, "persontype should create a Person, but created " + personType.newInstance());
ResultParser parser = new ResultParser(personType).property("@name", Person.name).property("@email", Person.email).property("@dob", Person.birthDate, new SimpleDateFormat("MMM d, yyyy")).property("./children/person", Person.children).property("./publication", publications);
ResultParser publicationParser = new ResultParser(publicationType).property("@name", Thing.name).property(".", Thing.description);
parser.add(publicationParser);
String json = "<person name=\"Paul\" email=\"paul@example.com\" dob=\"December 27, 1978\">" + "<children><person name=\"Jim\" email=\"jim@example.com\" dob=\"January 10, 1979\"/>" + "<person name=\"Jill\" email=\"jill@example.com\" dob=\"January 11, 1979\"/></children><publication name=\"Time Magazine\">Political and current event stories</publication>" + "<publication name=\"Vancouver Sun\"/></person>";
XMLParser xparser = new XMLParser();
Element root = xparser.parse(new StringReader("<?xml version='1.0'?>\n" + json));
Entity person = parser.parseRow(Result.fromContent(root), personType.newInstance());
assertEqual("Paul", person.getEntity().getText(Person.name));
assertEqual("paul@example.com", person.getEntity().getText(Person.email));
People children = (People) person.getEntity().get(Person.children);
assertEqual(2, children.size());
assertEqual("Jim", children.get(0).get(Person.name));
assertEqual("jim@example.com", children.get(0).get(Person.email));
assertEqual("Jill", children.get(1).get(Person.name));
assertEqual("jill@example.com", children.get(1).get(Person.email));
Publications pubs = (Publications) person.getEntity().get(publications);
assertEqual(2, pubs.size());
assertEqual("Time Magazine", pubs.get(0).get(Thing.name));
assertEqual("Vancouver Sun", pubs.get(1).get(Thing.name));
assertEqual("Political and current event stories", pubs.get(0).get(Thing.description));
}
use of com.codename1.rad.models.Entity in project CodeRAD by shannah.
the class ResultParserTest method nestedJSONTest.
private void nestedJSONTest() throws Exception {
EntityType personType = new EntityTypeBuilder().string(Person.name).string(Person.email).Date(Person.birthDate).list(Publications.class, publications).build();
ResultParser parser = new ResultParser(personType).property("name", Person.name).property("email", Person.email).property("dob", Person.birthDate, dateStr -> {
if (!(dateStr instanceof String)) {
return null;
}
String str = (String) dateStr;
if (str.isEmpty()) {
return null;
}
SimpleDateFormat fmt = new SimpleDateFormat("MMM d, yyyy");
try {
return fmt.parse(str);
} catch (ParseException ex) {
Log.e(ex);
return null;
}
}).property("publications", publications);
ResultParser publicationParser = new ResultParser(publicationType).property("name", Thing.name).property("description", Thing.description);
parser.add(publicationParser);
String json = "{\"name\":\"Paul\", " + "\"email\":\"paul@example.com\", " + "\"dob\" : \"December 27, 1978\", " + "\"publications\" : [" + " {\"name\":\"Time Magazine\", \"description\" : \"Political and current event stories\"}, " + " {\"name\":\"Vancouver Sun\"}" + "]" + "}";
Entity person = parser.parseRow(Result.fromContent(json, Result.JSON), personType.newInstance());
assertEqual("Paul", person.getEntity().getText(Person.name));
assertEqual("paul@example.com", person.getEntity().getText(Person.email));
Publications pubs = (Publications) person.getEntity().get(publications);
assertEqual(2, pubs.size());
assertEqual("Time Magazine", pubs.get(0).get(Thing.name));
assertEqual("Vancouver Sun", pubs.get(1).get(Thing.name));
assertEqual("Political and current event stories", pubs.get(0).get(Thing.description));
}
use of com.codename1.rad.models.Entity in project CodeRAD by shannah.
the class ResultParserTest method dateFormatXMLAttsTest.
private void dateFormatXMLAttsTest() throws Exception {
EntityType personType = new EntityTypeBuilder().string(Person.name).string(Person.email).Date(Person.birthDate).build();
ResultParser parser = new ResultParser(personType).property("/person[0]/@name", Person.name).property("/person[0]/@email", Person.email).property("/person[0]/@dob", Person.birthDate, new SimpleDateFormat("MMM d, yyyy"));
String json = "<person name=\"Paul\" email=\"paul@example.com\" dob=\"December 27, 1978\"></person>";
XMLParser xparser = new XMLParser();
Element root = xparser.parse(new StringReader("<?xml version='1.0'?>\n" + json));
Entity person = parser.parseRow(Result.fromContent(root), personType.newInstance());
assertEqual("Paul", person.getEntity().getText(Person.name));
assertEqual("paul@example.com", person.getEntity().getText(Person.email));
}
Aggregations