Search in sources :

Example 61 with Entity

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

the class EntityListTableModel method setValueAt.

@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
    Property prop = columns.getColumn(columnIndex).getProperty(entityType);
    Entity e = entities.get(rowIndex);
    if (prop != null) {
        prop.setValue(e.getEntity(), value);
    }
}
Also used : Entity(com.codename1.rad.models.Entity) Property(com.codename1.rad.models.Property)

Example 62 with Entity

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

the class EntityListTest method testGenericList.

private void testGenericList() throws Exception {
    EntityList list = new EntityList();
    assertEqual(0, list.size());
    list.add(new BaseEntity());
    list.add(new BaseEntity());
    list.add(new BaseEntity());
    assertEqual(3, list.size());
    Entity firstEntity = list.get(0);
    assertNotNull(firstEntity);
    list.remove(firstEntity);
    assertEqual(2, list.size());
    class Stats {

        int counter = 0;

        Entity lastAdd;

        Entity lastRemove;

        int added;

        int removed;
    }
    Stats stats = new Stats();
    Observer observer = (o, arg) -> {
        stats.counter++;
    };
    list.addObserver(observer);
    list.notifyObservers();
    assertEqual(stats.counter, 1);
    list.notifyObservers();
    assertEqual(1, stats.counter);
    list.add(new BaseEntity());
    assertEqual(1, stats.counter);
    list.notifyObservers();
    assertEqual(2, stats.counter);
    list.addActionListener(evt -> {
        if (evt instanceof EntityAddedEvent) {
            EntityAddedEvent eae = (EntityAddedEvent) evt;
            stats.added++;
            stats.lastAdd = eae.getEntity();
        } else if (evt instanceof EntityRemovedEvent) {
            EntityRemovedEvent ere = (EntityRemovedEvent) evt;
            stats.removed++;
            stats.lastRemove = ere.getEntity();
        }
    });
    list.add(firstEntity);
    assertEqual(1, stats.added);
    assertEqual(firstEntity, stats.lastAdd);
    list.remove(firstEntity);
    assertEqual(1, stats.removed);
    assertEqual(firstEntity, stats.lastRemove);
}
Also used : AbstractTest(com.codename1.testing.AbstractTest) Observer(java.util.Observer) TransactionEvent(com.codename1.rad.models.EntityList.TransactionEvent) EntityAddedEvent(com.codename1.rad.models.EntityList.EntityAddedEvent) EntityRemovedEvent(com.codename1.rad.models.EntityList.EntityRemovedEvent) EntityList(com.codename1.rad.models.EntityList) BaseEntity(com.codename1.rad.models.BaseEntity) EntityListEvent(com.codename1.rad.models.EntityList.EntityListEvent) ActionListener(com.codename1.ui.events.ActionListener) Entity(com.codename1.rad.models.Entity) BaseEntity(com.codename1.rad.models.BaseEntity) Entity(com.codename1.rad.models.Entity) EntityRemovedEvent(com.codename1.rad.models.EntityList.EntityRemovedEvent) Observer(java.util.Observer) EntityList(com.codename1.rad.models.EntityList) BaseEntity(com.codename1.rad.models.BaseEntity) EntityAddedEvent(com.codename1.rad.models.EntityList.EntityAddedEvent)

Example 63 with Entity

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

the class EntityListViewTest method testSortedListTransactions.

private void testSortedListTransactions() {
    SortedList<Entity> internal = new SortedList<Entity>(new Comparator<Entity>() {

        @Override
        public int compare(Entity a, Entity b) {
            String name1 = a.getText(Thing.name);
            if (name1 == null)
                name1 = "";
            String name2 = b.getText(Thing.name);
            if (name2 == null)
                name2 = "";
            return name1.compareTo(name2);
        }
    });
    EntityList el = new EntityList() {

        @Override
        protected List createInternalList() {
            return internal;
        }
    };
    class Person extends BaseEntity {
    }
    entityTypeBuilder(Person.class).string(Thing.name).factory(cls -> {
        return new Person();
    }).build();
    Person a = new Person();
    a.set(Thing.name, "A");
    Person b = new Person();
    b.set(Thing.name, "B");
    Person c = new Person();
    c.set(Thing.name, "C");
    Person d = new Person();
    d.set(Thing.name, "D");
    ProfileListView view = new ProfileListView(el);
    view.bind();
    assertEqual(0, view.getScrollWrapper().getComponentCount());
    el.add(b);
    assertEqual(1, view.getScrollWrapper().getComponentCount());
    assertNotNull(view.getRowViewForEntity(b));
    assertNull(view.getRowViewForEntity(a));
    el.add(a);
    assertEqual(0, el.indexOf(a));
    assertEqual(1, el.indexOf(b));
    assertEqual(2, view.getScrollWrapper().getComponentCount());
    assertEqual(0, view.getScrollWrapper().getComponentIndex((Component) view.getRowViewForEntity(a)));
    assertEqual(1, view.getScrollWrapper().getComponentIndex((Component) view.getRowViewForEntity(b)));
    view.unbind();
}
Also used : AbstractTest(com.codename1.testing.AbstractTest) EntityType(com.codename1.rad.models.EntityType) BaseEntity.entityTypeBuilder(com.codename1.rad.models.BaseEntity.entityTypeBuilder) EntityList(com.codename1.rad.models.EntityList) AbstractList(java.util.AbstractList) BaseEntity(com.codename1.rad.models.BaseEntity) ProfileListView(com.codename1.rad.ui.entityviews.ProfileListView) TreeSet(java.util.TreeSet) ArrayList(java.util.ArrayList) List(java.util.List) Component(com.codename1.ui.Component) Thing(com.codename1.rad.schemas.Thing) Comparator(java.util.Comparator) Entity(com.codename1.rad.models.Entity) Collections(java.util.Collections) BaseEntity(com.codename1.rad.models.BaseEntity) Entity(com.codename1.rad.models.Entity) EntityList(com.codename1.rad.models.EntityList) BaseEntity(com.codename1.rad.models.BaseEntity) ProfileListView(com.codename1.rad.ui.entityviews.ProfileListView) Component(com.codename1.ui.Component)

Example 64 with Entity

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

the class EntityListView method requiresUpdate.

/**
 * Checks to see if the model has changed since last update, and requires update.
 * Update is required only if rows are added or removed.
 * @return
 */
private boolean requiresUpdate() {
    List<Entity> viewSet = new ArrayList<Entity>();
    EntityList<?> modelSet = getEntity();
    int modelSize = modelSet.size();
    int index = 0;
    for (Component child : wrapper) {
        if (child instanceof EntityView) {
            EntityView rowView = (EntityView) child;
            if (index >= modelSize && modelSet.get(index) != rowView) {
                return true;
            }
            index++;
        }
    }
    return index != modelSize;
}
Also used : Entity(com.codename1.rad.models.Entity) AbstractEntityView(com.codename1.rad.ui.AbstractEntityView) EntityView(com.codename1.rad.ui.EntityView) ArrayList(java.util.ArrayList) Component(com.codename1.ui.Component)

Example 65 with Entity

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

the class EntityListView method update.

@Override
public void update() {
    if (firstUpdate) {
        firstUpdate = false;
    } else {
        return;
    }
    EntityList<?> entityList = getEntity();
    int index = 0;
    for (Entity e : entityList) {
        EntityView rowView = renderer.getListCellRendererComponent(this, e, index, selection.isSelected(index, 0), false);
        wrapper.add((Component) rowView);
        index++;
    }
}
Also used : Entity(com.codename1.rad.models.Entity) AbstractEntityView(com.codename1.rad.ui.AbstractEntityView) EntityView(com.codename1.rad.ui.EntityView)

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