List of usage examples for org.apache.wicket.markup.repeater IItemFactory newItem
Item<T> newItem(final int index, final IModel<T> model);
From source file:com.aplombee.AbstractItemsNavigationStrategy.java
License:Apache License
/** * @inheritDoc// w w w . j a va 2s.c om */ @Override public <T> Iterator<Item<T>> addItems(int startIndex, IItemFactory<T> factory, Iterator<IModel<T>> newModels) { int itemIndex = startIndex; List<Item<T>> components = new ArrayList<Item<T>>(); for (; newModels.hasNext(); itemIndex++) { IModel<T> newModel = newModels.next(); Item<T> item = factory.newItem(itemIndex, newModel); components.add(item); } return components.iterator(); }
From source file:com.aplombee.AbstractItemsNavigationStrategyTest.java
License:Apache License
public void assertAddItems(IQuickReuseStrategy strategy) { IModel model1 = Mockito.mock(IModel.class); IModel model2 = Mockito.mock(IModel.class); Iterator newModels = Mockito.mock(Iterator.class); Mockito.when(newModels.next()).thenReturn(model1).thenReturn(model2); Mockito.when(newModels.hasNext()).thenReturn(true).thenReturn(true).thenReturn(false); IItemFactory factory = Mockito.mock(IItemFactory.class); final int startIndex = 345; final int index2 = startIndex + 1; Item item1 = new Item("345", startIndex, model1); Mockito.when(factory.newItem(startIndex, model1)).thenReturn(item1); Item item2 = new Item("346", index2, model2); Mockito.when(factory.newItem(index2, model2)).thenReturn(item2); Iterator<Item> actual = strategy.addItems(startIndex, factory, newModels); Mockito.verify(factory, Mockito.times(1)).newItem(startIndex, model1); Mockito.verify(factory, Mockito.times(1)).newItem(index2, model2); Assert.assertEquals(actual.next(), item1); Assert.assertEquals(actual.next(), item2); Assert.assertFalse(actual.hasNext()); }
From source file:com.aplombee.DefaultQuickReuseStrategyTest.java
License:Apache License
/** * existing items empty/*from w ww. j a v a 2 s .com*/ */ @Test(groups = { "wicketTests" }) public void getItems_1() { IQuickReuseStrategy strategy = new DefaultQuickReuseStrategy(); List<Integer> list = new ArrayList<Integer>(); list.add(45); list.add(76); List<Item<Integer>> existingItems = new ArrayList<Item<Integer>>(); IItemFactory factory = Mockito.mock(IItemFactory.class); final int index = 0; final int index2 = 1; IModel<Integer> model1 = new Model<Integer>(list.get(0)); IModel<Integer> model2 = new Model<Integer>(list.get(1)); Item item1 = new Item("0", 0, model1); Mockito.when(factory.newItem(0, model1)).thenReturn(item1); Item item2 = new Item("1", index2, model2); Mockito.when(factory.newItem(index2, model2)).thenReturn(item2); List<IModel<Integer>> newModels = new ArrayList<IModel<Integer>>(); newModels.add(model1); newModels.add(model2); Iterator<Item<Integer>> actual = strategy.getItems(factory, newModels.iterator(), existingItems.iterator()); Assert.assertEquals(actual.next(), item1); Assert.assertEquals(actual.next(), item2); Mockito.verify(factory, Mockito.times(1)).newItem(index, model1); Mockito.verify(factory, Mockito.times(1)).newItem(index2, model2); }
From source file:com.aplombee.ItemsNavigationStrategyTest.java
License:Apache License
@Test(groups = { "wicketTests" }) public void getItems_1() { IQuickReuseStrategy strategy = new ItemsNavigationStrategy(); List<Integer> list = new ArrayList<Integer>(); list.add(45);/*from w ww. j ava2 s . co m*/ list.add(76); IItemFactory factory = Mockito.mock(IItemFactory.class); final int index = 0; final int index2 = 1; IModel<Integer> model1 = new Model<Integer>(list.get(0)); IModel<Integer> model2 = new Model<Integer>(list.get(1)); Item item1 = new Item("0", 0, model1); Mockito.when(factory.newItem(0, model1)).thenReturn(item1); Item item2 = new Item("1", index2, model2); Mockito.when(factory.newItem(index2, model2)).thenReturn(item2); List<IModel<Integer>> newModels = new ArrayList<IModel<Integer>>(); newModels.add(model1); newModels.add(model2); Iterator<Item<Integer>> actual = strategy.getItems(factory, newModels.iterator(), null); Assert.assertEquals(actual.next(), item1); Assert.assertEquals(actual.next(), item2); }
From source file:com.aplombee.QuickViewTest.java
License:Apache License
/** * page=2 ,itemsperrequest=2 ,reuse=ReUse.ITEMSNAVIGATION *///from ww w . j a v a 2s. co m @Test(groups = { "wicketTests" }) public void addItemsForPage_1() { int itemsPerRequest = 2; IDataProvider dataProvider = Mockito.mock(IDataProvider.class); Iterator data = mockIterator(); Mockito.when(dataProvider.iterator(4, itemsPerRequest)).thenReturn(data); Mockito.when(data.hasNext()).thenReturn(true).thenReturn(true).thenReturn(false); IModel<Integer> model1 = new Model<Integer>(11); IModel<Integer> model2 = new Model<Integer>(55); final Iterator<IModel<Integer>> newModels = Mockito.mock(Iterator.class); Mockito.when(newModels.next()).thenReturn(model1); Mockito.when(newModels.next()).thenReturn(model2); Mockito.when(newModels.hasNext()).thenReturn(true).thenReturn(true).thenReturn(false); Item<Integer> item1 = new Item("1", 1, model1); Item<Integer> item2 = new Item("2", 2, model2); List<Item<Integer>> list = new ArrayList<Item<Integer>>(); list.add(item1); list.add(item2); final Iterator newIterator = list.iterator(); final IQuickReuseStrategy reuseStrategy = Mockito.mock(IQuickReuseStrategy.class); final IItemFactory factory = Mockito.mock(IItemFactory.class); Mockito.when(factory.newItem(1, model1)).thenReturn(item1); Mockito.when(factory.newItem(2, model2)).thenReturn(item2); Mockito.when(reuseStrategy.addItems(4, factory, newModels)).thenReturn(list.iterator()); QuickView repeater = new QuickView("repeater", dataProvider, new ItemsNavigationStrategy(), itemsPerRequest) { public void populate(Item item) { } @Override public MarkupContainer add(Component... c) { return this; } @Override protected Iterator buildItems(long index, Iterator iterator) { return newIterator; } @Override protected Iterator newModels(long offset, long count) { return newModels; } @Override public IItemFactory factory() { return factory; } }; repeater.setReuseStrategy(reuseStrategy); QuickView spy = Mockito.spy(repeater); List<Item<TestObj>> items = spy.addItemsForPage(2); Mockito.verify(reuseStrategy, Mockito.times(1)).addItems(4, factory, newModels); Assert.assertEquals(items.size(), list.size()); Mockito.verify(spy, Mockito.times(1)).add(items.get(0)); Mockito.verify(spy, Mockito.times(1)).add(items.get(1)); }
From source file:com.aplombee.ReuseAllStrategy.java
License:Apache License
/** * reuseas all the existing items by returning iterator over existing items after copying them * * @param <T>/* ww w .ja va2s . c o m*/ * type of Item * * @param factory * implementation of IItemFactory * @param newModels * iterator over models for items * @param existingItems * iterator over child items * @return iterator over exisiting items */ @Override public <T> Iterator<Item<T>> getItems(IItemFactory<T> factory, Iterator<IModel<T>> newModels, Iterator<Item<T>> existingItems) { List<Item<T>> copy = new ArrayList<Item<T>>(); while (existingItems.hasNext()) { copy.add(existingItems.next()); } if (!copy.isEmpty()) { return copy.iterator(); } for (int index = 0; newModels.hasNext(); index++) { IModel<T> model = newModels.next(); Item<T> item = factory.newItem(index, model); copy.add(item); } return copy.iterator(); }
From source file:com.aplombee.ReuseAllStrategyTest.java
License:Apache License
/** * existing items empty//from ww w . ja v a 2 s.co m */ @Test(groups = { "wicketTests" }) public void getItems_1() { IQuickReuseStrategy strategy = new ReuseAllStrategy(); List<Integer> list = new ArrayList<Integer>(); list.add(45); list.add(76); List<Item<Integer>> existingItems = new ArrayList<Item<Integer>>(); IItemFactory factory = Mockito.mock(IItemFactory.class); final int index = 0; final int index2 = 1; IModel<Integer> model1 = new Model<Integer>(list.get(0)); IModel<Integer> model2 = new Model<Integer>(list.get(1)); Item item1 = new Item("0", 0, model1); Mockito.when(factory.newItem(0, model1)).thenReturn(item1); Item item2 = new Item("1", index2, model2); Mockito.when(factory.newItem(index2, model2)).thenReturn(item2); List<IModel<Integer>> newModels = new ArrayList<IModel<Integer>>(); newModels.add(model1); newModels.add(model2); Iterator<Item<Integer>> actual = strategy.getItems(factory, newModels.iterator(), existingItems.iterator()); Assert.assertEquals(actual.next(), item1); Assert.assertEquals(actual.next(), item2); Mockito.verify(factory, Mockito.times(1)).newItem(index, model1); Mockito.verify(factory, Mockito.times(1)).newItem(index2, model2); }
From source file:org.artifactory.common.wicket.component.table.groupable.GroupedItemsStrategy.java
License:Open Source License
@Override public <T> Iterator<Item<T>> getItems(final IItemFactory<T> factory, final Iterator<IModel<T>> newModels, Iterator<Item<T>> existingItems) { return new Iterator<Item<T>>() { private int index = 0; private Object lastGroupValue; private Item<T> lastGroupItem; private IModel<T> lastGroupModel; @Override//ww w . ja va 2s . c om public void remove() { throw new UnsupportedOperationException(); } @Override public boolean hasNext() { return lastGroupModel != null || newModels.hasNext(); } @Override @SuppressWarnings({ "unchecked" }) public Item<T> next() { // returned group item in last iteration, return saved model item if (lastGroupModel != null) { Item<T> item = newRowItem(lastGroupModel); lastGroupModel = null; return item; } IModel<T> model = newModels.next(); GroupableDataProvider provider = table.getGroupableDataProvider(); SortParam groupParam = provider.getGroupParam(); if (groupParam != null && model != null) { String property = groupParam.getProperty(); IChoiceRenderer renderer = provider.getGroupRenderer(property); T modelObject = model.getObject(); Object value = renderer.getIdValue(modelObject, index); if (!value.equals(lastGroupValue)) { lastGroupValue = value; lastGroupModel = model; GroupableTable modificationTable = (GroupableTable) SerializationUtils.clone(table); lastGroupItem = modificationTable.newGroupRowItem("group" + index, index, model); Item cellItem = modificationTable.newGroupCellItem("cells", 0, model); lastGroupItem.add(cellItem); modificationTable.populateGroupItem(cellItem, "cell", property, model); return lastGroupItem; } } return newRowItem(model); } @SuppressWarnings({ "unchecked" }) private Item<T> newRowItem(IModel<T> model) { Item<T> item = factory.newItem(index, model); if (lastGroupItem != null && !table.isGroupExpanded(lastGroupItem) && table.getGroupableDataProvider().getGroupParam() != null) { item.add(new CssClass("row-collapsed")); } index++; return item; } }; }
From source file:org.opensingular.form.wicket.repeater.PathInstanceItemReuseStrategy.java
License:Apache License
@Override public <T> Iterator<Item<T>> getItems(IItemFactory<T> factory, Iterator<IModel<T>> newModels, Iterator<Item<T>> existingItems) { final Map<String, Item<T>> pathAndItem = buildExisistingItensPathAndItemMap(existingItems); return new Iterator<Item<T>>() { private int index = 0; @Override//from www . j a va2s . c o m public boolean hasNext() { return newModels.hasNext(); } @Override public Item<T> next() { index += 1; final IModel<T> next = newModels.next(); final Optional<String> path = getPath(next); if (path.isPresent() && pathAndItem.containsKey(path.get())) { return pathAndItem.get(path.get()); } else { return factory.newItem(index, next); } } }; }