Search in sources :

Example 1 with Description

use of com.codename1.rad.models.Property.Description in project CodeRAD by shannah.

the class FieldEditor method build.

void build() {
    if (built) {
        return;
    }
    built = true;
    setLayout(BoxLayout.y());
    Property.Label lbl = field.getLabel(entity.getEntity().getEntityType());
    LabelStyle labelStyle = field.getLabelStyle(LabelStyle.Default);
    Property.Description description = field.getDescription(entity.getEntity().getEntityType());
    DescriptionStyle descriptionStyle = field.getDescriptionStyle(DescriptionStyle.HelpButton);
    Container above = new Container(new FlowLayout());
    above.stripMarginAndPadding();
    Container wrap = new Container(new BorderLayout());
    wrap.stripMarginAndPadding();
    if (lbl != null && labelStyle != LabelStyle.None) {
        above.add(new SpanLabel(lbl.getValue()));
        if (description != null) {
            switch(descriptionStyle) {
                case HelpButton:
                    above.add(new HelpButton(description.getValue()));
                    break;
                case SpanLabel:
                    SpanLabel descriptionSpanLabel = new SpanLabel(description.getValue(), "FieldDescriptionText");
                    above.add(descriptionSpanLabel);
                    break;
            }
        }
    } else {
        if (description != null) {
            Component descCmp = null;
            switch(descriptionStyle) {
                case HelpButton:
                    descCmp = new HelpButton(description.getValue());
                    wrap.add(BorderLayout.EAST, descCmp);
                    break;
                case SpanLabel:
                    descCmp = new SpanLabel(description.getValue(), "FieldDescriptionText");
                    above.add(descCmp);
                    break;
            }
            if (descCmp != null) {
            }
        }
    }
    WidgetType widgetType = field.getWidgetType(entity.getEntity().getEntityType());
    if (widgetType != null) {
        component = field.getViewFactory().createPropertyView(entity, field);
        wrap.add(BorderLayout.CENTER, component);
    } else {
        throw new IllegalStateException("Field " + field + " has not widget type");
    }
    Container topBar = new Container(BoxLayout.y());
    NodeUtilFunctions.buildTopActionsBar(field, topBar, entity);
    if (above.getComponentCount() > 0) {
        if (topBar.getComponentCount() > 0) {
            above = BorderLayout.centerEastWest(above, topBar, null);
        }
        add(above);
    } else {
        if (topBar.getComponentCount() > 0) {
            add(topBar);
        }
    }
    add(wrap);
    NodeUtilFunctions.buildBottomActionsBar(field, this, entity);
}
Also used : DescriptionStyle(com.codename1.rad.ui.EntityEditor.DescriptionStyle) FlowLayout(com.codename1.ui.layouts.FlowLayout) LabelStyle(com.codename1.rad.ui.EntityEditor.LabelStyle) SpanLabel(com.codename1.components.SpanLabel) Container(com.codename1.ui.Container) BorderLayout(com.codename1.ui.layouts.BorderLayout) HelpButton(ca.weblite.shared.components.HelpButton) Component(com.codename1.ui.Component) WidgetType(com.codename1.rad.attributes.WidgetType) Property(com.codename1.rad.models.Property)

Example 2 with Description

use of com.codename1.rad.models.Property.Description in project CodeRAD by shannah.

the class PropertySelectorTest method manualExampleTest.

private void manualExampleTest() throws Exception {
    String xml = "<?xml version=\"1.0\"?>\n" + "<catalog>\n" + "   <book id=\"bk101\">\n" + "      <author>Gambardella, Matthew</author>\n" + "      <title>XML Developer's Guide</title>\n" + "      <genre>Computer</genre>\n" + "      <price>44.95</price>\n" + "      <publish_date>2000-10-01</publish_date>\n" + "      <description>An in-depth look at creating applications \n" + "      with XML.</description>\n" + "   </book>\n" + "   <book id=\"bk102\">\n" + "      <author>Ralls, Kim</author>\n" + "      <title>Midnight Rain</title>\n" + "      <genre>Fantasy</genre>\n" + "      <price>5.95</price>\n" + "      <publish_date>2000-12-16</publish_date>\n" + "      <description>A former architect battles corporate zombies, \n" + "      an evil sorceress, and her own childhood to become queen \n" + "      of the world.</description>\n" + "   </book>\n" + "   <book id=\"bk103\">\n" + "      <author>Corets, Eva</author>\n" + "      <title>Maeve Ascendant</title>\n" + "      <genre>Fantasy</genre>\n" + "      <price>5.95</price>\n" + "      <publish_date>2000-11-17</publish_date>\n" + "      <description>After the collapse of a nanotechnology \n" + "      society in England, the young survivors lay the \n" + "      foundation for a new society.</description>\n" + "   </book>\n" + "   <book id=\"bk104\">\n" + "      <author>Corets, Eva</author>\n" + "      <title>Oberon's Legacy</title>\n" + "      <genre>Fantasy</genre>\n" + "      <price>5.95</price>\n" + "      <publish_date>2001-03-10</publish_date>\n" + "      <description>In post-apocalypse England, the mysterious \n" + "      agent known only as Oberon helps to create a new life \n" + "      for the inhabitants of London. Sequel to Maeve \n" + "      Ascendant.</description>\n" + "   </book>\n" + "   <book id=\"bk105\">\n" + "      <author>Corets, Eva</author>\n" + "      <title>The Sundered Grail</title>\n" + "      <genre>Fantasy</genre>\n" + "      <price>5.95</price>\n" + "      <publish_date>2001-09-10</publish_date>\n" + "      <description>The two daughters of Maeve, half-sisters, \n" + "      battle one another for control of England. Sequel to \n" + "      Oberon's Legacy.</description>\n" + "   </book>\n" + "   <book id=\"bk106\">\n" + "      <author>Randall, Cynthia</author>\n" + "      <title>Lover Birds</title>\n" + "      <genre>Romance</genre>\n" + "      <price>4.95</price>\n" + "      <publish_date>2000-09-02</publish_date>\n" + "      <description>When Carla meets Paul at an ornithology \n" + "      conference, tempers fly as feathers get ruffled.</description>\n" + "   </book>\n" + "   <book id=\"bk107\">\n" + "      <author>Thurman, Paula</author>\n" + "      <title>Splish Splash</title>\n" + "      <genre>Romance</genre>\n" + "      <price>4.95</price>\n" + "      <publish_date>2000-11-02</publish_date>\n" + "      <description>A deep sea diver finds true love twenty \n" + "      thousand leagues beneath the sea.</description>\n" + "   </book>\n" + "   <book id=\"bk108\">\n" + "      <author>Knorr, Stefan</author>\n" + "      <title>Creepy Crawlies</title>\n" + "      <genre>Horror</genre>\n" + "      <price>4.95</price>\n" + "      <publish_date>2000-12-06</publish_date>\n" + "      <description>An anthology of horror stories about roaches,\n" + "      centipedes, scorpions  and other insects.</description>\n" + "   </book>\n" + "   <book id=\"bk109\">\n" + "      <author>Kress, Peter</author>\n" + "      <title>Paradox Lost</title>\n" + "      <genre>Science Fiction</genre>\n" + "      <price>6.95</price>\n" + "      <publish_date>2000-11-02</publish_date>\n" + "      <description>After an inadvertant trip through a Heisenberg\n" + "      Uncertainty Device, James Salway discovers the problems \n" + "      of being quantum.</description>\n" + "   </book>\n" + "   <book id=\"bk110\">\n" + "      <author>O'Brien, Tim</author>\n" + "      <title>Microsoft .NET: The Programming Bible</title>\n" + "      <genre>Computer</genre>\n" + "      <price>36.95</price>\n" + "      <publish_date>2000-12-09</publish_date>\n" + "      <description>Microsoft's .NET initiative is explored in \n" + "      detail in this deep programmer's reference.</description>\n" + "   </book>\n" + "   <book id=\"bk111\">\n" + "      <author>O'Brien, Tim</author>\n" + "      <title>MSXML3: A Comprehensive Guide</title>\n" + "      <genre>Computer</genre>\n" + "      <price>36.95</price>\n" + "      <publish_date>2000-12-01</publish_date>\n" + "      <description>The Microsoft MSXML3 parser is covered in \n" + "      detail, with attention to XML DOM interfaces, XSLT processing, \n" + "      SAX and more.</description>\n" + "   </book>\n" + "   <book id=\"bk112\">\n" + "      <author>Galos, Mike</author>\n" + "      <title>Visual Studio 7: A Comprehensive Guide</title>\n" + "      <genre>Computer</genre>\n" + "      <price>49.95</price>\n" + "      <publish_date>2001-04-16</publish_date>\n" + "      <description>Microsoft Visual Studio 7 is explored in depth,\n" + "      looking at how Visual Basic, Visual C++, C#, and ASP+ are \n" + "      integrated into a comprehensive development \n" + "      environment.</description>\n" + "   </book>\n" + "</catalog>";
    EntityType bookType = new EntityTypeBuilder().string(Thing.identifier).string(Thing.name).string(Thing.description).build();
    class Book extends BaseEntity {
    }
    EntityType.register(Book.class, bookType, cls -> {
        return new Book();
    });
    class Books extends EntityList<Book> {
    }
    EntityType.registerList(Books.class, Book.class, cls -> {
        return new Books();
    });
    Tag BOOKS = new Tag("Books");
    EntityType catalogType = new EntityTypeBuilder().list(Books.class, BOOKS).build();
    class Catalog extends BaseEntity {

        {
            setEntityType(catalogType);
        }
    }
    EntityType.register(Catalog.class, cls -> {
        return new Catalog();
    });
    ResultParser parser = new ResultParser(catalogType).property("./book", BOOKS).entityType(bookType).property("@id", Thing.identifier).property("title", Thing.name).property("description", Thing.description);
    Catalog catalog = (Catalog) parser.parseXML(xml, new Catalog());
    Books books = (Books) catalog.get(BOOKS);
    assertEqual("bk101", books.get(0).get(Thing.identifier));
    assertEqual("bk112", books.get(books.size() - 1).get(Thing.identifier));
    assertEqual("XML Developer's Guide", books.get(0).get(Thing.name));
    PropertySelector id1 = new PropertySelector(catalog, BOOKS).child(0, Thing.identifier);
    PropertySelector name1 = new PropertySelector(catalog, BOOKS).child(0, Thing.name);
    assertEqual("bk101", id1.getText(null));
    assertEqual("XML Developer's Guide", name1.getText(null));
    assertNull(propertySelector(catalog, BOOKS).child(Thing.name).getText(null));
    class Stats {

        int counter;
    }
    Stats stats = new Stats();
    name1.addPropertyChangeListener(evt -> {
        stats.counter++;
    });
    assertEqual(0, stats.counter);
    boolean res = name1.setText("Foo");
    assertTrue(res);
    assertEqual("Foo", name1.getText(null));
    assertEqual(1, stats.counter);
    Books newBooks = new Books();
    catalog.set(BOOKS, newBooks);
    assertEqual(2, stats.counter);
    assertNull(name1.getText(null));
    Book newBook = new Book();
    newBook.setText(Thing.name, "Bar");
    newBooks.add(newBook);
    assertEqual("Bar", name1.getText(null));
    assertEqual(3, stats.counter);
    newBook.setText(Thing.name, "Bar2");
    assertEqual(4, stats.counter);
    assertEqual("Bar2", name1.getText(null));
    name1.setText("Bar3");
    assertEqual("Bar3", newBook.getText(Thing.name));
    assertEqual("Bar3", name1.getText(null));
    assertEqual(5, stats.counter);
    books.get(0).set(Thing.name, "Changed again");
    assertEqual("Bar3", name1.getText(null));
    assertEqual("Changed again", books.get(0).getText(Thing.name));
    assertEqual(5, stats.counter);
    Book newBook2 = new Book();
    newBook2.setText(Thing.name, "newBook2");
    newBooks.add(newBook2);
    assertEqual(5, stats.counter);
    assertEqual("Bar3", name1.getText(null));
    newBooks.remove(newBook);
    assertEqual(6, stats.counter);
    assertEqual("newBook2", name1.getText(null));
}
Also used : ResultParser(com.codename1.rad.io.ResultParser)

Example 3 with Description

use of com.codename1.rad.models.Property.Description in project CodenameOne by codenameone.

the class RSSReader method createRendererContainer.

private Container createRendererContainer() {
    Container entries = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    entries.setUIID("RSSEntry");
    Label title = new Label();
    title.setName("title");
    title.setUIID("RSSTitle");
    entries.addComponent(title);
    TextArea description = new TextArea(2, 30);
    description.setGrowByContent(false);
    description.setName("details");
    description.setUIID("RSSDescription");
    description.setScrollVisible(false);
    entries.addComponent(description);
    if (iconPlaceholder != null) {
        Container wrap = new Container(new BorderLayout());
        wrap.addComponent(BorderLayout.CENTER, entries);
        Label icon = new Label();
        icon.setIcon(iconPlaceholder);
        icon.setUIID("RSSIcon");
        icon.setName("icon");
        wrap.addComponent(BorderLayout.WEST, icon);
        entries = wrap;
    }
    return entries;
}
Also used : Container(com.codename1.ui.Container) BorderLayout(com.codename1.ui.layouts.BorderLayout) TextArea(com.codename1.ui.TextArea) BoxLayout(com.codename1.ui.layouts.BoxLayout) Label(com.codename1.ui.Label)

Example 4 with Description

use of com.codename1.rad.models.Property.Description in project CodenameOne by codenameone.

the class RSSReader method showRSSEntry.

/**
 * Shows a form containing the RSS entry
 *
 * @param h the parsed entry
 */
protected void showRSSEntry(Hashtable h) {
    Form newForm = null;
    if (targetContainer != null) {
        if (targetContainer instanceof Form) {
            newForm = (Form) targetContainer;
        } else {
            newForm = new Form((String) h.get("title"));
            newForm.setLayout(new BorderLayout());
            newForm.addComponent(BorderLayout.CENTER, targetContainer);
        }
        updateComponentValues(newForm, h);
    } else {
        newForm = new Form((String) h.get("title"));
        newForm.setScrollable(false);
        WebBrowser c = new WebBrowser();
        String s = (String) h.get("description");
        s = "<html><body>" + s + "</body></html>";
        c.setPage(s, null);
        newForm.setLayout(new BorderLayout());
        newForm.addComponent(BorderLayout.CENTER, c);
    }
    if (addBackToTaget) {
        final Form sourceForm = Display.getInstance().getCurrent();
        Command back = new BackCommand(sourceForm);
        newForm.addCommand(back);
        newForm.setBackCommand(back);
    }
    newForm.show();
}
Also used : BorderLayout(com.codename1.ui.layouts.BorderLayout) Form(com.codename1.ui.Form) Command(com.codename1.ui.Command)

Example 5 with Description

use of com.codename1.rad.models.Property.Description in project CodenameOne by codenameone.

the class FaceBookAccess method postOnWall.

/**
 * Post a message on the users wall
 *
 * @param userId the userId
 * @param message the message to post
 * @param name
 * @param link
 * @param description
 * @param picture
 * @param caption
 */
public void postOnWall(String userId, String message, String name, String link, String description, String picture, String caption, ActionListener callback) throws IOException {
    checkAuthentication();
    FacebookRESTService con = new FacebookRESTService(token, userId, FacebookRESTService.FEED, true);
    if (message != null) {
        con.addArgument("message", message);
    }
    if (name != null) {
        con.addArgument("name", name);
    }
    if (link != null) {
        con.addArgument("link", link);
    }
    if (description != null) {
        con.addArgument("description", description);
    }
    if (picture != null) {
        con.addArgument("picture", picture);
    }
    if (caption != null) {
        con.addArgument("caption", caption);
    }
    con.addResponseListener(new Listener(con, callback));
    if (slider != null) {
        SliderBridge.bindProgress(con, slider);
    }
    for (int i = 0; i < responseCodeListeners.size(); i++) {
        con.addResponseCodeListener((ActionListener) responseCodeListeners.elementAt(i));
    }
    current = con;
    NetworkManager.getInstance().addToQueueAndWait(con);
}
Also used : ActionListener(com.codename1.ui.events.ActionListener)

Aggregations

IOException (java.io.IOException)6 BorderLayout (com.codename1.ui.layouts.BorderLayout)5 Container (com.codename1.ui.Container)4 Cursor (com.codename1.db.Cursor)3 Row (com.codename1.db.Row)3 ResultParser (com.codename1.rad.io.ResultParser)3 Form (com.codename1.ui.Form)3 ArrayList (java.util.ArrayList)3 SpanLabel (com.codename1.components.SpanLabel)2 Button (com.codename1.ui.Button)2 Element (com.codename1.xml.Element)2 XMLParser (com.codename1.xml.XMLParser)2 InputStreamReader (java.io.InputStreamReader)2 Notification (android.app.Notification)1 NotificationManager (android.app.NotificationManager)1 PendingIntent (android.app.PendingIntent)1 Intent (android.content.Intent)1 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)1 Paint (android.graphics.Paint)1 Uri (android.net.Uri)1