Example usage for org.apache.wicket.extensions.markup.html.repeater.data.table DataTable getDataProvider

List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table DataTable getDataProvider

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.repeater.data.table DataTable getDataProvider.

Prototype

public final IDataProvider<T> getDataProvider() 

Source Link

Usage

From source file:gr.interamerican.wicket.markup.html.panel.crud.picker.TestCrudPickerPanel.java

License:Open Source License

/**
 * Tests pressing the new button and storing
 * a new bean./*from   w w w  .j a  v a2  s  .  co  m*/
 */
@Test
public void testNew() {
    tester.startPage(getTestPage(panel));

    assertEquals(7, definition.getList().size());

    tester.assertComponent(path("tableForm:radioGroup:listTable"), DataTable.class);
    DataTable<BeanWithOrderedFields> table = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup:listTable"));
    assertEquals(7, table.getDataProvider().size());

    tester.assertComponent(path("tableForm:radioGroup"), RadioGroup.class);
    RadioGroup<BeanWithOrderedFields> radioGroup = (RadioGroup<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup"));
    radioGroup.setModelObject(definition.getList().get(0));

    tester.assertComponent(path("tableForm:newButton"), AjaxButton.class);
    AjaxButton newButton = (AjaxButton) tester.getComponentFromLastRenderedPage(path("tableForm:newButton"));

    tester.executeAjaxEvent(newButton, "onclick");

    tester.assertComponent(path("beanPanel:beanForm"), Form.class);
    tester.assertComponent(path("beanPanel:beanForm:beanFormFieldsPanel"), Panel.class);
    tester.assertComponent(path("beanPanel:beanForm:executeButton"), CallbackAjaxButton.class);

    CallbackAjaxButton execButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("beanPanel:beanForm:executeButton"));

    userInput = new BeanWithOrderedFields("11", "22", 33, 44L, 5.5d);
    FormTester formTester = tester.newFormTester(path("beanPanel:beanForm"));
    formTester.setValue("beanFormFieldsPanel:first", String.valueOf(userInput.getFirst()));
    formTester.setValue("beanFormFieldsPanel:second", String.valueOf(userInput.getSecond()));
    formTester.setValue("beanFormFieldsPanel:third", String.valueOf(userInput.getThird()));
    formTester.setValue("beanFormFieldsPanel:fourth", String.valueOf(userInput.getFourth()));
    formTester.setValue("beanFormFieldsPanel:fifth", String.valueOf(userInput.getFifth()));
    formTester.submit();
    tester.executeAjaxEvent(execButton, "onclick");

    tester.assertComponent(path("tableForm:radioGroup:listTable"), DataTable.class);
    table = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup:listTable"));

    assertEquals(8, table.getDataProvider().size());

    tester.assertInvisible(path("beanPanel"));
}

From source file:gr.interamerican.wicket.markup.html.panel.crud.picker.TestCrudPickerPanel.java

License:Open Source License

/**
 * Tests pressing the update button and updating a bean.
 *///w w  w.j ava  2s .  com
@Test
public void testUpdate() {
    tester.startPage(getTestPage(panel));

    assertEquals(7, definition.getList().size());

    tester.assertComponent(path("tableForm:radioGroup:listTable"), DataTable.class);
    DataTable<BeanWithOrderedFields> table = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup:listTable"));
    assertEquals(7, table.getDataProvider().size());

    tester.assertComponent(path("tableForm:radioGroup"), RadioGroup.class);
    RadioGroup<BeanWithOrderedFields> radioGroup = (RadioGroup<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup"));
    radioGroup.setModelObject(definition.getList().get(0));

    tester.assertComponent(path("tableForm:editButton"), AjaxButton.class);
    AjaxButton editButton = (AjaxButton) tester.getComponentFromLastRenderedPage(path("tableForm:editButton"));

    Map<String, String[]> map = tester.getRequest().getParameterMap();
    map.put("testId:tableForm:radioGroup", new String[] { "radio0" });
    tester.executeAjaxEvent(editButton, "onclick");

    tester.assertVisible(path("beanPanel:beanForm:beanFormFieldsPanel"));
    Panel beanPanel = (Panel) tester
            .getComponentFromLastRenderedPage(path("beanPanel:beanForm:beanFormFieldsPanel"));
    assertEquals(definition.getList().get(0), beanPanel.getDefaultModelObject());

    /*
     * Will leave first two fields intact and modify the third
     */
    userInput = (BeanWithOrderedFields) beanPanel.getDefaultModelObject();
    FormTester formTester = tester.newFormTester(path("beanPanel:beanForm"));
    formTester.setValue("beanFormFieldsPanel:first", String.valueOf(userInput.getFirst()));
    formTester.setValue("beanFormFieldsPanel:second", String.valueOf(userInput.getSecond()));
    formTester.setValue("beanFormFieldsPanel:third", String.valueOf(editInt));
    formTester.setValue("beanFormFieldsPanel:fourth", String.valueOf(userInput.getFourth()));
    formTester.setValue("beanFormFieldsPanel:fifth", String.valueOf(userInput.getFifth()));
    formTester.submit();

    Integer changed = ((BeanWithOrderedFields) beanPanel.getDefaultModelObject()).getThird();
    assertEquals(changed, editInt);

    tester.assertComponent(path("beanPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    CallbackAjaxButton updateButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("beanPanel:beanForm:executeButton"));

    tester.executeAjaxEvent(updateButton, "onclick");

    tester.assertComponent(path("tableForm:radioGroup:listTable"), DataTable.class);
    table = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:radioGroup:listTable"));
    assertEquals(7, table.getDataProvider().size());

    tester.assertInvisible(path("beanPanel"));
}

From source file:gr.interamerican.wicket.markup.html.panel.listTable.TestListTablePanel.java

License:Open Source License

/**
 * Tests creation of {@link ListTablePanel}.
 *//*from  w w w .  j  a v  a  2s.c om*/
@Test
public void testCreation() {
    tester.startPage(getTestPage(new ListTablePanel<BeanWithOrderedFields>(createDef())));
    tester.assertComponent(path("tableForm:listTable"), DataTable.class);
    tester.assertVisible(path("tableForm:listTable"));
    DataTable<BeanWithOrderedFields> table = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("tableForm:listTable"));
    assertEquals(3, table.getColumns().size());
    assertEquals(7, table.getDataProvider().size());
}

From source file:gr.interamerican.wicket.markup.html.panel.searchFlow.TestSearchFlowPanel.java

License:Open Source License

/**
 * Tests submitting the criteria panel form.
 * /*  w ww  .  ja v a 2  s . co m*/
 * Results panel is shown as a {@link PickerPanel}.
 * 
 * Check that the panel shows the results and pick one.
 * 
 * Then go back to criteria.
 * 
 * Note that resultsHidesCriteria = true
 */
@Test
public void testShowResults_Pick() {
    panel = new SearchFlowPanel<BeanWithOrderedFields, BeanWithOrderedFields>(definition_Pick);
    tester.startPage(getTestPage(panel));

    tester.assertComponent(path("criteriaPanel"), SingleBeanPanel.class);
    tester.assertVisible(path("criteriaPanel"));
    SingleBeanPanel<BeanWithOrderedFields> SingleBeanPanel = (SingleBeanPanel<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel"));
    assertNotNull(SingleBeanPanel);

    tester.assertInvisible(path("resultsPanel"));

    tester.assertComponent(path("criteriaPanel:beanForm"), Form.class);
    tester.assertVisible(path("criteriaPanel:beanForm"));
    Form<BeanWithOrderedFields> form = (Form<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm"));
    assertNotNull(form);

    tester.assertComponent(path("criteriaPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("criteriaPanel:beanForm:executeButton"));
    CallbackAjaxButton executeButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm:executeButton"));
    assertNotNull(executeButton);

    FormTester formTester = tester.newFormTester(path("criteriaPanel:beanForm"));
    formTester.submit();
    tester.executeAjaxEvent(executeButton, "onclick");

    tester.assertNoErrorMessage();
    tester.assertNoInfoMessage();

    /* the new results panel is rendered */
    tester.assertComponent(path("resultsPanel"), PickerPanel.class);

    tester.assertComponent(path("resultsPanel:tableForm"), Form.class);
    tester.assertComponent(path("resultsPanel:tableForm:selectButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("resultsPanel:tableForm:selectButton"));
    tester.assertComponent(path("resultsPanel:tableForm:radioGroup"), RadioGroup.class);
    tester.assertComponent(path("resultsPanel:tableForm:radioGroup:listTable"), DataTable.class);

    RadioGroup<BeanWithOrderedFields> radioGroup = (RadioGroup<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:radioGroup"));

    DataTable<BeanWithOrderedFields> datatable = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:radioGroup:listTable"));
    assertEquals(list.size(), datatable.getDataProvider().size());

    CallbackAjaxButton pickButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:selectButton"));

    pickAction.setExecuted(false);
    /*
     * simulate picking the first radio button and submitting.
     */
    radioGroup.setModelObject(list.get(0));
    Map<String, String[]> map = tester.getRequest().getParameterMap();
    map.put("testId:tableForm:radioGroup", new String[] { "radio0" });
    tester.executeAjaxEvent(pickButton, "onclick");

    assertTrue(pickAction.isExecuted());
    assertEquals(list.get(0), definition_Pick.getBeanModel().getObject());

}

From source file:gr.interamerican.wicket.markup.html.panel.searchFlow.TestSearchFlowPanel.java

License:Open Source License

/**
 * Tests submitting the criteria panel form.
 * /*from  w w  w. ja va 2s  . c o m*/
 * Results panel is shown as a {@link MultipleSelectionsPanel}.
 * 
 * Check that the panel shows the results and pick two.
 * 
 * Then go back to criteria.
 * 
 * Note that resultsHidesCriteria = true
 */
@Test
public void testShowResults_MultiplePick() {
    panel = new SearchFlowPanel<BeanWithOrderedFields, BeanWithOrderedFields>(definition_MultiplePick);
    tester.startPage(getTestPage(panel));

    tester.assertComponent(path("criteriaPanel"), SingleBeanPanel.class);
    tester.assertVisible(path("criteriaPanel"));
    SingleBeanPanel<BeanWithOrderedFields> SingleBeanPanel = (SingleBeanPanel<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel"));
    assertNotNull(SingleBeanPanel);

    tester.assertInvisible(path("resultsPanel"));

    tester.assertComponent(path("criteriaPanel:beanForm"), Form.class);
    tester.assertVisible(path("criteriaPanel:beanForm"));
    Form<BeanWithOrderedFields> form = (Form<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm"));
    assertNotNull(form);

    tester.assertComponent(path("criteriaPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("criteriaPanel:beanForm:executeButton"));
    CallbackAjaxButton executeButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm:executeButton"));
    assertNotNull(executeButton);

    FormTester formTester = tester.newFormTester(path("criteriaPanel:beanForm"));
    formTester.submit();
    tester.executeAjaxEvent(executeButton, "onclick");

    tester.assertNoErrorMessage();
    tester.assertNoInfoMessage();

    /* the new results panel is rendered */
    tester.assertComponent(path("resultsPanel"), MultipleSelectionsPanel.class);

    tester.assertComponent(path("resultsPanel:tableForm"), Form.class);
    tester.assertComponent(path("resultsPanel:tableForm:checkGroup"), CheckGroup.class);
    tester.assertComponent(path("resultsPanel:tableForm:checkGroup:listTable"), DataTable.class);

    CheckGroup<BeanWithOrderedFields> checkGroup = (CheckGroup<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:checkGroup"));

    DataTable<BeanWithOrderedFields> datatable = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:checkGroup:listTable"));
    assertEquals(list.size(), datatable.getDataProvider().size());

    CallbackAjaxButton pickButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:selectButton"));

    pickAction.setExecuted(false);
    /*
     * simulate picking the first two radio buttons and submitting.
     */
    List<BeanWithOrderedFields> selections = new ArrayList<BeanWithOrderedFields>();
    selections.add(list.get(0));
    selections.add(list.get(1));
    checkGroup.setModelObject(selections);
    Map<String, String[]> map = tester.getRequest().getParameterMap();
    map.put("testId:tableForm:checkGroup", new String[] { "check0", "check1" });
    tester.executeAjaxEvent(pickButton, "onclick");

    assertEquals(selections, definition_MultiplePick.getSelectionsModel().getObject());

}

From source file:gr.interamerican.wicket.markup.html.panel.searchFlow.TestSearchFlowPanel.java

License:Open Source License

/**
 * Tests submitting the criteria panel form.
 * /*from  ww w . j  av  a  2  s  .c om*/
 * Results panel is shown as a {@link ListTablePanel}.
 * 
 * Check that the panel shows the results.
 * 
 * Check that both panels appear simultaneously.
 * 
 * Check that the back button of the results panel is not shown.
 * 
 * Note that resultsHidesCriteria = false
 */
@Test
public void testShowResults_List() {
    panel = new SearchFlowPanel<BeanWithOrderedFields, BeanWithOrderedFields>(definition_List);
    tester.startPage(getTestPage(panel));

    tester.assertComponent(path("criteriaPanel"), SingleBeanPanel.class);
    tester.assertVisible(path("criteriaPanel"));
    SingleBeanPanel<BeanWithOrderedFields> SingleBeanPanel = (SingleBeanPanel<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel"));
    assertNotNull(SingleBeanPanel);

    tester.assertInvisible(path("resultsPanel"));

    tester.assertComponent(path("criteriaPanel:beanForm"), Form.class);
    tester.assertVisible(path("criteriaPanel:beanForm"));
    Form<BeanWithOrderedFields> form = (Form<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm"));
    assertNotNull(form);

    tester.assertComponent(path("criteriaPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("criteriaPanel:beanForm:executeButton"));
    CallbackAjaxButton executeButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm:executeButton"));
    assertNotNull(executeButton);

    FormTester formTester = tester.newFormTester(path("criteriaPanel:beanForm"));
    formTester.submit();
    tester.executeAjaxEvent(executeButton, "onclick");

    tester.assertNoErrorMessage();
    tester.assertNoInfoMessage();

    /* the new results panel is rendered */
    tester.assertComponent(path("resultsPanel"), ListTablePanel.class);

    tester.assertVisible(path("resultsPanel"));
    tester.assertVisible(path("criteriaPanel"));

    tester.assertComponent(path("resultsPanel:tableForm"), Form.class);

    DataTable<BeanWithOrderedFields> datatable = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:listTable"));
    assertEquals(list.size(), datatable.getDataProvider().size());

    tester.assertInvisible(path("resultsPanel:tableForm:backButton"));

}

From source file:gr.interamerican.wicket.markup.html.panel.searchFlow.TestSearchFlowPanel.java

License:Open Source License

/**
 * Tests creation of the {@link SearchFlowPanel} with a
 * {@link CrudPickerPanel} as the results panel.
 * //from  w  w  w .j a v a2  s. c  o  m
 * Show the results.
 * 
 * Note that resultsHidesCriteria = true
 */
@Test
public void testCreation_ShowResults_CrudPick() {
    panel = new SearchFlowPanel<BeanWithOrderedFields, BeanWithOrderedFields>(definition_CrudPick);
    tester.startPage(getTestPage(panel));

    tester.assertComponent(path("criteriaPanel"), SingleBeanPanel.class);
    tester.assertVisible(path("criteriaPanel"));
    SingleBeanPanel<BeanWithOrderedFields> SingleBeanPanel = (SingleBeanPanel<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel"));
    assertNotNull(SingleBeanPanel);

    tester.assertInvisible(path("resultsPanel"));

    tester.assertComponent(path("criteriaPanel:beanForm"), Form.class);
    tester.assertVisible(path("criteriaPanel:beanForm"));
    Form<BeanWithOrderedFields> form = (Form<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm"));
    assertNotNull(form);

    tester.assertComponent(path("criteriaPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("criteriaPanel:beanForm:executeButton"));
    CallbackAjaxButton executeButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm:executeButton"));
    assertNotNull(executeButton);

    FormTester formTester = tester.newFormTester(path("criteriaPanel:beanForm"));
    formTester.submit();
    tester.executeAjaxEvent(executeButton, "onclick");

    tester.assertNoErrorMessage();
    tester.assertNoInfoMessage();

    /* the new results panel is rendered */
    tester.assertComponent(path("resultsPanel"), CrudPickerPanel.class);

    tester.assertVisible(path("resultsPanel"));
    tester.assertInvisible(path("criteriaPanel"));

    tester.assertComponent(path("resultsPanel:tableForm"), Form.class);

    DataTable<BeanWithOrderedFields> datatable = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:radioGroup:listTable"));
    assertEquals(list.size(), datatable.getDataProvider().size());

    tester.assertVisible(path("resultsPanel:tableForm:backButton"));

    tester.assertComponent(path("resultsPanel:tableForm:deleteButton"), CallbackAjaxButton.class);
    tester.assertComponent(path("resultsPanel:tableForm:editButton"), AjaxButton.class);
    tester.assertComponent(path("resultsPanel:tableForm:newButton"), AjaxButton.class);
    tester.assertComponent(path("resultsPanel:tableForm:selectButton"), CallbackAjaxButton.class);
}

From source file:gr.interamerican.wicket.markup.html.panel.searchFlow.TestSearchFlowPanel.java

License:Open Source License

/**
 * Tests creation of the {@link SearchFlowPanel} with a
 * {@link CrudPickerPanel} as the results panel.
 * /*  w w  w  . j ava  2 s . co  m*/
 * Show the results.
 * 
 * Press new.
 * 
 * Then save.
 * 
 * Press new.
 * 
 * Then go back.
 * 
 * Note that resultsHidesCriteria = true
 */
@Test
public void testCrud_CrudPick() {
    panel = new SearchFlowPanel<BeanWithOrderedFields, BeanWithOrderedFields>(definition_CrudPick);
    tester.startPage(getTestPage(panel));

    tester.assertComponent(path("criteriaPanel"), SingleBeanPanel.class);
    tester.assertVisible(path("criteriaPanel"));
    SingleBeanPanel<BeanWithOrderedFields> SingleBeanPanel = (SingleBeanPanel<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel"));
    assertNotNull(SingleBeanPanel);

    tester.assertInvisible(path("resultsPanel"));

    tester.assertComponent(path("criteriaPanel:beanForm"), Form.class);
    tester.assertVisible(path("criteriaPanel:beanForm"));
    Form<BeanWithOrderedFields> form = (Form<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm"));
    assertNotNull(form);

    tester.assertComponent(path("criteriaPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    tester.assertVisible(path("criteriaPanel:beanForm:executeButton"));
    CallbackAjaxButton executeButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("criteriaPanel:beanForm:executeButton"));
    assertNotNull(executeButton);

    FormTester formTester = tester.newFormTester(path("criteriaPanel:beanForm"));
    formTester.submit();
    tester.executeAjaxEvent(executeButton, "onclick");

    tester.assertNoErrorMessage();
    tester.assertNoInfoMessage();

    /* the new results panel is rendered */
    tester.assertComponent(path("resultsPanel"), CrudPickerPanel.class);

    tester.assertVisible(path("resultsPanel"));
    tester.assertInvisible(path("criteriaPanel"));

    tester.assertComponent(path("resultsPanel:tableForm"), Form.class);

    DataTable<BeanWithOrderedFields> datatable = (DataTable<BeanWithOrderedFields>) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:radioGroup:listTable"));
    assertEquals(list.size(), datatable.getDataProvider().size());

    tester.assertVisible(path("resultsPanel:tableForm:backButton"));

    /* press new and add a new bean */
    tester.assertInvisible(path("resultsPanel:beanPanel"));

    tester.assertComponent(path("resultsPanel:tableForm:newButton"), AjaxButton.class);
    AjaxButton newButton = (AjaxButton) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:tableForm:newButton"));

    formTester = tester.newFormTester(path("resultsPanel:tableForm"));
    formTester.submit();
    tester.executeAjaxEvent(newButton, "onclick");

    tester.assertComponent(path("resultsPanel:beanPanel:beanForm:executeButton"), CallbackAjaxButton.class);
    CallbackAjaxButton saveButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:beanPanel:beanForm:executeButton"));

    formTester = tester.newFormTester(path("resultsPanel:beanPanel:beanForm"));
    formTester.setValue("beanFormFieldsPanel:first", String.valueOf(userInput.getFirst()));
    formTester.setValue("beanFormFieldsPanel:second", String.valueOf(userInput.getSecond()));
    formTester.setValue("beanFormFieldsPanel:third", String.valueOf(userInput.getThird()));
    formTester.setValue("beanFormFieldsPanel:fourth", String.valueOf(userInput.getFourth()));
    formTester.setValue("beanFormFieldsPanel:fifth", String.valueOf(userInput.getFifth()));
    formTester.submit();

    assertEquals(list.size(), 7);

    tester.executeAjaxEvent(saveButton, "onclick");

    assertEquals(list.size(), 8);
    tester.assertInvisible(path("resultsPanel:beanPanel"));

    /* press new and then back */
    tester.assertInvisible(path("resultsPanel:beanPanel"));

    tester.assertComponent(path("resultsPanel:tableForm:newButton"), AjaxButton.class);
    newButton = (AjaxButton) tester.getComponentFromLastRenderedPage(path("resultsPanel:tableForm:newButton"));

    formTester = tester.newFormTester(path("resultsPanel:tableForm"));
    formTester.submit();
    tester.executeAjaxEvent(newButton, "onclick");

    tester.assertComponent(path("resultsPanel:beanPanel:beanForm:backButton"), CallbackAjaxButton.class);

    CallbackAjaxButton backButton = (CallbackAjaxButton) tester
            .getComponentFromLastRenderedPage(path("resultsPanel:beanPanel:beanForm:backButton"));

    tester.executeAjaxEvent(backButton, "onclick");

    tester.assertInvisible(path("resultsPanel:beanPanel"));
}

From source file:org.opensingular.form.wicket.mapper.masterdetail.MasterDetailBSDataTableBuilder.java

License:Apache License

@Override
protected BSDataTable<T, S> newDatatable(String id, List<? extends IColumn<T, S>> columns,
        ISortableDataProvider<T, S> dataProvider) {
    return new BSDataTable<T, S>(id, columns, dataProvider) {
        @Override/*from  w w  w  .ja  v a 2  s  . c o m*/
        protected AbstractToolbar newNoRecordsToolbar() {
            if (isShowNoRecordsToolbar()) {
                return new MasterDetailNoRecordsToolbar(this);
            } else {
                return null;
            }
        }

        @Override
        protected AbstractToolbar newPaginationToolbar() {
            return new BSPaginationToolbar(this) {
                @Override
                protected BSPaginationPanel newPagination(String id, DataTable<?, ?> table) {
                    return new BSPaginationPanel(id, table) {
                        @Override
                        protected NumberedPageLink newNumberedPageLink(ListItem<Long> item) {
                            NumberedPageLink link = super.newNumberedPageLink(item);
                            item.add($b.classAppender("has-error", $m.get(() -> (!SValidationFeedbackHandler
                                    .collectNestedErrors(new FeedbackFence(item)).isEmpty()))));

                            SValidationFeedbackHandler.bindTo(new FeedbackFence(item)).addListener(
                                    (handler, target, container, baseInstances, oldErrors, newErrors) -> {
                                        if (target != null)
                                            target.add(item);
                                    }).setInstanceModels($m.get(() -> {

                                        final IDataProvider<SInstance> dataProvider = (IDataProvider<SInstance>) table
                                                .getDataProvider();

                                        final long pageIndex = item.getModelObject();
                                        final long first = pageIndex * table.getItemsPerPage();
                                        final long count = Math.min(table.getItemsPerPage(),
                                                dataProvider.size() - first);

                                        final Iterator<? extends SInstance> it = dataProvider.iterator(first,
                                                count);
                                        final List<IModel<? extends SInstance>> list = Lists.newArrayList();
                                        while (it.hasNext())
                                            list.add(dataProvider.model(it.next()));
                                        return list;
                                    }));
                            return link;
                        }
                    };
                }
            };
        }
    };
}