Package org.mcarthur.sandy.gwt.event.list.client

Examples of org.mcarthur.sandy.gwt.event.list.client.EventList


    }

    public void testRemove() {
        super.testRemove();

        final EventList el = EventLists.eventList();
        prefillWithIntegers(el, 6);

        final FilteredEventList fel = createBackedFilteredEventList(el);

        fel.setFilter(EVEN_FILTER);

        final List even = new ArrayList(fel);

        ListEventListener flel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(flel);
        assertFalse(EVEN_FILTER.accept(el.get(1)));
        assertEquals(3, fel.size());
        Object removed = el.remove(1);
        assertEquals(3, fel.size());
        flel.listChanged(null);
        fel.removeListEventListener(flel);

        el.add(1, removed);

        flel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createRemoved(fel, 1), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(flel);
        assertTrue(EVEN_FILTER.accept(el.get(2)));
        assertEquals(3, fel.size());
        removed = el.remove(2);
        assertEquals(2, fel.size());
        flel.listChanged(null);
        fel.removeListEventListener(flel);
        assertTrue(even.containsAll(fel));

        el.add(2, removed);

        ListEventListener lel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createRemoved(el, 2), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        flel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createRemoved(fel, 1), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        el.addListEventListener(lel);
        fel.addListEventListener(flel);
        assertTrue(EVEN_FILTER.accept(el.get(2)));
        assertEquals(3, fel.size());
        fel.remove(1);
        assertEquals(2, fel.size());
        lel.listChanged(null);
        flel.listChanged(null);
View Full Code Here


            // expected
        }
    }

    public void testSetViaDeeperList() {
        final EventList el = EventLists.eventList();
        prefillWithIntegers(el, 6);

        final FilteredEventList fel = createBackedFilteredEventList(el);

        fel.setFilter(EVEN_FILTER);

        ListEventListener lel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(lel);
        assertFalse(EVEN_FILTER.accept(Integer.valueOf(-1)));
        el.set(1, Integer.valueOf(-1));
        lel.listChanged(null);
        assertEquals(3, fel.size());
        fel.removeListEventListener(lel);

        lel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createChanged(fel, 1), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(lel);
        assertTrue(EVEN_FILTER.accept(Integer.valueOf(-2)));
        el.set(2, Integer.valueOf(-2));
        lel.listChanged(null);
        assertEquals(3, fel.size());
        fel.removeListEventListener(lel);

        lel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createAdded(fel, 2), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(lel);
        assertTrue(EVEN_FILTER.accept(Integer.valueOf(30)));
        el.set(3, Integer.valueOf(30));
        lel.listChanged(null);
        assertEquals(4, fel.size());
        fel.removeListEventListener(lel);

        lel = new ListEventListener() {
            private int count = 0;
            public void listChanged(final ListEvent listEvent) {
                switch (count++) {
                    case 0:
                        assertEquals(ListEvent.createRemoved(fel, 2), listEvent);
                        break;
                    case 1:
                        assertNull("listEvent: " + listEvent, listEvent);
                        break;
                    default:
                        fail("Unexpected: " + listEvent);
                }
            }
        };
        fel.addListEventListener(lel);
        assertFalse(EVEN_FILTER.accept(Integer.valueOf(3)));
        el.set(3, Integer.valueOf(3));
        lel.listChanged(null);
        assertEquals(3, fel.size());
        fel.removeListEventListener(lel);
    }
View Full Code Here

    private int pCount = 0;

    private DialogBox db = new DialogBox(true);

    public void onModuleLoad() {
        EventList el = true ? new ObservingEventList() : EventLists.eventList(); this.el = el;
        sel = EventLists.sortedEventList(el); el = sel;
        fel = EventLists.filteredEventList(el); el = fel;
        rel = EventLists.rangedEventList(el, 4); el = rel;
        //rel = EventLists.steadyRangedEventList(el, 4); el = rel;
        ot = new ObjectListTable(new OLTR(), el);
        ot.setWidth("100%");
        RootPanel.get("log").add(vp);

        db.setText("ObjectListTable in a DialogBox");
        db.setPopupPosition(100, 100);

        final List objects = ot.getObjects();

        objects.add(new Person("Sandy", 28));
        objects.add(0, new Person("Keebz", 25));
        objects.add(new Person("Bill", 33));
        objects.add(new Person("Ted", 55));

        if (!false) {
            final List l = new ArrayList();
            l.add(objects.get(0));
            l.add(objects.get(1));
            l.add(objects.get(3));
            objects.retainAll(l);
        } else {
            objects.remove(1);
        }

        RootPanel.get("tableDiv").add(ot);

        final FlowPanel fp = new FlowPanel();
        final Button remove2 = new Button("Remove 2");
        remove2.setTitle("Removes the first and last Person from the list.");
        remove2.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                if (objects.size() > 0) {
                    final List two = new ArrayList();
                    if (objects.size() > 1) two.add(objects.get(objects.size() - 1));
                    two.add(objects.get(0));
                    objects.removeAll(two);
                }
            }
        });
        fp.add(remove2);

        final Button addPerson = new Button("Add Person");
        addPerson.setTitle("Add a Person instance to the List.");
        addPerson.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                objects.add(new Person("Person " + (pCount++), (int)(Math.random() * 100)));
            }
        });
        fp.add(addPerson);

        if (sel == null) {
            final Button transpose = new Button("Transpose");
            transpose.setTitle("Switch two Person instances in the List");
            transpose.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    final int a = (int)(Math.random() * objects.size());
                    int b;
                    do {
                        b = (int)(Math.random() * objects.size());
                    } while (a == b);
                    final Object oa = objects.get(a);
                    final Object ob = objects.get(b);

                    objects.set(b, oa);
                    objects.set(a, ob);
                }
            });
            fp.add(transpose);
        }

        final int instances = 500;
        final Button oneK = new Button("" + instances);
        oneK.setTitle("Add " + instances + " Person instances");
        oneK.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                final List l = new ArrayList();
                for (int i=0; i < instances; i++) {
                    l.add(new Person("Person " + (pCount++), (int)(Math.random() * 100)));
                }
                final long start = System.currentTimeMillis();
                DeferredCommand.addCommand(new Command() {
                    public void execute() {
                        final long end = System.currentTimeMillis();
                        vp.add(new Label("addAll took: " + (end - start)));
                        Window.setTitle("addAll took: " + (end - start));
                    }
                });
                objects.addAll(l);
            }
        });
        fp.add(oneK);

        final Button clear = new Button("Clear");
        clear.setTitle("Calls clear() on the backing EventList.");
        clear.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                TestObjectListTable.this.el.clear();
            }
        });
        fp.add(clear);

        final Button attach = new Button("Detach");
        attach.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                final Button attach = (Button)sender;
                final long start = System.currentTimeMillis();
                DeferredCommand.addCommand(new Command() {
                    public void execute() {
                        final long end = System.currentTimeMillis();
                        vp.add(new Label("Attach/Detach took: " + (end - start)));
                        Window.setTitle("Attach/Detach took: " + (end - start));
                    }
                });
                if (ot.isAttached()) {
                    // detach
                    RootPanel.get("tableDiv").remove(ot);
                    attach.setText("Attach");
                } else {
                    // attach
                    RootPanel.get("tableDiv").add(ot);
                    attach.setText("Detach");
                }
            }
        });
        fp.add(attach);

        final Button dbb = new Button("DialogBox");
        dbb.addClickListener(new ClickListener() {
            public void onClick(final Widget sender) {
                Widget w = db.getWidget();
                if (w instanceof HTMLTable) {
                    w = ((HTMLTable)w).getWidget(1,0);
                }
                if (w == null) {
                    db.setWidget(new ObjectListTable(new OLTR(), ot.getObjects()));
                }

                db.show();
            }
        });
        fp.add(dbb);

        if (fel != null) {
            final TextBox lower = new TextBox();
            lower.setWidth("3em");
            final TextBox upper = new TextBox();
            upper.setWidth("3em");
            final Button filterButton = new Button("Filter Ages");
            filterButton.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    final String lowerText = lower.getText().trim();
                    final int l;
                    try {
                        l = Integer.parseInt(lowerText.length() > 0 ? lowerText : "0");
                    } catch (NumberFormatException nfe) {
                        Window.alert("Lower age bound must be empty or a number.");
                        return;
                    }
                    final String upperText = upper.getText().trim();
                    final int u;
                    try {
                        u = Integer.parseInt(upperText.length() > 0 ? upperText : "999999");
                    } catch (NumberFormatException nfe) {
                        Window.alert("Upper age bound must be empty or a number.");
                        return;
                    }
                    fel.setFilter(new FilteredEventList.Filter() {
                        public boolean accept(final Object element) {
                            final Person person = (Person)element;
                            return l < person.getAge() && person.getAge() < u;
                        }
                    });
                }
            });
            lower.addKeyboardListener(new KeyboardListenerAdapter(){
                public void onKeyUp(final Widget sender, final char keyCode, final int modifiers) {
                    super.onKeyUp(sender, keyCode, modifiers);
                    if (KeyboardListener.KEY_ENTER == keyCode) {
                        filterButton.click();
                    }
                }
            });
            upper.addKeyboardListener(new KeyboardListenerAdapter(){
                public void onKeyUp(final Widget sender, final char keyCode, final int modifiers) {
                    super.onKeyUp(sender, keyCode, modifiers);
                    if (KeyboardListener.KEY_ENTER == keyCode) {
                        filterButton.click();
                    }
                }
            });
            final HorizontalPanel hp = new HorizontalPanel();
            hp.add(new Label("From:"));
            hp.add(lower);
            hp.add(new Label("to:"));
            hp.add(upper);
            hp.add(filterButton);
            fp.add(hp);
        }

        if (rel != null) {
            final TextBox maxSize = new TextBox();
            maxSize.setWidth("3em");
            maxSize.setText(Integer.toString(rel.getMaxSize()));
            rel.addListEventListener(new ListEventListener() {
                public void listChanged(final ListEvent listEvent) {
                    maxSize.setText(Integer.toString(rel.getMaxSize()));
                }
            });
            maxSize.setTitle("Enter the size of each page");
            final Button setMaxSize = new Button("Set maxSize");
            setMaxSize.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    try {
                        rel.setMaxSize(Integer.parseInt(maxSize.getText()));
                    } catch (NumberFormatException nfe) {
                        Window.alert("maxSize must be a integer");
                    }
                }
            });
            maxSize.addKeyboardListener(new KeyboardListenerAdapter() {
                public void onKeyUp(final Widget sender, final char keyCode, final int modifiers) {
                    super.onKeyUp(sender, keyCode, modifiers);
                    if (KeyboardListener.KEY_ENTER == keyCode) {
                        setMaxSize.click();
                    }
                }
            });

            final TextBox start = new TextBox();
            start.setWidth("3em");
            start.setText(Integer.toString(rel.getStart()));
            rel.addListEventListener(new ListEventListener() {
                public void listChanged(final ListEvent listEvent) {
                    start.setText(Integer.toString(rel.getStart()));
                }
            });
            start.setTitle("Enter the offset for the page.");
            final Button setStart = new Button("Set start offset");
            setStart.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    try {
                        rel.setStart(Integer.parseInt(start.getText()));
                    } catch (NumberFormatException nfe) {
                        Window.alert("start offset must be a integer");
                    }
                }
            });
            start.addKeyboardListener(new KeyboardListenerAdapter() {
                public void onKeyUp(final Widget sender, final char keyCode, final int modifiers) {
                    super.onKeyUp(sender, keyCode, modifiers);
                    if (KeyboardListener.KEY_ENTER == keyCode) {
                        setStart.click();
                    }
                }
            });

            final Button nextPage = new Button("Next Page");
            nextPage.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    final int m = Integer.parseInt(maxSize.getText());
                    final int s = Integer.parseInt(start.getText()) + m;
                    start.setText("" + s);
                    setStart.click();
                }
            });

            final Button r1 = new Button("Deep Remove");
            r1.setTitle("Removes first element of deepest EventList");
            r1.addClickListener(new ClickListener() {
                public void onClick(final Widget sender) {
                    final List el = TestObjectListTable.this.el;
                    if (el.size() > 0) {
                        el.remove(0);
                    }
                }
            });

            final HorizontalPanel hp = new HorizontalPanel();
View Full Code Here

TOP

Related Classes of org.mcarthur.sandy.gwt.event.list.client.EventList

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.