Example usage for org.apache.wicket.markup.repeater ReuseIfModelsEqualStrategy ReuseIfModelsEqualStrategy

List of usage examples for org.apache.wicket.markup.repeater ReuseIfModelsEqualStrategy ReuseIfModelsEqualStrategy

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater ReuseIfModelsEqualStrategy ReuseIfModelsEqualStrategy.

Prototype

ReuseIfModelsEqualStrategy

Source Link

Usage

From source file:com.doculibre.constellio.wicket.panels.admin.crud.DataPanel.java

License:Open Source License

public DataPanel(String id, int rowsPerPage) {
    super(id);//from  w w  w .  ja  va 2s .  c  o  m
    List<IColumn> columns = getColumns();

    SortableListModel<T> sortableListModel = getSortableListModel();

    SortableDataProvider dataProvider = new SortableListDataProvider(sortableListModel);
    dataTable = new DataTable("dataTable", columns.toArray(new IColumn[0]), dataProvider, rowsPerPage);
    add(dataTable);
    dataTable.setOutputMarkupId(true);
    dataTable.setVersioned(false);
    dataTable.addTopToolbar(new AjaxFallbackHeadersToolbar(dataTable, dataProvider) {
        @Override
        protected WebMarkupContainer newSortableHeader(String borderId, String property,
                ISortStateLocator locator) {
            WebMarkupContainer sortableHeader = super.newSortableHeader(borderId, property, locator);
            sortableHeader.add(new SimpleAttributeModifier("scope", "col"));
            return sortableHeader;
        }
    });
    dataTable.addBottomToolbar(new AjaxNavigationToolbar(dataTable) {
        @Override
        protected PagingNavigator newPagingNavigator(String navigatorId, DataTable table) {
            return new AutoHidePagingNavigator(navigatorId, table);
        }
    });
    dataTable.addBottomToolbar(new NoRecordsToolbar(dataTable));
    dataTable.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}

From source file:com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel.java

License:Apache License

private void initLayout() {
    WebMarkupContainer treeHeader = new WebMarkupContainer(ID_TREE_HEADER);
    treeHeader.setOutputMarkupId(true);/*from  w  w w  .  j a v  a 2 s  . co  m*/
    add(treeHeader);

    String title = StringUtils.isEmpty(treeTitleKey) ? "TreeTablePanel.hierarchy" : treeTitleKey;
    Label treeTitle = new Label(ID_TREE_TITLE, createStringResource(title));
    treeHeader.add(treeTitle);

    InlineMenu treeMenu = new InlineMenu(ID_TREE_MENU, new Model<>((Serializable) createTreeMenuInternal()));
    treeHeader.add(treeMenu);

    ISortableTreeProvider provider = new OrgTreeProvider(this, getModel()) {
        @Override
        protected List<InlineMenuItem> createInlineMenuItems() {
            return createTreeChildrenMenu();
        }
    };
    List<IColumn<SelectableBean<OrgType>, String>> columns = new ArrayList<>();

    if (selectable) {
        columns.add(new CheckBoxHeaderColumn<SelectableBean<OrgType>>());
    }

    columns.add(
            new TreeColumn<SelectableBean<OrgType>, String>(createStringResource("TreeTablePanel.hierarchy")));
    columns.add(new InlineMenuHeaderColumn(createTreeChildrenMenu()));

    WebMarkupContainer treeContainer = new WebMarkupContainer(ID_TREE_CONTAINER) {

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead(response);

            // method computes height based on document.innerHeight() -
            // screen height;
            Component form = OrgTreePanel.this.getParent().get("memberPanel");
            if (form != null) {
                response.render(OnDomReadyHeaderItem
                        .forScript("updateHeight('" + getMarkupId() + "', ['#" + form.getMarkupId() + "'], ['#"
                                + OrgTreePanel.this.get(ID_TREE_HEADER).getMarkupId() + "'])"));
            }
        }
    };
    add(treeContainer);

    TableTree<SelectableBean<OrgType>, String> tree = new TableTree<SelectableBean<OrgType>, String>(ID_TREE,
            columns, provider, Integer.MAX_VALUE, new TreeStateModel(this, provider)) {

        @Override
        protected Component newContentComponent(String id, IModel<SelectableBean<OrgType>> model) {
            return new SelectableFolderContent(id, this, model, selected) {

                @Override
                protected void onClick(AjaxRequestTarget target) {
                    super.onClick(target);

                    MidPointAuthWebSession session = OrgTreePanel.this.getSession();
                    SessionStorage storage = session.getSessionStorage();
                    storage.getUsers().setSelectedItem(selected.getObject());

                    selectTreeItemPerformed(selected.getObject(), target);
                }
            };
        }

        @Override
        protected Item<SelectableBean<OrgType>> newRowItem(String id, int index,
                final IModel<SelectableBean<OrgType>> model) {
            Item<SelectableBean<OrgType>> item = super.newRowItem(id, index, model);
            item.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    SelectableBean<OrgType> itemObject = model.getObject();
                    if (itemObject != null && itemObject.equals(selected.getObject())) {
                        return "success";
                    }

                    return null;
                }
            }));
            return item;
        }

        @Override
        public void collapse(SelectableBean<OrgType> collapsedItem) {
            super.collapse(collapsedItem);
            MidPointAuthWebSession session = OrgTreePanel.this.getSession();
            SessionStorage storage = session.getSessionStorage();
            Set<SelectableBean<OrgType>> items = storage.getUsers().getExpandedItems();
            if (items != null && items.contains(collapsedItem)) {
                items.remove(collapsedItem);
            }
            storage.getUsers().setExpandedItems((TreeStateSet) items);
            storage.getUsers().setCollapsedItem(collapsedItem);
        }

        @Override
        protected void onModelChanged() {
            super.onModelChanged();

            Set<SelectableBean<OrgType>> items = getModelObject();

            MidPointAuthWebSession session = OrgTreePanel.this.getSession();
            SessionStorage storage = session.getSessionStorage();
            storage.getUsers().setExpandedItems((TreeStateSet<SelectableBean<OrgType>>) items);
        }
    };
    tree.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
    tree.getTable().add(AttributeModifier.replace("class", "table table-striped table-condensed"));
    tree.add(new WindowsTheme());
    // tree.add(AttributeModifier.replace("class", "tree-midpoint"));
    treeContainer.add(tree);
}

From source file:de.widone.web.panel.tasklist.TaskListPanel.java

License:Apache License

private Component createRefreshingView(final IModel<TaskList> taskList) {
    return new RefreshingView<Task>(TASK_LIST, new PropertyModel<List<Task>>(taskList, "tasks")) {
        @Override/*w w  w  .j  av a2 s .  c o m*/
        protected Iterator<IModel<Task>> getItemModels() {
            return new ModelIteratorAdapter<Task>(
                    ((IModel<List<Task>>) getDefaultModel()).getObject().iterator()) {
                @Override
                protected IModel<Task> model(Task object) {
                    return Model.of(object);
                }
            };
        }

        @Override
        protected void populateItem(final Item<Task> item) {
            TaskListPanel.this.populateItem(item, taskList);
        }
    }.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}

From source file:gr.abiss.calipso.wicket.SavedSearchList.java

License:Open Source License

public SavedSearchList(String id, IBreadCrumbModel breadCrumbModel, final User user) {
    super(id, breadCrumbModel);

    //needed for ajax
    setOutputMarkupId(true);/*w  w  w.j  a  v  a2 s  . co m*/

    LoadableDetachableModel savedSearchListModel = new LoadableDetachableModel() {

        private static final long serialVersionUID = 1L;

        protected Object load() {
            savedSearchList = getCalipso().findSavedSearches(user, getCurrentSpace());
            return savedSearchList;
        }
    };

    final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt");

    listContainer = new WebMarkupContainer("listContainer");
    listContainer.setOutputMarkupId(true);
    add(listContainer);

    savedSearchDataList = new SavedSearchDataList("nameList", savedSearchListModel);
    savedSearchDataList.setOutputMarkupId(true);
    savedSearchDataList.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
    listContainer.add(savedSearchDataList);
}

From source file:org.apache.openmeetings.web.common.tree.FileItemTree.java

License:Apache License

public FileItemTree(String id, FileTreePanel treePanel, ITreeProvider<FileItem> tp) {
    super(id, tp);
    this.treePanel = treePanel;
    setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}

From source file:org.dcm4chee.web.war.tc.TCResultPanel.java

License:LGPL

@SuppressWarnings("serial")
public TCResultPanel(final String id, final TCListModel model, final IModel<Boolean> trainingModeModel) {
    super(id, model != null ? model : new TCListModel());

    setOutputMarkupId(true);//www  . ja va2  s. c om

    stPermHelper = StudyPermissionHelper.get();

    initWebviewerLinkProvider();

    add(msgWin);
    final ModalWindow modalWindow = new ModalWindow("modal-window");
    add(modalWindow);

    final ModalWindow forumWindow = new ModalWindow("forum-window");
    add(forumWindow);

    final TCStudyListPage studyPage = new TCStudyListPage();
    final ModalWindow studyWindow = new ModalWindow("study-window");
    studyWindow.setPageCreator(new ModalWindow.PageCreator() {
        private static final long serialVersionUID = 1L;

        public Page createPage() {
            return studyPage;
        }
    });

    add(studyWindow);

    tclistProvider = new SortableTCListProvider((TCListModel) getDefaultModel());

    final TCAttributeVisibilityStrategy attrVisibilityStrategy = new TCAttributeVisibilityStrategy(
            trainingModeModel);

    final DataView<TCModel> dataView = new DataView<TCModel>("row", tclistProvider) {

        private final StudyListLocal dao = (StudyListLocal) JNDIUtils.lookup(StudyListLocal.JNDI_NAME);

        private final Map<String, List<String>> studyActions = new HashMap<String, List<String>>();

        @Override
        protected void populateItem(final Item<TCModel> item) {
            final TCModel tc = item.getModelObject();

            final StringBuilder jsStopEventPropagationInline = new StringBuilder(
                    "var event=arguments[0] || window.event; if (event.stopPropagation) {event.stopPropagation();} else {event.cancelBubble=True;};");

            item.setOutputMarkupId(true);
            item.add(new TCMultiLineLabel("title", new AbstractReadOnlyModel<String>() {
                public String getObject() {
                    if (!attrVisibilityStrategy.isAttributeVisible(TCAttribute.Title)) {
                        return TCUtilities.getLocalizedString("tc.case.text") + " " + tc.getId();
                    }
                    return tc.getTitle();
                }
            }, new AutoClampSettings(40)));
            item.add(new TCMultiLineLabel("abstract", new AbstractReadOnlyModel<String>() {
                public String getObject() {
                    if (!attrVisibilityStrategy.isAttributeVisible(TCAttribute.Abstract)) {
                        return TCUtilities.getLocalizedString("tc.obfuscation.text");
                    }
                    return tc.getAbstract();
                }
            }, new AutoClampSettings(40)));
            item.add(new TCMultiLineLabel("author", new AbstractReadOnlyModel<String>() {
                public String getObject() {
                    if (!attrVisibilityStrategy.isAttributeVisible(TCAttribute.AuthorName)) {
                        return TCUtilities.getLocalizedString("tc.obfuscation.text");
                    }
                    return tc.getAuthor();
                }
            }, new AutoClampSettings(40)));
            item.add(new Label("date", new Model<Date>(tc.getCreationDate())) {

                private static final long serialVersionUID = 1L;

                @Override
                public IConverter getConverter(Class<?> type) {
                    return new DateConverter() {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public DateFormat getDateFormat(Locale locale) {
                            if (locale == null) {
                                locale = Locale.getDefault();
                            }

                            return DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
                        }
                    };
                }
            });

            final String stuid = tc.getStudyInstanceUID();
            if (dao != null && !studyActions.containsKey(stuid)) {
                studyActions.put(stuid, dao.findStudyPermissionActions(stuid, stPermHelper.getDicomRoles()));
            }

            item.add(Webviewer.getLink(tc, webviewerLinkProviders, stPermHelper,
                    new TooltipBehaviour("tc.result.table.", "webviewer"), modalWindow,
                    new WebviewerLinkClickedCallback() {
                        public void linkClicked(AjaxRequestTarget target) {
                            TCAuditLog.logTFImagesViewed(tc);
                        }
                    }).add(new SecurityBehavior(TCPanel.getModuleName() + ":webviewerInstanceLink")));

            final Component viewLink = new IndicatingAjaxLink<String>("tc-view") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    selectTC(item, tc, target);
                    openTC(tc, false, target);
                }

                protected void onComponentTag(ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("ondblclick", jsStopEventPropagationInline);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    try {
                        return TCPanel.getMaskingBehaviour().getAjaxCallDecorator();
                    } catch (Exception e) {
                        log.error("Failed to get IAjaxCallDecorator: ", e);
                    }
                    return null;
                }
            }.add(new Image("tcViewImg", ImageManager.IMAGE_COMMON_DICOM_DETAILS)
                    .add(new ImageSizeBehaviour("vertical-align: middle;")))
                    .add(new TooltipBehaviour("tc.result.table.", "view")).setOutputMarkupId(true);

            final Component editLink = new IndicatingAjaxLink<String>("tc-edit") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    selectTC(item, tc, target);
                    openTC(tc, true, target);
                }

                protected void onComponentTag(ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("ondblclick", jsStopEventPropagationInline);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    try {
                        return TCPanel.getMaskingBehaviour().getAjaxCallDecorator();
                    } catch (Exception e) {
                        log.error("Failed to get IAjaxCallDecorator: ", e);
                    }
                    return null;
                }
            }.add(new Image("tcEditImg", ImageManager.IMAGE_COMMON_DICOM_EDIT)
                    .add(new ImageSizeBehaviour("vertical-align: middle;")))
                    .add(new TooltipBehaviour("tc.result.table.", "edit"))
                    .add(new SecurityBehavior(TCPanel.getModuleName() + ":editTC")).setOutputMarkupId(true);

            final Component studyLink = new IndicatingAjaxLink<String>("tc-study") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    selectTC(item, tc, target);
                    try {
                        TCObject tcObject = TCObject.create(tc);
                        List<TCReferencedStudy> refStudies = tcObject.getReferencedStudies();
                        if (refStudies != null && !refStudies.isEmpty()) {
                            if (refStudies.size() == 1) {
                                studyPage.setStudyInstanceUID(refStudies.get(0).getStudyUID());
                            } else {
                                studyPage.setPatientIdAndIssuer(tc.getPatientId(), tc.getIssuerOfPatientId());
                            }
                        }
                        if (studyPage.getStudyInstanceUID() != null || studyPage.getPatientId() != null) {
                            studyPage.getStudyViewPort().clear();
                            studyWindow
                                    .setTitle(new StringResourceModel("tc.result.studywindow.title", this, null,
                                            new Object[] { maskNull(cutAtISOControl(tc.getTitle(), 40), "?"),
                                                    maskNull(cutAtISOControl(tc.getAbstract(), 25), "?"),
                                                    maskNull(cutAtISOControl(tc.getAuthor(), 20), "?"),
                                                    maskNull(tc.getCreationDate(), tc.getCreatedTime()) }));
                            studyWindow.setInitialWidth(1200);
                            studyWindow.setInitialHeight(600);
                            studyWindow.setMinimalWidth(800);
                            studyWindow.setMinimalHeight(400);
                            if (studyWindow.isShown()) {
                                log.warn("###### StudyView is already shown ???!!!");
                                try {
                                    Field showField = ModalWindow.class.getDeclaredField("shown");
                                    showField.setAccessible(true);
                                    showField.set(studyWindow, false);
                                } catch (Exception e) {
                                    log.error("Failed to reset shown Field from ModalWindow!");
                                }
                                log.info("###### studyWindow.isShown():" + studyWindow.isShown());
                            }
                            studyWindow.show(target);
                        } else {
                            log.warn("Showing TC referenced studies discarded: No referened study found!");
                            msgWin.setInfoMessage(getString("tc.result.studywindow.noStudies"));
                            msgWin.show(target);
                        }
                    } catch (Exception e) {
                        msgWin.setErrorMessage(getString("tc.result.studywindow.failed"));
                        msgWin.show(target);
                        log.error("Unable to show TC referenced studies!", e);
                    }
                }

                @Override
                protected void onComponentTag(ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("ondblclick", jsStopEventPropagationInline);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    try {
                        return TCPanel.getMaskingBehaviour().getAjaxCallDecorator();
                    } catch (Exception e) {
                        log.error("Failed to get IAjaxCallDecorator: ", e);
                    }
                    return null;
                }
            }.add(new Image("tcStudyImg", ImageManager.IMAGE_COMMON_SEARCH)
                    .add(new ImageSizeBehaviour("vertical-align: middle;")))
                    .add(new TooltipBehaviour("tc.result.table.", "showStudy"))
                    .add(new SecurityBehavior(TCPanel.getModuleName() + ":showTCStudy"))
                    .setOutputMarkupId(true);

            final Component forumLink = new IndicatingAjaxLink<String>("tc-forum") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    try {
                        TCForumPostsPanel content = new TCForumPostsPanel(forumWindow.getContentId(),
                                new Model<String>(TCForumIntegration
                                        .get(WebCfgDelegate.getInstance().getTCForumIntegrationType())
                                        .getPostsPageURL(tc)));
                        forumWindow.setInitialHeight(820);
                        forumWindow.setInitialWidth(1024);
                        forumWindow.setContent(content);
                        forumWindow.show(target);
                    } catch (Exception e) {
                        log.error("Unable to open case forum page!", e);
                    }
                }

                @Override
                public boolean isVisible() {
                    return TCForumIntegration
                            .get(WebCfgDelegate.getInstance().getTCForumIntegrationType()) != null;
                }

                @Override
                protected void onComponentTag(ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("ondblclick", jsStopEventPropagationInline);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    try {
                        return TCPanel.getMaskingBehaviour().getAjaxCallDecorator();
                    } catch (Exception e) {
                        log.error("Failed to get IAjaxCallDecorator: ", e);
                    }
                    return null;
                }
            }.add(new Image("tcForumImg", ImageManager.IMAGE_TC_FORUM)
                    .add(new ImageSizeBehaviour("vertical-align: middle;")))
                    .add(new TooltipBehaviour("tc.result.table.", "showForum")).setOutputMarkupId(true);

            item.add(viewLink);
            item.add(editLink);
            item.add(studyLink);
            item.add(forumLink);

            item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {

                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    if (selected != null && selected.equals(tc)) {
                        return "mouse-out-selected";
                    } else {
                        return item.getIndex() % 2 == 1 ? "even-mouse-out" : "odd-mouse-out";
                    }
                }
            }));

            item.add(new AttributeModifier("selected", true, new AbstractReadOnlyModel<String>() {
                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    if (selected != null && selected.equals(tc)) {
                        return "selected";
                    } else {
                        return null;
                    }
                }
            }));

            item.add(new AttributeModifier("onmouseover", true, new AbstractReadOnlyModel<String>() {

                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    StringBuffer sbuf = new StringBuffer();
                    sbuf.append("if ($(this).attr('selected')==null) {");
                    sbuf.append("   $(this).removeClass();");
                    sbuf.append("   if (").append(item.getIndex())
                            .append("%2==1) $(this).addClass('even-mouse-over');");
                    sbuf.append("   else $(this).addClass('odd-mouse-over');");
                    sbuf.append("}");
                    return sbuf.toString();
                }
            }));

            item.add(new AttributeModifier("onmouseout", true, new AbstractReadOnlyModel<String>() {

                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    StringBuffer sbuf = new StringBuffer();
                    sbuf.append("if ($(this).attr('selected')==null) {");
                    sbuf.append("   $(this).removeClass();");
                    sbuf.append("   if (").append(item.getIndex())
                            .append("%2==1) $(this).addClass('even-mouse-out');");
                    sbuf.append("   else $(this).addClass('odd-mouse-out');");
                    sbuf.append("}");
                    return sbuf.toString();
                }
            }));

            item.add(new AjaxEventBehavior("onclick") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    selectTC(item, tc, target);
                }
            });

            item.add(new AjaxEventBehavior("ondblclick") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    boolean edit = WebCfgDelegate.getInstance().getTCEditOnDoubleClick();
                    if (edit) {
                        edit = SecureComponentHelper.isActionAuthorized(editLink, "render");
                    }

                    openTC(selected, edit, target);
                }

                @Override
                protected IAjaxCallDecorator getAjaxCallDecorator() {
                    try {
                        return new IAjaxCallDecorator() {
                            private static final long serialVersionUID = 1L;

                            public final CharSequence decorateScript(CharSequence script) {
                                return "if(typeof showMask == 'function') { showMask(); $('body').css('cursor','wait'); };"
                                        + script;
                            }

                            public final CharSequence decorateOnSuccessScript(CharSequence script) {
                                return "hideMask();$('body').css('cursor','');" + script;
                            }

                            public final CharSequence decorateOnFailureScript(CharSequence script) {
                                return "hideMask();$('body').css('cursor','');" + script;
                            }
                        };
                    } catch (Exception e) {
                        log.error("Failed to get IAjaxCallDecorator: ", e);
                    }
                    return null;
                }
            });
        }
    };
    dataView.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
    dataView.setItemsPerPage(WebCfgDelegate.getInstance().getDefaultFolderPagesize());
    dataView.setOutputMarkupId(true);

    SortLinkGroup sortGroup = new SortLinkGroup(dataView);
    add(new SortLink("sortTitle", sortGroup, TCModel.Sorter.Title));
    add(new SortLink("sortAbstract", sortGroup, TCModel.Sorter.Abstract));
    add(new SortLink("sortDate", sortGroup, TCModel.Sorter.Date));
    add(new SortLink("sortAuthor", sortGroup, TCModel.Sorter.Author));

    add(dataView);

    add(new Label("numberOfMatchingInstances", new StringResourceModel("tc.list.numberOfMatchingInstances",
            this, null, new Object[] { new Model<Integer>() {

                private static final long serialVersionUID = 1L;

                @Override
                public Integer getObject() {
                    return ((TCListModel) TCResultPanel.this.getDefaultModel()).getObject().size();
                }
            } })));

    add(new PagingNavigator("navigator", dataView));
}

From source file:org.wicketstuff.datatable_autocomplete.table.DTADataTable.java

License:Apache License

/**
 * @param id/* w  w w .j  av a  2s. c o  m*/
 * @param columns
 * @param dataProvider
 * @param rowsPerPage
 */
public DTADataTable(String id, String cssClassName, List<IColumn<T>> columns,
        ISortableDataProvider<T> dataProvider, IDTATableRenderingHints hints) {

    super(id, columns, dataProvider, hints.getPageSize());

    setItemReuseStrategy(new ReuseIfModelsEqualStrategy());

    // set the table class
    add(new AttributeModifier("class", new Model<String>(cssClassName)));

    setOutputMarkupId(true);
    setVersioned(false);

    if (hints.isPaginationEnabled())
        addTopToolbar(new AjaxNavigationToolbar(this));

    addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));

    if (hints.showNoRecordsToolbar())
        addBottomToolbar(new NoRecordsToolbar(this));

}

From source file:wicketdnd.examples.TableTreeExample.java

License:Apache License

public TableTreeExample(String id) {
    super(id);/*from www  .j  ava  2 s. co m*/

    final FooTreeProvider provider = new FooTreeProvider();

    final TableTree<Foo, String> tabletree = new DefaultTableTree<Foo, String>("tabletree", columns(), provider,
            Integer.MAX_VALUE);
    // reuse items or drop following expansion will fail due to new
    // markup ids
    tabletree.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
    tabletree.add(new DragSource() {
        @Override
        public Set<Operation> getOperations() {
            return dragOperations();
        }

        @Override
        public String[] getTypes() {
            return types();
        }

        @Override
        public void onAfterDrop(AjaxRequestTarget target, Transfer transfer) {
            if (transfer.getOperation() == Operation.MOVE) {
                Foo foo = transfer.getData();

                provider.remove(foo);

                foo.remove();

                target.add(tabletree);
            }
        }
    }.drag("tr").initiate("span.tree-content").clone("span.tree-content"));
    tabletree.add(new DropTarget() {
        @Override
        public Set<Operation> getOperations() {
            return dropOperations();
        }

        @Override
        public String[] getTypes() {
            return types();
        }

        @Override
        public void onDrag(AjaxRequestTarget target, Location location) {
            Foo foo = location.getModelObject();
            if (tabletree.getState(foo) == State.COLLAPSED) {
                tabletree.expand(foo);
            }
        }

        @Override
        public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
            Foo foo = location.getModelObject();
            if (foo.isAncestor(transfer.getData())) {
                transfer.reject();
            }

            switch (location.getAnchor()) {
            case CENTER:
                if (foo == transfer.getData()) {
                    transfer.reject();
                }
                provider.add(operate(transfer), foo);
                tabletree.expand(foo);
                break;
            case TOP:
                provider.addBefore(operate(transfer), foo);
                break;
            case BOTTOM:
                provider.addAfter(operate(transfer), foo);
                break;
            default:
                transfer.reject();
            }

            target.add(tabletree);
        }
    }.dropCenter("tbody tr"));
    content.add(tabletree);
}