Search in sources :

Example 56 with Entity

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()));
}
Also used : Entity(com.codename1.rad.models.Entity) TextFormatterAttribute(com.codename1.rad.models.TextFormatterAttribute) ParseException(com.codename1.l10n.ParseException) Property(com.codename1.rad.models.Property)

Example 57 with Entity

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();
    }
}
Also used : Container(com.codename1.ui.Container) GridLayout(com.codename1.ui.layouts.GridLayout)

Example 58 with Entity

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));
}
Also used : Entity(com.codename1.rad.models.Entity) Element(com.codename1.xml.Element) StringReader(java.io.StringReader) ResultParser(com.codename1.rad.io.ResultParser) XMLParser(com.codename1.xml.XMLParser) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat)

Example 59 with Entity

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));
}
Also used : AbstractTest(com.codename1.testing.AbstractTest) Person(com.codename1.rad.schemas.Person) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat) BaseEntity.entityTypeBuilder(com.codename1.rad.models.BaseEntity.entityTypeBuilder) Element(com.codename1.xml.Element) Log(com.codename1.io.Log) ParseException(com.codename1.l10n.ParseException) com.codename1.rad.models(com.codename1.rad.models) PropertyParserCallback(com.codename1.rad.io.ResultParser.PropertyParserCallback) XMLParser(com.codename1.xml.XMLParser) List(java.util.List) ResultParser.resultParser(com.codename1.rad.io.ResultParser.resultParser) StringReader(java.io.StringReader) ParsingService(com.codename1.rad.io.ParsingService) Product(com.codename1.rad.schemas.Product) Map(java.util.Map) Thing(com.codename1.rad.schemas.Thing) Result(com.codename1.rad.processing.Result) ResultParser(com.codename1.rad.io.ResultParser) Entity(com.codename1.rad.models.Entity) Entity(com.codename1.rad.models.Entity) ResultParser(com.codename1.rad.io.ResultParser) ParseException(com.codename1.l10n.ParseException) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat)

Example 60 with Entity

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));
}
Also used : Entity(com.codename1.rad.models.Entity) Element(com.codename1.xml.Element) StringReader(java.io.StringReader) ResultParser(com.codename1.rad.io.ResultParser) XMLParser(com.codename1.xml.XMLParser) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat)

Aggregations

Entity (com.codename1.rad.models.Entity)38 Property (com.codename1.rad.models.Property)15 EntityList (com.codename1.rad.models.EntityList)13 Container (com.codename1.ui.Container)12 BorderLayout (com.codename1.ui.layouts.BorderLayout)11 ActionNode (com.codename1.rad.nodes.ActionNode)10 FieldNode (com.codename1.rad.nodes.FieldNode)10 Form (com.codename1.ui.Form)8 ViewNode (com.codename1.rad.nodes.ViewNode)7 GridLayout (com.codename1.ui.layouts.GridLayout)7 SimpleDateFormat (com.codename1.l10n.SimpleDateFormat)6 ResultParser (com.codename1.rad.io.ResultParser)6 Component (com.codename1.ui.Component)6 Element (com.codename1.xml.Element)6 BadgeUIID (com.codename1.rad.attributes.BadgeUIID)5 Thing (com.codename1.rad.schemas.Thing)5 Button (com.codename1.ui.Button)5 BoxLayout (com.codename1.ui.layouts.BoxLayout)5 Map (java.util.Map)5 Log (com.codename1.io.Log)4