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);
}
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));
}
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;
}
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();
}
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);
}
Aggregations